# Reference Repos Third-party Dune: Awakening server-management projects, kept here as **behavior references** for Phase 2 (the Corrosion host-agent Dune adapter + future panel Dune features). These are NOT Corrosion code and are not built or shipped — they are read-only references. `.git` histories, `node_modules`, and compiled binaries were stripped on import (the 38 MB `icehunter/web/dune-admin` build artifact and a Tauri `.icns` are intentionally absent). > Imported 2026-06-12 from `/tmp/dune-re`. Each was a separate upstream repo; > see each project's own `LICENSE` and `README.md`. Treat as documentation. ## Why these are here Dune: Awakening does **not** use SteamCMD or a plain game-server process like Rust/Conan/Soulmask. It ships as **Docker container(s)** fronted by a **RabbitMQ broker** (admin + game vhosts) and a **PostgreSQL** admin database (`dune` schema), orchestrated as a "**battlegroup**". The game process is `DuneSandboxServer-Linux-Shipping` (one per partition). Server settings live in INI files (`UserEngine.ini` / `UserGame.ini`) and only take effect after a restart. Our Dune adapter must model that container/broker/DB world instead of the process+SteamCMD model — these repos are how that world actually works in the wild. ## The references ### `icehunter/` — `dune-admin` (Go backend + React SPA) The richest ops reference. A web admin panel with **four interchangeable control planes**: `docker`, `kubectl`, `local`, and `amp` (CubeCoders AMP / podman). Most relevant to us: - **`SETUP_DOCKER.md`** — the Docker control plane: `docker start/stop/restart` for lifecycle, `docker logs -f` for streaming, `docker exec` into the broker container for RabbitMQ (`rabbitmqctl`) commands, direct TCP to the `dune` Postgres. Optional SSH tunnelling when the admin is off-host. **This is the closest analog to what the Corrosion host-agent Dune adapter must do.** - `cmd/dune-admin/control_docker.go` / `control_kubectl.go` / `control_local.go` / `control_amp.go` — the `ControlPlane` interface and its implementations (the start/stop/restart/status/log/broker abstraction we mirror as a Rust game-adapter trait). - `db.go` / `model.go` — the full Dune admin data model (players, bases, inventory, exchange/market) for when Corrosion grows a richer Dune admin surface beyond lifecycle. - `CLAUDE.md` — upstream's own engineering notes; the AMP section documents the INI-vs-API server-settings gotcha (AMP regenerates INIs on start). ### `adainrivers/` — Dune Dedicated Server Manager (Rust / Tauri desktop) **The Rust reference.** Manages already-provisioned servers over **SSH + Kubernetes** ("BattleGroup" start/stop/restart/update), with secure SSH tunnels to Director / File Browser / Postgres / PgHero, an in-game admin console (item grants, vehicle spawns, journey/XP tags), and a bundled **`dune-server-service`** daemon for scheduled maintenance (timed restarts with in-game warnings, backups, update apply). Closest to our stack idiomatically — read it for Rust patterns on SSH control, the maintenance-daemon design, and the in-game command surface. ### `the4rchangel/` — Dune: Awakening Server Manager (Node.js local web UI) **Matches the Commander's exact self-host path.** A local dashboard that replaces the `battlegroup.bat` terminal menu — guided VM import (Hyper-V), network, SSH, bootstrap, then daily ops: battlegroup start/stop/restart/update, character editor, visual game-config editor (PvP, sandstorms, sandworms, mining rates, decay, building limits), monitoring, DB access. Read it to understand the `battlegroup.bat` workflow our agent has to drive on a Windows/Hyper-V host. ## How we use them - **Lifecycle/control** → mirror `icehunter`'s `ControlPlane` docker provider as the agent's Dune game-adapter (compose/`docker` lifecycle, `docker logs` console, reject SteamCMD). - **Rust idioms / maintenance daemon / SSH** → `adainrivers`. - **Battlegroup.bat reality / setup flow / game-config schema** → `the4rchangel`.