- Authentik -> edge2 CT 105 (Postgres pg_dump/restore; SECRET_KEY carried verbatim; zero-downtime until ~2s cutover) - Multi-block Caddy cutover: auth.echo6.co + notes.echo6.co outpost/forward_auth -> 100.64.0.36:9000 - runbook: add reboot tailscale-before-docker gotcha; clarify dnsmasq must NOT be repointed (points at Caddy host) - source left stopped + intact on Contabo as cold rollback Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.5 KiB
2.5 KiB
MMUD — Mesh Multi-User Dungeon
Text-based multiplayer dungeon crawler for Meshtastic LoRa mesh networks. BBS door games (LORD, TradeWars) adapted for 150-char mesh radio constraints, async play, 30-day wipe cycles.
Status
Phase: Pre-development — design complete, repo scaffolded, implementation not started.
Repo
/home/zvx/projects/mmud
The repo contains a CLAUDE.md with full architecture, directory structure, development phases, and implementation guidance. Read it first before any implementation work.
Key Files
CLAUDE.md— Architecture, patterns, dev phases, gotchasdocs/planned.md— Complete game design document (~950 lines). Source of truth for all mechanics. If code contradicts this, code is wrong.config.py— All game constants with rationalesrc/db/schema.sql— Full database schema
Design Constraints
- 150 characters per Meshtastic LoRa message (hard ceiling)
- Zero runtime LLM calls — all text batch-generated at epoch start
- Async-first — all multiplayer through shared DB state
- 12 dungeon actions/day, 30-day epochs
- Python 3.11+, SQLite, Meshtastic Python API
Development Phases
- Core Loop — Meshtastic message handling, command parser, player creation, room navigation, basic combat, death, action budget
- Economy & Progression — XP, leveling, gold, shops, gear (weapon/armor/trinket), bank, healer
- Social Systems — Broadcasts (tier 1/2/targeted), barkeep (recap, tokens, hints), bounty board, player messages, mail
- Epoch Generation — World gen, LLM narrative pipeline (batch + validation), secret placement, bounty pool generation
- Endgame Modes — Hold the Line (regen, checkpoints, floor bosses), Raid Boss (HP scaling, mechanic tables, phases), Retrieve & Escape (Pursuer, blockers, warders, lures), epoch vote
- The Breach — Breach zone gen, 4 mini-event types (Heist, Emergence, Incursion, Resonance), day 15 trigger
No Runbooks Needed
This is a pure software project — no LXC provisioning, no Caddy config, no Authentik integration. Runs as a Python daemon connected to a Meshtastic device via USB/serial or TCP. No infrastructure runbooks apply.
Notes
- All regen/HP/damage numbers in the design doc are targets, not validated — will need playtesting
- The game runs on a Meshtastic mesh network, not a web server
- SQLite single file DB, no ORM, raw parameterized SQL
- Every outbound message must fit 150 chars — the formatter is the final gate