Phase 2 references for the host-agent Dune adapter, moved out of volatile /tmp
into docs/reference-repos/ (per Commander). Three upstream projects, .git +
node_modules + compiled binaries stripped (16MB source). Nested AI-instruction
files (.claude/, CLAUDE.md) removed so they don't pollute Corrosion sessions.
- icehunter/ dune-admin (Go+React) — 4 control planes; SETUP_DOCKER.md is the
closest analog to our agent's Dune docker control plane (compose
lifecycle, docker logs, RabbitMQ-via-exec, dune Postgres schema)
- adainrivers/ Rust/Tauri desktop — SSH+k8s BattleGroup control, maintenance
daemon, in-game admin console (Rust idiom reference)
- the4rchangel/ Node web UI replacing battlegroup.bat — matches the Commander's
Hyper-V self-host path + game-config schema
See docs/reference-repos/README.md for the full index + how we use each.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
70 lines
3.9 KiB
Markdown
70 lines
3.9 KiB
Markdown
# 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`.
|