diff options
| author | Caroline Larimore <caroline@larimo.re> | 2025-04-14 17:21:02 -0700 |
|---|---|---|
| committer | Caroline Larimore <caroline@larimo.re> | 2025-04-14 18:58:54 -0700 |
| commit | e8ba21ee40f4ad7d813fc15a7341e601ea53f557 (patch) | |
| tree | cad0c8d10f6bfd9b0eccc5ede7b03995d676c6fa | |
| parent | 1e6dc261f166058824d6fa526cbf17cc23eb915d (diff) | |
migration: stargazers minecraft server
| -rw-r--r-- | hosts/copenhagen/configuration.nix | 15 | ||||
| -rw-r--r-- | roles/minecraft/default.nix | 22 | ||||
| -rw-r--r-- | roles/minecraft/servers/default.nix | 8 | ||||
| -rw-r--r-- | roles/minecraft/servers/test.nix | 63 | ||||
| -rw-r--r-- | snowfall/modules/nixos/services/minecraft/default.nix | 25 | ||||
| -rw-r--r-- | snowfall/modules/nixos/services/minecraft/stargazers/default.nix (renamed from roles/minecraft/servers/stargazers.nix) | 25 | ||||
| -rw-r--r-- | snowfall/systems/x86_64-linux/copenhagen/default.nix | 12 |
7 files changed, 53 insertions, 117 deletions
diff --git a/hosts/copenhagen/configuration.nix b/hosts/copenhagen/configuration.nix index f3f58bf..398cb7b 100644 --- a/hosts/copenhagen/configuration.nix +++ b/hosts/copenhagen/configuration.nix @@ -1,12 +1,6 @@ { config, lib, pkgs, inputs, ... }: { - environment.persistence."/persist/system" = { - directories = [ - "/srv/minecraft" - ]; - }; - users.users = { root.hashedPasswordFile = "/secrets/passwords/root"; @@ -23,15 +17,6 @@ roles = { minecraft = { - enable = true; - - servers = { - stargazers = { - enable = true; - port = 25566; - }; - }; - zenith = { enable = true; port = 25569; diff --git a/roles/minecraft/default.nix b/roles/minecraft/default.nix index 7cbc474..65c4eea 100644 --- a/roles/minecraft/default.nix +++ b/roles/minecraft/default.nix @@ -3,28 +3,6 @@ with lib; let cfg = config.roles.minecraft; in { imports = [ - ./servers ./zenith ]; - - options.roles.minecraft = { - enable = mkEnableOption "minecraft server role"; - }; - - config = mkIf cfg.enable { - nixpkgs = { - overlays = [ inputs.nix-minecraft.overlay ]; - config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ - "minecraft-server" - ]; - }; - - programs.tmux.enable = true; - - services.minecraft-servers = { - enable = true; - eula = true; - openFirewall = true; - }; - }; } diff --git a/roles/minecraft/servers/default.nix b/roles/minecraft/servers/default.nix deleted file mode 100644 index c4f8744..0000000 --- a/roles/minecraft/servers/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: - -{ - imports = [ - ./stargazers.nix - ./test.nix - ]; -} diff --git a/roles/minecraft/servers/test.nix b/roles/minecraft/servers/test.nix deleted file mode 100644 index b6fc35f..0000000 --- a/roles/minecraft/servers/test.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ config, lib, pkgs, ... }: -with lib; - -let cfg = config.roles.minecraft.servers.test; in { - options.roles.minecraft.servers.test = { - enable = mkEnableOption "test server role"; - - port = mkOption { - type = types.port; - default = 25565; - description = "server port"; - }; - - start = mkOption { - type = types.bool; - default = false; - description = "autostart"; - }; - }; - - config = mkIf cfg.enable { - services.minecraft-servers.servers.test = { - enable = true; - openFirewall = true; - autoStart = cfg.start; - - package = pkgs.fabricServers.fabric-1_21; - - whitelist = { - "Townscaper" = "57697615-5b5b-4730-bdaf-5f74ff3ab20d"; - "grippysockjail" = "9448c89d-34eb-4e2c-a231-8112eb1a9e4a"; - }; - - operators = { - "Townscaper" = { - uuid = "57697615-5b5b-4730-bdaf-5f74ff3ab20d"; - level = 4; - bypassesPlayerLimit = true; - }; - "grippysockjail" = "9448c89d-34eb-4e2c-a231-8112eb1a9e4a"; - }; - - serverProperties = { - gamemode = 1; - max-players = 1; - motd = ":3"; - server-port = cfg.port; - query-port = cfg.port; - }; - - symlinks.mods = pkgs.linkFarmFromDrvs "mods" (builtins.attrValues { - fabric = pkgs.fetchurl { - url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/vMQdA5QJ/fabric-api-0.100.7%2B1.21.jar"; - sha256 = "sha256-grNmYgSekBaTztR1SLbqZCOC6+QNUDLe4hp105qfibA="; - }; - noChatReports = pkgs.fetchurl { - url = "https://cdn.modrinth.com/data/qQyHxfxd/versions/riMhCAII/NoChatReports-FABRIC-1.21-v2.8.0.jar"; - sha256 = "sha256-jskscOeK3ri2dt3mvWLPVmzddwPqBHJ8Ps+VfZ6l9os="; - }; - }); - }; - }; -} diff --git a/snowfall/modules/nixos/services/minecraft/default.nix b/snowfall/modules/nixos/services/minecraft/default.nix new file mode 100644 index 0000000..7705c1c --- /dev/null +++ b/snowfall/modules/nixos/services/minecraft/default.nix @@ -0,0 +1,25 @@ +{ options, config, lib, namespace, inputs, ... }: + +with lib; with lib.${namespace}; let + cfg = config.${namespace}.services.minecraft; + impermanence = config.${namespace}.system.impermanence; +in { + options.${namespace}.services.minecraft = with types; { + enable = mkEnableOption "minecraft server support"; + }; + + config = mkIf cfg.enable { + nixpkgs = { + overlays = [ inputs.nix-minecraft.overlay ]; + config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ + "minecraft-server" + ]; + }; + + services.minecraft-servers = { + enable = true; + eula = true; + openFirewall = true; + }; + }; +} diff --git a/roles/minecraft/servers/stargazers.nix b/snowfall/modules/nixos/services/minecraft/stargazers/default.nix index 96014a3..cb934f8 100644 --- a/roles/minecraft/servers/stargazers.nix +++ b/snowfall/modules/nixos/services/minecraft/stargazers/default.nix @@ -1,9 +1,11 @@ -{ config, lib, pkgs, ... }: -with lib; +{ options, config, lib, pkgs, namespace, ... }: -let cfg = config.roles.minecraft.servers.stargazers; in { - options.roles.minecraft.servers.stargazers = { - enable = mkEnableOption "stargazers server"; +with lib; with lib.${namespace}; let + cfg = config.${namespace}.services.minecraft.stargazers; + impermanence = config.${namespace}.system.impermanence; +in { + options.${namespace}.services.minecraft.stargazers = with types; { + enable = mkEnableOption "stargazers minecraft server"; port = mkOption { type = types.port; @@ -13,12 +15,23 @@ let cfg = config.roles.minecraft.servers.stargazers; in { start = mkOption { type = types.bool; - default = false; + default = true; description = "autostart"; }; }; config = mkIf cfg.enable { + cxl.services.minecraft.enable = true; + + #TODO: enable tmux + #cxl.tools.tmux.enable = true; + + environment.persistence.${impermanence.location} = { + directories = [ + "/srv/minecraft/stargazers" + ]; + }; + services.minecraft-servers.servers.stargazers = { enable = true; openFirewall = true; diff --git a/snowfall/systems/x86_64-linux/copenhagen/default.nix b/snowfall/systems/x86_64-linux/copenhagen/default.nix index 1a39924..ef30464 100644 --- a/snowfall/systems/x86_64-linux/copenhagen/default.nix +++ b/snowfall/systems/x86_64-linux/copenhagen/default.nix @@ -17,11 +17,17 @@ with lib; with lib.${namespace}; { services = { web = { - enable = true; images.enable = true; stargazers.enable = true; - } - } + }; + + minecraft = { + stargazers = { + enable = true; + port = 25566; + }; + }; + }; }; system.stateVersion = "23.11"; |