# Environment for deploy/docker-compose.yml. The CI deploy job (ci.yaml) maps the # Gitea TEST_-prefixed secrets/variables onto these unprefixed names; the prod # deploy maps the PROD_-prefixed set the same way. Copy to deploy/.env for a local run. # # Full reference (required vs optional, defaults, secret-vs-variable): deploy/README.md. # --- Postgres --------------------------------------------------------------- POSTGRES_DB=scrabble POSTGRES_USER=scrabble POSTGRES_PASSWORD=change-me # required # --- Dictionary ------------------------------------------------------------- # scrabble-dictionary release tag baked into the image as the SEED dictionary for a # FRESH volume (image build-arg; also labels the resident seed version). After first # boot the dawg-data volume preserves versions uploaded through the admin console and # the active version lives in the DB. On a live volume a changed value is ignored (the # recorded .seed_version marker wins — the seed-drift guard); change a running # contour's dictionary through /_gm/dictionary (ARCHITECTURE.md §5). DICT_VERSION=v1.2.1 # --- Logging ---------------------------------------------------------------- LOG_LEVEL=info # --- Edge / caddy ----------------------------------------------------------- # Test: ":80" (the host caddy terminates TLS and forwards to scrabble:80 on the # external `edge` network). Prod: a domain so caddy does its own ACME. CADDY_SITE_ADDRESS=:80 GM_BASICAUTH_USER=gm GM_BASICAUTH_HASH= # required; `caddy hash-password` bcrypt hash # --- UI build args (baked into the gateway image) --------------------------- VITE_TELEGRAM_BOT_ID= VITE_TELEGRAM_LINK= # friend-invite Mini App link (full URL, e.g. https://t.me//) VITE_TELEGRAM_GAME_CHANNEL_NAME= # landing "Play in Telegram" link, the bot's game channel VITE_GATEWAY_URL= # --- Grafana ---------------------------------------------------------------- GRAFANA_ROOT_URL=/_gm/grafana/ # set the full https URL behind a real domain GRAFANA_ADMIN_PASSWORD=admin # --- Telegram validator + bot ----------------------------------------------- # The token is shared: the validator uses it as the HMAC secret, the bot for the # Bot API. The bot-link wiring (validator/relay/mTLS addresses) is hard-wired in # docker-compose.yml; the mTLS material is NOT here — run `deploy/gen-certs.sh` # (writes deploy/certs/, gitignored) before `docker compose up`. AWG_CONF= # required; AmneziaWG sidecar config (the bot's Telegram egress) TELEGRAM_BOT_TOKEN= # required TELEGRAM_GAME_CHANNEL_ID= TELEGRAM_CHAT_ID= # moderated discussion chat (channel's linked group); empty disables gating TELEGRAM_PROMO_BOT_TOKEN= # optional standalone promo bot token; empty disables it TELEGRAM_BOT_USERNAME= # main bot @username without the @ (promo message); required when the promo token is set TELEGRAM_BOT_LINK= # main bot Mini App link for the promo button (reuse VITE_TELEGRAM_LINK); required when the promo token is set TELEGRAM_MINIAPP_URL= # required TELEGRAM_TEST_ENV=false TELEGRAM_API_BASE_URL=