aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hosts/copenhagen/configuration.nix15
-rw-r--r--roles/minecraft/default.nix22
-rw-r--r--roles/minecraft/servers/default.nix8
-rw-r--r--roles/minecraft/servers/test.nix63
-rw-r--r--snowfall/modules/nixos/services/minecraft/default.nix25
-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.nix12
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";