Go to file
Monster Robot Party 17797b9ba0 LANE5: deploy web toy to digalot.fyi/destroy + depot already hardened
Ship the browser smash toy publicly and document it.

Deploy: web/ is live at https://digalot.fyi/destroy/ — served on the dealgod VPS like
thriftgod (an nginx:alpine static container on dealgod_default + a /destroy/ location in
the shared reverse proxy). README.md now carries the exact deploy/update steps + a full
rollback runbook. No app code changed.

3GOD hardening (LANE5 deliverable B) was found ALREADY DONE on the live instance and
verified — not re-changed:
  - GOD3_OPEN is off: unauthenticated write via Cloudflare → 403; GET /api/list → authed:false.
  - SSRF plugged: POST /api/fetch with file:///etc/hostname and http://169.254.169.254/ →
    rejected ("only public http(s) URLs allowed"), nothing written.
  - Reads stay public (CF GET 200 + CORS *); trusted tailnet peers still push passwordless
    via the TS_ALLOW IP allowlist (this session's meshgod pushes used that path).

Verified public: /destroy/ 200 over CF, JS as application/javascript, props (intact +
fractured) load from /3god/a/* with CORS *, printer boss shatters into 16 GLB chunks,
no console errors.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 23:24:49 +10:00
game LANE4 (Godot): real fractured-chunk destruction + printer boss 2026-07-14 22:27:50 +10:00
LANES LANE5 spec: harden 3GOD (close open mode, plug SSRF) + deploy web toy publicly 2026-07-14 22:47:22 +10:00
web LANE5: deploy web toy to digalot.fyi/destroy + depot already hardened 2026-07-14 23:24:49 +10:00
.gitignore Restructure into monorepo: game/ is the Godot lane 2026-07-14 15:33:13 +10:00
destroyulater.txt Restructure into monorepo: game/ is the Godot lane 2026-07-14 15:33:13 +10:00
README.md Restructure into monorepo: game/ is the Godot lane 2026-07-14 15:33:13 +10:00

DESTROYULATOR

Clock out. Smash everything.

A comedic, non-violent, first-person workplace-destruction game from Monster Robot Party. Level 01 is our actual record store. Nobody gets hurt but the furniture.

Monorepo layout — one lane per directory

Dir Lane What
game/ Lane 1 — the game Godot 4.7 (Jolt physics, Mac-native). The shippable build.
web/ Lane 3 — web toy Three.js dig-and-destroy demo (planned; thriftgod-adjacent).
LANES/ coordination Execution specs for parallel Claude/Opus work sessions.
3D-STORE/ not in git 700MB Blender/Unreal source-asset vault (see .gitignore).
destroyulater.txt lore The founding chat where the idea happened.

Asset generation lives in its own repo: ~/Documents/meshgod (text→GLB factory).

Rules for parallel work sessions

  • A lane session writes ONLY inside its own directory. Cross-lane contracts (asset formats, file drops) are specified in LANES/*.md.
  • Every change to game/ must pass the headless smoke test before commit: Godot --headless --path game --quit-after 180 with zero script errors.
  • GLB convention everywhere: glTF Y-up, 1 unit = 1 m, origin at floor-center.