_module.args
Additional arguments passed to each module in addition to ones
like lib
, config
,
and pkgs
, modulesPath
.
This option is also available to all submodules. Submodules do not
inherit args from their parent module, nor do they provide args to
their parent module or sibling submodules. The sole exception to
this is the argument name
which is provided by
parent modules to a submodule and contains the attribute name
the submodule is bound to, or a unique generated name if it is
not bound to an attribute.
Some arguments are already passed by default, of which the following cannot be changed with this option:
-
lib
: The nixpkgs library. -
config
: The results of all options after merging the values from all modules together. -
options
: The options declared in all modules. -
specialArgs
: ThespecialArgs
argument passed toevalModules
. -
All attributes of
specialArgs
Whereas option values can generally depend on other option values thanks to laziness, this does not apply to
imports
, which must be computed statically before anything else.For this reason, callers of the module system can provide
specialArgs
which are available during import resolution.For NixOS,
specialArgs
includesmodulesPath
, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of thenixpkgs
or NixOS directories.{ modulesPath, ... }: { imports = [ (modulesPath + "/profiles/minimal.nix") ]; }
For NixOS, the default value for this option includes at least this argument:
pkgs
: The nixpkgs package set according to thenixpkgs.pkgs
option.
Type: lazy attribute set of raw value
Declared by:
services.steam-servers.servers
Options for configuring a generic game server.
Type: attribute set of (submodule)
Default:
{ }
Declared by:
services.steam-servers.servers.<name>.enable
Whether to enable this game server.
Type: boolean
Default:
false
Example:
true
Declared by:
services.steam-servers.servers.<name>.args
Arguments passed to executable
Type: list of string
Default:
[ ]
Declared by:
services.steam-servers.servers.<name>.autostart
Whether to start this server automatically.
When false
, services can be started manually via systemctl start
.
Type: boolean
Default:
true
Declared by:
services.steam-servers.servers.<name>.datadir
Directory to store save state of the game server. (eg world, saves, etc)
Type: path
Default:
${services.steam-servers.datadir}/${name}
Declared by:
services.steam-servers.servers.<name>.description
Description of this steam server. Will be used for the systemd unit.
Type: string
Default:
""
Declared by:
services.steam-servers.servers.<name>.dirs
Set of directories to copy into datadir.
The name
is the path relative to datadir
and the value
is the path to the directory to be copied into the approriate location.
If files in the source are newer than their copy in datadir
, they will be overwritten.
Type: attribute set of path
Default:
{ }
Declared by:
services.steam-servers.servers.<name>.executable
Executable for the starting the server.
May be an absolute path or one relative to datadir
Type: string
Example:
"./7DaysToDieServer.x86_64"
Declared by:
services.steam-servers.servers.<name>.files
Set of files to copy into datadir.
The name
is the path relative to datadir
and the value
is the path to the file to be copied into the approriate location.
This can be useful for files that the game server expects to be able to open in write mode.
Files copied this way will be removed after service shutdown.
Type: attribute set of (path or (submodule))
Default:
{ }
Declared by:
services.steam-servers.servers.<name>.symlinks
Set of files to symlink into datadir.
The name
is the path relative to datadir.
All symlinks will be cleaned-up when the service stops
Type: attribute set of (path or (submodule))
Default:
{ }
Declared by:
services.steam-servers.servers.<name>.tmuxStopKeys
When using tmux, what keys to send via tmux send-keys
to
shutdown the server.
Type: string
Default:
"^C"
Example:
"/stop Enter"
Declared by:
services.steam-servers.servers.<name>.useTmux
Whether or not to run server inside a tmux session. This can be useful for servers that have a console you can run commands in.
If enabled, a tmux socket will be created at $RUNTIME_DIRECTORY/steam-servers/${name}
and the server executable will be ran inside the tmux session.
WARNING: At this time terminal output from tmux is not sent to journald. This means that you will NOT have persistant logs without some other mechanism. This can make debuging server crashes VERY difficult, but is necessary for some servers
Type: boolean
Default:
false
Declared by: