From 0dc474887fbc80bc4a8f38dc1212222afcdac18c Mon Sep 17 00:00:00 2001 From: Jack O'Sullivan Date: Thu, 29 May 2025 20:51:56 +0100 Subject: [PATCH] Add kinkcraft Minecraft server --- lib/constants.nix | 10 +++++ nixos/boxes/colony/vms/estuary/default.nix | 2 + nixos/boxes/colony/vms/estuary/dns.nix | 2 + nixos/boxes/colony/vms/whale2/default.nix | 1 + .../colony/vms/whale2/minecraft/default.nix | 41 +++++++++++++++++++ 5 files changed, 56 insertions(+) diff --git a/lib/constants.nix b/lib/constants.nix index f797fd9..c813956 100644 --- a/lib/constants.nix +++ b/lib/constants.nix @@ -204,6 +204,10 @@ rec { port = 25567; dst = aa.kevcraft-oci.internal.ipv4.address; } + { + port = 25568; + dst = aa.kinkcraft-oci.internal.ipv4.address; + } # RCON... unsafe? # { @@ -236,6 +240,12 @@ rec { { port = 25567; dst = aa.kevcraft-oci.internal.ipv4.address; + proto = "udp"; + } + { + port = 25568; + dst = aa.kinkcraft-oci.internal.ipv4.address; + proto = "udp"; } { diff --git a/nixos/boxes/colony/vms/estuary/default.nix b/nixos/boxes/colony/vms/estuary/default.nix index 9715b1f..0c74ce3 100644 --- a/nixos/boxes/colony/vms/estuary/default.nix +++ b/nixos/boxes/colony/vms/estuary/default.nix @@ -402,6 +402,7 @@ in ip6 daddr ${aa.simpcraft-oci.internal.ipv6.address} tcp dport 25565 accept ip6 daddr ${aa.simpcraft-staging-oci.internal.ipv6.address} tcp dport 25565 accept ip6 daddr ${aa.kevcraft-oci.internal.ipv6.address} tcp dport 25567 accept + ip6 daddr ${aa.kinkcraft-oci.internal.ipv6.address} tcp dport 25568 accept return } chain routing-udp { @@ -410,6 +411,7 @@ in ip6 daddr ${aa.simpcraft-oci.internal.ipv6.address} udp dport 25565 accept ip6 daddr ${aa.enshrouded-oci.internal.ipv6.address} udp dport { 15636-15637 } accept ip6 daddr ${aa.kevcraft-oci.internal.ipv6.address} udp dport 25567 accept + ip6 daddr ${aa.kinkcraft-oci.internal.ipv6.address} udp dport 25568 accept return } chain filter-routing { diff --git a/nixos/boxes/colony/vms/estuary/dns.nix b/nixos/boxes/colony/vms/estuary/dns.nix index ab1e5ad..59ae5de 100644 --- a/nixos/boxes/colony/vms/estuary/dns.nix +++ b/nixos/boxes/colony/vms/estuary/dns.nix @@ -156,6 +156,8 @@ in enshrouded IN A ${assignments.internal.ipv4.address} kevcraft IN A ${assignments.internal.ipv4.address} kevcraft IN AAAA ${allAssignments.kevcraft-oci.internal.ipv6.address} + kinkcraft IN A ${assignments.internal.ipv4.address} + kinkcraft IN AAAA ${allAssignments.kinkcraft-oci.internal.ipv6.address} mail-vm IN A ${net.cidr.host 0 prefixes.mail.v4} mail-vm IN AAAA ${net.cidr.host 1 prefixes.mail.v6} diff --git a/nixos/boxes/colony/vms/whale2/default.nix b/nixos/boxes/colony/vms/whale2/default.nix index 8c38791..8d6f898 100644 --- a/nixos/boxes/colony/vms/whale2/default.nix +++ b/nixos/boxes/colony/vms/whale2/default.nix @@ -54,6 +54,7 @@ in simpcraft-staging-oci = 4; enshrouded-oci = 5; kevcraft-oci = 6; + kinkcraft-oci = 7; }; configuration = { lib, pkgs, modulesPath, config, assignments, allAssignments, ... }: diff --git a/nixos/boxes/colony/vms/whale2/minecraft/default.nix b/nixos/boxes/colony/vms/whale2/minecraft/default.nix index 6ff2efc..e3747d0 100644 --- a/nixos/boxes/colony/vms/whale2/minecraft/default.nix +++ b/nixos/boxes/colony/vms/whale2/minecraft/default.nix @@ -145,6 +145,47 @@ in ''--network=colony:${dockerNetAssignment allAssignments "kevcraft-oci"}'' ]; }; + + kinkcraft = { + # 2025.5.1-java21-alpine + image = "itzg/minecraft-server@sha256:de26c7128e3935f3be48fd30283f0b5a6da1b3d9f1a10c9f92502ee1ba072f7b"; + + environment = { + TYPE = "MODRINTH"; + SERVER_PORT = "25568"; + QUERY_PORT = "25568"; + + EULA = "true"; + ENABLE_QUERY = "true"; + ENABLE_RCON = "true"; + MOTD = "§4§k----- §9K§ai§bn§ck§dc§er§fa§6f§5t §4§k-----"; + ICON = "/ext/icon.png"; + + EXISTING_WHITELIST_FILE = "SYNCHRONIZE"; + WHITELIST = whitelist; + EXISTING_OPS_FILE = "SYNCHRONIZE"; + OPS = op; + DIFFICULTY = "normal"; + SPAWN_PROTECTION = "0"; + VIEW_DISTANCE = "20"; + + MAX_MEMORY = "6G"; + MODRINTH_MODPACK = "https://cdn.modrinth.com/data/CIYf3Hk8/versions/NGutsQSd/Simpcraft-0.2.1.mrpack"; + + TZ = "Europe/Dublin"; + }; + environmentFiles = [ config.age.secrets."whale2/simpcraft.env".path ]; + + volumes = [ + "kinkcraft_data:/data" + "${./icon.png}:/ext/icon.png:ro" + ]; + + extraOptions = [ + ''--network=colony:${dockerNetAssignment allAssignments "kinkcraft-oci"}'' + ]; + }; + }; services = {