ATM10 v7.0 multi-server � overcomplicated on purpose
- Python 65.7%
- Shell 34.3%
trash/mc was backed by dumpster-dived SATA HDDs. warp4 is an Oracle enterprise PCIe flash card with dramatically better random IOPS for chunk I/O and mod-loading on startup. - All ZFS datasets now under warp4/mc (sent with zfs send -R) - LXC 150 postgres bind mount updated to /warp4/mc/pg - All systemd units, scripts, orchestrator, docs updated - trash/mc destroyed; backups will target trash pool via scheduled job Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| db | ||
| deploy | ||
| docs | ||
| .gitignore | ||
| README.md | ||
Project Overkill — ATM10 Multi-Server
All the Mods 10 v7.0 (Minecraft 1.21.1, NeoForge 21.1.229) running as a fleet of
specialized servers behind a Velocity proxy on sarge.360pc.com.
players → Velocity :25565 → lobby :25202
→ main :25201 (overworld / nether / end)
→ dims :25203–25207 (Twilight Forest, Aether, …)
→ instances :25210–25399 (ephemeral minigames/dungeons)
The point is to be gloriously overcomplicated:
- Velocity proxy is the single public front door (
:25565). - Persistent backends: lobby, main (overworld+nether+end), one server per modded exploration dim.
- Ephemeral instances provisioned and torn down on demand without players leaving the game, using:
- ZFS CoW clones of
template@base-v229— clone in ~0.2s, initial disk ~0. - systemd transient scopes with cgroup v2 CPU/RAM limits.
- NUMA pinning via
numactl— Sarge has 8 NUMA nodes, one per backend. - Native MC 1.21
ClientboundTransferPacketfor seamless server switching.
- ZFS CoW clones of
- Instance Orchestrator daemon (Python/aiohttp :8765) manages clone/launch/health/reap.
- NeoForge bridge mod —
/warp,/instance, portal intercept, inventory I/O. - PostgreSQL 17 in a Proxmox LXC for cross-server inventory export/import and instance state.
- No Docker. "Containers" = ZFS clone + systemd scope + numactl.
Quick links
| Doc | Contents |
|---|---|
| docs/ARCHITECTURE.md | Full topology, NUMA plan, ZFS layout, port table, build phases |
| docs/SARGE.md | Host facts — hardware, pools, Java paths, existing services |
| docs/SETUP.md | Step-by-step build guide (phases 0–6) |
| docs/CLIENT-INSTALL.md | Player guide — Prism Launcher + custom modpack |
| docs/MODPACK.md | How to build and update the custom .mrpack |
| docs/OPERATIONS.md | Day-to-day ops — start/stop, logs, RCON, backups |
| db/schema.sql | PostgreSQL schema |
| deploy/ | Install and provision scripts |
Repo layout
docs/ Architecture, host facts, setup guide, ops runbook
db/ PostgreSQL schema + migrations
deploy/ Install scripts, provision script, Velocity config
orchestrator/ Instance orchestrator daemon (Python) — phase 2
velocity-plugin/ Velocity dynamic-registry plugin (Java) — phase 2
bridge-mod/ NeoForge in-game bridge mod (Java) — phase 4
Build status
| Phase | Description | Status |
|---|---|---|
| 0 | ZFS layout · PostgreSQL CT · ATM10 template + custom mods + snapshot | ✅ Done |
| 1 | Velocity proxy · lobby · main · NeoVelocity modern forwarding | ✅ Done |
| 2 | Instance Orchestrator daemon | 🔧 In progress |
| 3 | Dim servers (twilight, aether, bumblezone, undergarden, deeper) | Pending |
| 4 | Bridge mod (warp, transfer packet, portal intercept, inv I/O) | Pending |
| 5 | Postgres inventory service (NBT serialize/deserialize) | Pending |
| 6 | Ops (backups, metrics, Discord webhook, crash auto-restart) | Pending |
Custom mods
| Mod | Repo | Notes |
|---|---|---|
| PortalGunClassic | EvilBob01/PortalGunClassic | Portal gun for dimension travel |
| Botania (fork) | EvilBob01/Botania @ neoforge-1.21.1 | NeoForge 21.1.229 port |
Server address
sarge.360pc.com:25565
Use the Project Overkill Prism Launcher pack — see docs/CLIENT-INSTALL.md.