Skip to content

Instantly share code, notes, and snippets.

@evanjs
Last active June 21, 2020 20:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save evanjs/8c78b2276738681583a36bbeeedca259 to your computer and use it in GitHub Desktop.
Save evanjs/8c78b2276738681583a36bbeeedca259 to your computer and use it in GitHub Desktop.
nixpkgs terraria module - add home config
{ config, lib, pkgs, ... }:
{
services.sshd.enable = true;
services.terraria = {
enable = true;
home = "/srv/terraria";
};
nixpkgs.config.allowUnfree = true;
networking.firewall.allowedTCPPorts = [ 80 ];
users.users.root.password = "nixos";
services.openssh.permitRootLogin = lib.mkDefault "yes";
#services.mingetty.autologinUser = lib.mkDefault "root";
}
./nixos-generate -c configuration.nix -f vm-nogui --run -I nixpkgs=/home/evanjs/src/nixpkgs
diff --git a/nixos/modules/services/games/terraria.nix b/nixos/modules/services/games/terraria.nix
index a59b74c0b4c..6572e37ba04 100644
--- a/nixos/modules/services/games/terraria.nix
+++ b/nixos/modules/services/games/terraria.nix
@@ -25,7 +25,7 @@ let
exit 0
fi
- ${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter exit Enter
+ ${getBin pkgs.tmux}/bin/tmux -S ${cfg.home}/terraria.sock send-keys Enter exit Enter
${getBin pkgs.coreutils}/bin/tail --pid="$1" -f /dev/null
'';
in
@@ -36,7 +36,7 @@ in
type = types.bool;
default = false;
description = ''
- If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S /var/lib/terraria/terraria.sock attach</literal>
+ If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ${cfg.home}/terraria.sock attach</literal>
for administration by users who are a part of the <literal>terraria</literal> group (use <literal>C-b d</literal> shortcut to detach again).
'';
};
@@ -111,13 +111,18 @@ in
default = false;
description = "Disables automatic Universal Plug and Play.";
};
+ home = mkOption {
+ type = types.str;
+ default = "/var/lib/terraria";
+ description = "Home directory for terraria.";
+ };
};
};
config = mkIf cfg.enable {
users.users.terraria = {
description = "Terraria server service user";
- home = "/var/lib/terraria";
+ home = cfg.home;
createHome = true;
uid = config.ids.uids.terraria;
};
@@ -136,13 +141,13 @@ in
User = "terraria";
Type = "forking";
GuessMainPID = true;
- ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
+ ExecStart = "${getBin pkgs.tmux}/bin/tmux -S ${cfg.home}/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
ExecStop = "${stopScript} $MAINPID";
};
postStart = ''
- ${pkgs.coreutils}/bin/chmod 660 /var/lib/terraria/terraria.sock
- ${pkgs.coreutils}/bin/chgrp terraria /var/lib/terraria/terraria.sock
+ ${pkgs.coreutils}/bin/chmod 660 ${cfg.home}/terraria.sock
+ ${pkgs.coreutils}/bin/chgrp terraria ${cfg.home}/terraria.sock
'';
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment