2024-08-16 00:46:47 -04:00
|
|
|
{ config, lib, ... }:
|
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
servers = {
|
|
|
|
|
atm6 = "atm6.alicehuston.xyz";
|
|
|
|
|
stoneblock3 = "sb3.alicehuston.xyz";
|
|
|
|
|
RAD2 = "rad.alicehuston.xyz";
|
|
|
|
|
skyfactory = "sf.alicehuston.xyz";
|
|
|
|
|
divinejourney = "dj.alicehuston.xyz";
|
|
|
|
|
rlcraft = "rlcraft.alicehuston.xyz";
|
|
|
|
|
arcanum-institute = "arcanum.alicehuston.xyz";
|
2025-10-28 14:45:57 -04:00
|
|
|
meits = "meits.alicehuston.xyz";
|
2025-03-25 23:43:46 -04:00
|
|
|
# bcg-plus = "bcg.alicehuston.xyz";
|
2026-01-16 12:25:01 -05:00
|
|
|
pii = "pii.alicehuston.xyz";
|
2024-08-16 00:46:47 -04:00
|
|
|
};
|
2024-08-17 21:49:31 -04:00
|
|
|
|
2024-08-16 00:50:02 -04:00
|
|
|
defaultServer = "rlcraft";
|
2024-08-16 00:46:47 -04:00
|
|
|
|
2026-01-16 12:25:01 -05:00
|
|
|
defaultEnv = {
|
|
|
|
|
EULA = "true";
|
|
|
|
|
TYPE = "AUTO_CURSEFORGE";
|
|
|
|
|
STOP_SERVER_ANNOUNCE_DELAY = "120";
|
|
|
|
|
STOP_DURATION = "600";
|
|
|
|
|
SYNC_CHUNK_WRITES = "false";
|
|
|
|
|
USE_AIKAR_FLAGS = "true";
|
2026-01-16 18:03:34 -05:00
|
|
|
MEMORY = "12G";
|
2026-01-16 12:25:01 -05:00
|
|
|
ALLOW_FLIGHT = "true";
|
|
|
|
|
MAX_TICK_TIME = "-1";
|
2026-01-16 12:51:38 -05:00
|
|
|
ENABLE_RCON = "true";
|
|
|
|
|
TZ = "America/New_York";
|
|
|
|
|
REGION_FILE_COMPRESSION = "none";
|
|
|
|
|
OPS = ''
|
|
|
|
|
magpiecat
|
|
|
|
|
chesiregirl1105
|
|
|
|
|
'';
|
2026-01-16 12:25:01 -05:00
|
|
|
};
|
2024-08-16 00:46:47 -04:00
|
|
|
|
2026-01-16 12:25:01 -05:00
|
|
|
defaultOptions = [
|
|
|
|
|
"--stop-signal=SIGTERM"
|
|
|
|
|
"--stop-timeout=1800"
|
|
|
|
|
"--network=minecraft-net"
|
|
|
|
|
];
|
2024-08-17 21:49:31 -04:00
|
|
|
|
2026-01-16 12:25:01 -05:00
|
|
|
vars = import ../vars.nix;
|
|
|
|
|
minecraft_path = "${vars.primary_games}/minecraft";
|
2024-08-16 00:46:47 -04:00
|
|
|
in
|
|
|
|
|
{
|
2024-08-16 08:59:15 -04:00
|
|
|
virtualisation.oci-containers.containers = {
|
2024-08-16 00:46:47 -04:00
|
|
|
mc-router = {
|
|
|
|
|
image = "itzg/mc-router:latest";
|
2025-06-01 18:35:15 -04:00
|
|
|
pull = "always";
|
2024-08-16 00:46:47 -04:00
|
|
|
extraOptions = [
|
|
|
|
|
"--network=haproxy-net"
|
|
|
|
|
"--network=minecraft-net"
|
|
|
|
|
];
|
2024-08-16 08:59:15 -04:00
|
|
|
cmd = [
|
|
|
|
|
(
|
|
|
|
|
"--mapping=mc.alicehuston.xyz=${defaultServer}:25565"
|
2025-04-01 13:59:09 -04:00
|
|
|
+ (lib.adev.mapAttrsToString (hostname: url: "," + url + "=" + hostname + ":25565") servers)
|
2024-08-16 08:59:15 -04:00
|
|
|
)
|
|
|
|
|
];
|
2024-08-16 00:46:47 -04:00
|
|
|
};
|
2026-01-16 12:25:01 -05:00
|
|
|
#rlcraft = {
|
|
|
|
|
# image = "itzg/minecraft-server:java8";
|
|
|
|
|
# volumes = [
|
|
|
|
|
# "${minecraft_path}/rlcraft/modpacks:/modpacks:ro"
|
|
|
|
|
# "${minecraft_path}/rlcraft/data:/data"
|
|
|
|
|
# ];
|
|
|
|
|
# hostname = "rlcraft";
|
|
|
|
|
# environment = defaultEnv // {
|
|
|
|
|
# VERSION = "1.12.2";
|
|
|
|
|
# CF_SLUG = "rlcraft";
|
|
|
|
|
# DIFFICULTY = "hard";
|
|
|
|
|
# ENABLE_COMMAND_BLOCK = "true";
|
|
|
|
|
# };
|
|
|
|
|
# extraOptions = defaultOptions;
|
|
|
|
|
# log-driver = "local";
|
|
|
|
|
# environmentFiles = [ config.sops.secrets."docker/minecraft".path ];
|
|
|
|
|
#};
|
|
|
|
|
prominence-ii = {
|
|
|
|
|
image = "itzg/minecraft-server:java25-graalvm";
|
|
|
|
|
volumes = [
|
|
|
|
|
"${minecraft_path}/prominence-ii/modpacks:/modpacks:ro"
|
|
|
|
|
"${minecraft_path}/prominence-ii/data:/data"
|
|
|
|
|
];
|
|
|
|
|
hostname = "pii";
|
|
|
|
|
environment = defaultEnv // {
|
|
|
|
|
VERSION = "1.20.1";
|
2026-01-16 19:50:27 -05:00
|
|
|
CF_SLUG = "prominence-2-hasturian-era";
|
|
|
|
|
CF_FILENAME_MATCHER = "3.9.14hf";
|
2026-01-16 12:25:01 -05:00
|
|
|
USE_AIKAR_FLAGS = "false";
|
|
|
|
|
USE_MEOWICE_FLAGS = "true";
|
2026-01-16 12:51:38 -05:00
|
|
|
USE_MEOWICE_GRAALVM_FLAGS = "true";
|
2026-01-16 12:25:01 -05:00
|
|
|
DIFFICULTY = "hard";
|
|
|
|
|
ENABLE_COMMAND_BLOCK = "true";
|
2026-01-16 19:50:27 -05:00
|
|
|
CF_FORCE_INCLUDE_FILES = ''
|
2026-01-16 18:03:34 -05:00
|
|
|
emi
|
|
|
|
|
'';
|
2026-01-16 12:25:01 -05:00
|
|
|
};
|
|
|
|
|
extraOptions = defaultOptions;
|
|
|
|
|
log-driver = "local";
|
2026-01-16 19:50:27 -05:00
|
|
|
environmentFiles = [ config.sops.secrets."docker/minecraft".path ];
|
2026-01-16 12:25:01 -05:00
|
|
|
};
|
2026-01-16 12:51:38 -05:00
|
|
|
#stop_signal: SIGTERM
|
|
|
|
|
#stop_grace_period: 5m
|
2025-03-25 23:43:46 -04:00
|
|
|
# bcg-plus = {
|
|
|
|
|
# image = "itzg/minecraft-server:java17";
|
|
|
|
|
# volumes = [
|
|
|
|
|
# "${minecraft_path}/bcg-plus/modpacks:/modpacks:ro"
|
|
|
|
|
# "${minecraft_path}/bcg-plus/data:/data"
|
|
|
|
|
# ];
|
|
|
|
|
# hostname = "bcg-plus";
|
|
|
|
|
# environment = defaultEnv // {
|
|
|
|
|
# VERSION = "1.17";
|
|
|
|
|
# CF_SLUG = "bcg";
|
|
|
|
|
# DIFFICULTY = "normal";
|
|
|
|
|
# DEBUG = "true";
|
|
|
|
|
# # ENABLE_COMMAND_BLOCK = "true";
|
|
|
|
|
# };
|
|
|
|
|
# extraOptions = defaultOptions;
|
|
|
|
|
# log-driver = "local";
|
|
|
|
|
# environmentFiles = [ config.sops.secrets."docker/minecraft".path ];
|
|
|
|
|
# };
|
2024-08-16 00:50:02 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
sops = {
|
|
|
|
|
secrets = {
|
|
|
|
|
"docker/minecraft".owner = "docker-service";
|
2024-08-16 00:46:47 -04:00
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|