Add a top-level README mapping the boxes and a full docs/ tree: topic pages (architecture, networking, deployment), per-site box pages for colony and home with containers nested under their hosts, remote and mobile boxes, the installer, and the home switch fabric reference (folded in from home-switches.md, with AGENTS.md and code comments retargeted to its new home). Box pages carry marked assignment tables that CI regenerates from nixos.allAssignments. AGENTS.md points at the new docs and keeps its terse agent version of the mechanics, referring to the topic pages for depth.
4.6 KiB
whale2
The colony podman/OCI host, dedicated to game servers (kept off shill so
container churn and resource use stay isolated).
- Source:
nixos/boxes/colony/vms/whale2/(default.nix,valheim.nix,minecraft/,enshrouded.nix) - Host: VM on
colony - nixpkgs:
mine
Role
- Runs OCI containers via podman (
virtualisation.oci-containers, netavark backend,firewall_driver = "none"so podman doesn't fightmy.firewall). - Each game server gets its own routable address on the
colonynetavark network (defined in/etc/containers/networks/colony.json), which is backed by theociinterface and theprefixes.ociv4/v6 ranges; per-game addresses come fromextraAssignments(valheim-oci,simpcraft-oci, …) and are passed to podman with--network=colony:ip=…(lib.my.dockerNetAssignment). estuaryforwards the game ports in (seefirewallForwards), so the servers are reachable on the public IP as well as directly over IPv6./var/lib/containersis a dedicated XFS disk (project quotas).
Network assignments
| Name | Assignment | IPv4 | IPv6 | Domain | Notes |
|---|---|---|---|---|---|
| whale-vm (oci) | internal | 94.142.241.226/32 |
2a0e:97c0:4d2:11::3/64 |
ams1.int.nul.ie | |
| whale-vm-oci | oci | 10.100.3.1/24 |
2a0e:97c0:4d2:13::1/64 |
ams1.int.nul.ie | |
| whale-vm-routing | routing | 10.100.1.3/24 gw 10.100.1.1 |
— | ams1.int.nul.ie |
Game servers
The OCI containers are documented here (they have no pages of their own).
Addresses are the per-container extraAssignments on the oci network;
ports are the public ones forwarded by estuary.
| Container | Address (v4 / v6 host) | Ports | Status |
|---|---|---|---|
valheim |
10.100.3.2 / 2a0e:97c0:4d2:13::2 |
2456-2457/udp |
running |
simpcraft |
10.100.3.3 / 2a0e:97c0:4d2:13::3 |
25565 tcp+udp |
running |
simpcraft-staging |
10.100.3.4 / 2a0e:97c0:4d2:13::4 |
25566 tcp |
disabled (commented out) |
enshrouded |
10.100.3.5 / 2a0e:97c0:4d2:13::5 |
15636-15637/udp |
disabled (enshrouded.nix not imported) |
kevcraft |
10.100.3.6 / 2a0e:97c0:4d2:13::6 |
25567 tcp+udp |
running |
kinkcraft |
10.100.3.7 / 2a0e:97c0:4d2:13::7 |
25568 tcp+udp |
running |
graeme |
10.100.3.8 / 2a0e:97c0:4d2:13::8 |
25569 tcp+udp |
running |
- valheim (
valheim.nix) —lloesche/valheim-server, public server "amogus sus", worldsimpland2, allow-listed Steam IDs, password from agenix. - simpcraft (
minecraft/) —itzg/minecraft-server(self-builtgit.nul.ie/dev/craftblockimage), Modrinth "Simpcraft" modpack, whitelist + ops, 8 GiB heap. simpcraft-staging is the same setup pinned to an older pack version, currently commented out. - kevcraft — vanilla Minecraft 1.20.1, 4 GiB heap, extra op.
- kinkcraft — same Simpcraft modpack as
simpcraft, 6 GiB heap. - graeme — vanilla Minecraft on hard difficulty with its own whitelist.
- enshrouded (
enshrouded.nix) —sknnr/enshrouded-dedicated-server("UWUshrouded"); the file exists but is commented out ofwhale2'simports, so the server is down (its forwards and DNS records remain).
The Minecraft containers share one whitelist/ops list and agenix env file
(whale2/simpcraft.env, which also carries the RCON password).
Backups
A local borg job (services.borgbackup.jobs.simpcraft) archives the
simpcraft world every ~15 minutes (offset from the usual 5-minute autosave
ticks) into /var/lib/containers/backup/simpcraft, using mcrcon to
save-off/save-on around each run. Retention is short (12 h + 48 hourly) —
this is for quick world rollback, not disaster recovery (the oci LV itself
is covered by colony's borgthin).
Notable config files
nixos/boxes/colony/vms/whale2/default.nix— VM config, podman/netavark setup,extraAssignments.nixos/boxes/colony/vms/whale2/valheim.nix— Valheim server.nixos/boxes/colony/vms/whale2/minecraft/default.nix— the Minecraft servers + world backup job.nixos/boxes/colony/vms/whale2/enshrouded.nix— Enshrouded server (disabled, not imported).