From 69e69c2b7fd77f5584c393335db9ae7643681a13 Mon Sep 17 00:00:00 2001 From: Jermeiah S Date: Tue, 1 Jul 2025 13:53:12 -0400 Subject: [PATCH] migrate arma configs to module --- .../nixos/arma-reforger-tofu/default.nix | 36 ++--------- modules/nixos/common/arma.nix | 64 +++++++++++++++++++ packages/arma-scripts/default.nix | 8 +++ 3 files changed, 78 insertions(+), 30 deletions(-) create mode 100644 modules/nixos/common/arma.nix create mode 100644 packages/arma-scripts/default.nix diff --git a/configurations/nixos/arma-reforger-tofu/default.nix b/configurations/nixos/arma-reforger-tofu/default.nix index 1112bf3..a12f61d 100644 --- a/configurations/nixos/arma-reforger-tofu/default.nix +++ b/configurations/nixos/arma-reforger-tofu/default.nix @@ -3,6 +3,7 @@ modulesPath, config, pkgs, + lib, ... }: @@ -13,40 +14,15 @@ in { imports = [ self.nixosModules.default - "${modulesPath}/virtualisation/lxc-container.nix" - ]; - # Create steam user - users = { - users.steam = { - isNormalUser = true; - home = "/var/lib/steam"; - createHome = true; - shell = pkgs.bash; - group = "steam"; - }; - groups.steam = {}; - }; - - systemd.tmpfiles.rules = [ - "d /var/lib/steam 0755 steam steam -" - "d /var/lib/steam/reforger/configs/ 0755 steam steam -" - "d /var/lib/steam/reforger/profile/ 0755 steam steam -" - "d /var/lib/steam/reforger/workshop/ 0755 steam steam -" + # "${modulesPath}/virtualisation/lxc-container.nix" ]; - deploy = { - enable = false; - }; + services.arma.enable = true; + networking = { hostName = "arma-reforger-tofu"; - firewall = { - enable = true; - allowedUDPPorts = [ 2001 17777 19999 ]; - }; }; - environment.systemPackages = [ - pkgs.steamcmd - pkgs.curl - ]; + # environment.systemPackages = with pkgs; [ + # ]; system.stateVersion = "25.05"; } diff --git a/modules/nixos/common/arma.nix b/modules/nixos/common/arma.nix new file mode 100644 index 0000000..01e67c4 --- /dev/null +++ b/modules/nixos/common/arma.nix @@ -0,0 +1,64 @@ +{ + lib, + config, + pkgs, + ... +}: +let + cfg = config.services.arma; +in +{ + options.services.arma = { + enable = lib.mkEnableOption "enable arma"; + dataDir = lib.mkOption { + type = lib.types.str; + default = "/var/lib/steam"; + }; + }; + config = lib.mkIf cfg.enable { + nixpkgs.config.allowUnfreePredicate = + pkg: + builtins.elem (lib.getName pkg) [ + "steamcmd" + "steam-run" + "steam-unwrapped" + ]; + # Create steam user + users = { + users.steam = { + isSystemUser = true; + home = cfg.dataDir; + createHome = true; + shell = pkgs.bash; + group = "steam"; + }; + groups.steam = { }; + }; + systemd.tmpfiles.rules = [ + # "d /var/lib/steam 0755 steam steam -" + "d ${cfg.dataDir}/reforger/configs 0755 steam steam -" + "d ${cfg.dataDir}/reforger/profile 0755 steam steam -" + "d ${cfg.dataDir}/reforger/workshop 0755 steam steam -" + ]; + systemd.services = { + arma = { + description = "arma game server"; + wantedBy = [ "multi-user.target" ]; + environment = { + ARMA_DIR = "${cfg.dataDir}"; + }; + path = with pkgs; [ + curl + steamcmd + steam-run + ]; + preStart = "${pkgs.arma-scripts}/scripts/update.sh"; + serviceConfig = { + User = "steam"; + WorkingDirectory = "${cfg.dataDir}/reforger"; + ExecStart = "${pkgs.arma-scripts}/scripts/start.sh"; + }; + }; + }; + }; +} diff --git a/packages/arma-scripts/default.nix b/packages/arma-scripts/default.nix new file mode 100644 index 0000000..7589d24 --- /dev/null +++ b/packages/arma-scripts/default.nix @@ -0,0 +1,8 @@ +{ fetchFromGitea }: +fetchFromGitea { + domain = "git.skdevstudios.com"; + owner = "SK-Development-Studios"; + repo = "ground-zero-conflict-configuration"; + rev = "v0.0.1"; + sha256 = "sha256-0CclaDqtZxt385I6lgOydOJwdh4HbtNQyQOhwl7hNcM="; +}