From 09ec7fa5a3038bdf2762ee73650b554d14d89081 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Thu, 11 Mar 2021 20:40:01 -0500 Subject: dragon valheim --- modules/valheim.nix | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 modules/valheim.nix (limited to 'modules') diff --git a/modules/valheim.nix b/modules/valheim.nix new file mode 100644 index 0000000..bdfb813 --- /dev/null +++ b/modules/valheim.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.orbekk.valheim-server; + statePath = "/var/lib/${cfg.stateDir}"; +in +{ + options = { + orbekk.valheim-server = { + enable = lib.mkEnableOption "Enable valheim server"; + programDir = lib.mkOption { + type = lib.types.str; + default = null; + }; + stateDir = lib.mkOption { + type = lib.types.str; + default = "valheim"; + }; + }; + }; + + config = lib.mkIf cfg.enable { + systemd.services.valheim-server = { + description = "Valheim server"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + path = with pkgs; [ steam.run ]; + + serviceConfig = { + DynamicUser = true; + StateDirectory = cfg.stateDir; + }; + + environment = { + HOME = statePath; + }; + + script = '' + cd ${cfg.programDir} + export templdpath=$LD_LIBRARY_PATH + export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH + export SteamAppId=892970 + steam-run ./valheim_server.x86_64 -name "doomsday" -port 3400 -world "doomsday" -password "$(cat ${statePath}/password.txt)" -savedir ${statePath} + ''; + }; + }; +} -- cgit v1.2.3