evocases-iframe¶
Documentation for working on the evocases-iframe stack. main is stage.
I want to…¶
- Run the whole stack on my laptop — two repos, one command
- Connect to the database or Redis — over Tailscale
- Understand how the pieces fit together — start with the embed host
- Read container logs
- Deploy, roll back, or restore a backup
Stage¶
| Game / embed | game.evocase-iframe.io — public, loaded in an operator's iframe |
| Back office | bo.evocase-iframe.io — behind Cloudflare Access |
| Back-office API | bo-api.evocase-iframe.io — public, mandatory TOTP |
| Container logs | logs.evocase-iframe.io — behind Access |
| Docs | docs.evocase-iframe.io |
| Postgres | evocases-iframe.taildb581b.ts.net:5432 — over Tailscale only |
| Redis | evocases-iframe.taildb581b.ts.net:6379 — over Tailscale only |
One Hetzner VM (cx33, nbg1), docker compose, everything reached through a
Cloudflare Tunnel. The VM publishes no ports; only SSH is open inbound.
The one thing to know first¶
game.evocase-iframe.io is two origins behind one hostname. games-api serves
the embed document because it is the only process that can build
Content-Security-Policy: frame-ancestors from the installation row; the static
image serves /<game>/assets/. See Architecture — most
surprises on this stack come from that split.