Add per-site and per-box inventories, consolidate shared network design, and relocate the switch and access-point references under the home site.
3.9 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
Container runtime
OCI containers run under podman (virtualisation.oci-containers) with the netavark backend and
firewall_driver = "none", leaving firewall management to my.firewall.
Routable game servers
Each server gets an address from extraAssignments (valheim-oci, simpcraft-oci, …) on the
colony netavark network. That network is backed by the oci interface and prefixes.oci v4/v6
ranges; lib.my.dockerNetAssignment supplies the address through --network=colony:ip=….
estuary forwards the public game ports, while IPv6 reaches the containers directly.
Storage
/var/lib/containers is a dedicated XFS disk with project quotas.
Network assignments
See the consolidated network assignments table (this box: whale2).
Game servers
The OCI containers are documented here (they have no pages of their own).
Their per-container extraAssignments on the oci network are listed in the generated
network assignments table. Ports below are the public ones
forwarded by estuary.
| Container | Ports | Status |
|---|---|---|
valheim |
2456-2457/udp |
running |
simpcraft |
25565 tcp+udp |
running |
simpcraft-staging |
25566 tcp |
disabled (commented out) |
enshrouded |
15636-15637/udp |
disabled (enshrouded.nix not imported) |
kevcraft |
25567 tcp+udp |
running |
kinkcraft |
25568 tcp+udp |
running |
graeme |
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. - simpcraft-staging — the same setup pinned to an older pack version, currently commented out.
- kevcraft — vanilla Minecraft 1.20.1, extra op.
- kinkcraft — same Simpcraft modpack as
simpcraft. - 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 frequently,
offset from its autosave timer, into /var/lib/containers/backup/simpcraft. It uses mcrcon to
save-off/save-on around each run and keeps a short history for quick world rollback rather than
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).