Add production-with-Postgres help doc; fix env var docs

Add production-with-Postgres help doc; fix env var docs

#45 in Riparion/riparion-cms — merged 2026-06-02

Summary

  • Add a Running in production with Postgres help article (/help/production) that complements the SQLite Docker quick-start: composing the docker-compose.postgres.yml overlay, setting the DB password, pg_dump/psql backup & restore, a going-live checklist, and a full table of env vars to set. The two getting-started docs now cross-link each other via "See also".
  • Audited every env var the app and arium actually read, then reconciled .env.example and the compose files against the code.

Env var fixes

Wrong names that silently did nothing (verified against the arium commit pinned in Cargo.lock):

Was documented Code actually reads
SMTP_USERNAME SMTP_USER (arium/src/mail.rs)
MAIL_FROM_ADDRESS FROM_EMAIL (arium/src/mail.rs)

Previously undocumented, now added: PUBLIC_BASE_URL, GITHUB_REDIRECT_URL, the full OIDC_* set, DX_RATE_LIMIT, DX_BACKFILL_IMAGES, DX_SEED_DEMO_PASSWORD, SITE_TITLE.

Compose: converted the email/OAuth block in docker-compose.yml from commented literals to real ${VAR:-} host pass-throughs and added the missing ones. The postgres overlay inherits these via compose's environment merge (documented inline).

Test plan

  • cargo fmt --check
  • cargo clippy --all-targets -- -D warnings ✅ (default sqlite/server/web)
  • docker compose -f docker-compose.yml config
  • docker compose -f docker-compose.yml -f docker-compose.postgres.yml config ✅ — DATABASE_URL resolves to Postgres; all 26 correctly-named vars present in the merged env.

🤖 Generated with Claude Code

Last updated 2026-06-03