- Add hf_db_init sidecar that ensures the HarborForge database exists on
every `compose up` (idempotent CREATE DATABASE IF NOT EXISTS), so the
shared MySQL instance can host both hangmanlab and harborforge schemas
without touching existing data.
- Wire hf_backend's DATABASE_URL directly from compose env vars and gate
it on hf_db_init completing successfully.
- Add a mysqladmin-ping healthcheck on mysql so dependents can wait on
service_healthy.
- Drop dead Vite runtime envs from hf_frontend (build-time only) and
make wizard CORS_ORIGINS configurable via HF_FRONTEND_HOST.
- Seed .env.example with all variables the stack reads.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- hf_backend: zhi/harborforge-backend:multi-stage on port 8000
- hf_frontend: zhi/harborforge-frontend:latest on port 3000
- wizard: nav/abstract-wizard:latest on port 8082
- All services share app-network bridge