66 lines
1.7 KiB
Nix
66 lines
1.7 KiB
Nix
{ 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";
|
|
};
|
|
defaultServer = "RAD2";
|
|
|
|
defaultEnv = {
|
|
EULA = "true";
|
|
TYPE = "AUTO_CURSEFORGE";
|
|
STOP_SERVER_ANNOUNCE_DELAY = "120";
|
|
STOP_DURATION = "600";
|
|
SYNC_CHUNK_WRITES = "false";
|
|
USE_AIKAR_FLAGS = "true";
|
|
MEMORY = "8GB";
|
|
ALLOW_FLIGHT = "true";
|
|
MAX_TICK_TIME = -1;
|
|
};
|
|
|
|
defaultOptions = [
|
|
"--stop-signal=SIGTERM"
|
|
"--stop-timeout=30m"
|
|
"--restart=unless-stopped"
|
|
"--network=minecraft-net"
|
|
];
|
|
in
|
|
{
|
|
virtualisation.oci-containers = {
|
|
mc-router = {
|
|
image = "itzg/mc-router:latest";
|
|
extraOptions = [
|
|
"--restart=always"
|
|
"--network=haproxy-net"
|
|
"--network=minecraft-net"
|
|
];
|
|
command =
|
|
"--mapping=mc.alicehuston.xyz=${defaultServer}:25565"
|
|
+ (lib.mapAttrs (hostname: url: ",${url}=${hostname}:25565") servers);
|
|
};
|
|
rlcraft = {
|
|
image = "itzg/minecraft-server:java8";
|
|
volumes = [
|
|
"/ZFS/ZFS-primary/games/minecraft/rlcraft/modpacks:/modpacks:ro"
|
|
"/ZFS/ZFS-primary/games/minecraft/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.minecraft.path ];
|
|
};
|
|
};
|
|
}
|