111 lines
3.2 KiB
Nix
111 lines
3.2 KiB
Nix
{ config, pkgs, flakeSelf, ... }:
|
|
let
|
|
atfc = builtins.fetchurl {
|
|
url = "https://www.curseforge.com/api/v1/mods/813246/files/4732590/download";
|
|
sha256 = "0yl6ixmhfgqvcj3kfshpf8fy42vkkmjbn7d7yg86jx0ykiiq5f9x";
|
|
};
|
|
puffish_skills = builtins.fetchurl {
|
|
url = "https://www.curseforge.com/api/v1/mods/835091/files/4747353/download";
|
|
sha256 = "1pwx8zqih019l12lrmllrjv2al0mjzwj4p5qmc4ps1g555jy8qil";
|
|
};
|
|
spark = builtins.fetchurl {
|
|
url = "https://www.curseforge.com/api/v1/mods/361579/files/4505375/download";
|
|
sha256 = "1708lrx1nif0mvf7ambw8504j12wbn0vm69wsh21p8ylqpql1s4x";
|
|
};
|
|
|
|
port = 25565;
|
|
users = config.users;
|
|
in
|
|
{
|
|
users = {
|
|
groups.minecraft = {
|
|
members = [ "toast" ];
|
|
gid = 987;
|
|
};
|
|
users.atfc = {
|
|
isSystemUser = true;
|
|
uid = 988;
|
|
group = "minecraft";
|
|
home = "/var/lib/minecraft/atfc";
|
|
homeMode = "750";
|
|
createHome = true;
|
|
};
|
|
};
|
|
|
|
virtualisation.oci-containers = {
|
|
containers."minecraft-atfc" = {
|
|
autoStart = true;
|
|
image = "itzg/minecraft-server";
|
|
#user = "${toString users.users.atfc.uid}:${toString users.groups.minecraft.gid}";
|
|
environment = {
|
|
TZ = "Europe/Madrid";
|
|
EULA = "true";
|
|
TYPE = "forge";
|
|
MEMORY = "2G";
|
|
UID = toString users.users.atfc.uid;
|
|
GID = toString users.groups.minecraft.gid;
|
|
VERSION = "1.18.2";
|
|
FORGE_VERSION = "40.2.10";
|
|
GENERIC_PACK = "/modpack.zip";
|
|
#USE_AIKAR_FLAGS = "true";
|
|
|
|
#STOP_DURATION = "70";
|
|
STOP_SERVER_ANNOUNCE_DELAY = "20";
|
|
|
|
# server.properties
|
|
MOTD = "Toast's modded minecraft server";
|
|
DIFFICULTY = "hard";
|
|
SNOOPER_ENABLED = "false";
|
|
SPAWN_PROTECTION = "0";
|
|
LEVEL_TYPE = "tfc:tng";
|
|
BROADCAST_CONSOLE_TO_OPS = "true";
|
|
BROADCAST_RCON_TO_OPS = "true";
|
|
|
|
OPS = "b3ca4afb-a3da-4a78-85c3-2292fd0787e2,0cb3d02a-1d1f-4d7f-b70c-bd53dc155cff";
|
|
EXISTING_OPS_FILE = "synchronize";
|
|
|
|
WHITELIST = "b3ca4afb-a3da-4a78-85c3-2292fd0787e2,0cb3d02a-1d1f-4d7f-b70c-bd53dc155cff,03f080e8-ce8e-4b90-a312-734747ce7db0,ea88f690-cf46-4416-bfd5-6f6b165885f7";
|
|
EXISTING_WHITELIST_FILE = "synchronize";
|
|
|
|
# Auto pause needs this
|
|
MAX_TICK_TIME = "-1";
|
|
AUTOPAUSE_KNOCK_INTERFACE = "tap0";
|
|
ENABLE_AUTOPAUSE = "true";
|
|
};
|
|
extraOptions = [
|
|
"--network=slirp4netns:port_handler=slirp4netns"
|
|
"--cap-add=CAP_NET_RAW"
|
|
];
|
|
|
|
volumes = [
|
|
"${atfc}:/modpack.zip"
|
|
"${puffish_skills}:/mods/puffish_skills.jar"
|
|
"${spark}:/mods/spark.jar"
|
|
"${users.users.atfc.home}:/data"
|
|
#"/tmp/minecraft:/data"
|
|
];
|
|
ports = [ "25565:${toString port}" ];
|
|
};
|
|
};
|
|
|
|
networking.firewall.allowedTCPPorts = [ port ];
|
|
|
|
# anything-sync-daemon config
|
|
systemd.packages = with pkgs; [ flakeSelf.packages.x86_64-linux.anything-sync-daemon ];
|
|
environment.systemPackages = with pkgs; [ flakeSelf.packages.x86_64-linux.anything-sync-daemon ];
|
|
fileSystems.minecraftTmpfs = {
|
|
device = "none";
|
|
fsType = "tmpfs";
|
|
mountPoint = "/mnt/minecraftTmpfs";
|
|
options = [ "size=4G "];
|
|
};
|
|
environment.etc."asd.conf".text =
|
|
''WHATTOSYNC=('/var/lib/minecraft')
|
|
VOLATILE="${config.fileSystems.minecraftTmpfs.mountPoint}"
|
|
USE_OVERLAYFS="yes" '';
|
|
systemd.services.asd = {
|
|
wantedBy = [ "podman-minecraft-atfc.service" ];
|
|
before = [ "podman-minecraft-atfc.service" ];
|
|
};
|
|
|
|
}
|