_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: The specialArgs argument passed to evalModules.

  • 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 includes modulesPath, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of the nixpkgs 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 the nixpkgs.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:

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: