Skip to content

Runtime and Deployment Choices

This page is the short operator view for platform owners. It explains which setup decisions matter before diving into the deeper system documentation.

For most real environments:

  • use PostgreSQL instead of SQLite
  • use Redis for broker, cache, and websocket transport
  • mount /app/data to persistent storage
  • set FRONTEND_BASE_URL so email links are correct
  • set DJANGO_ALLOWED_HOSTS explicitly

When SQLite is still acceptable

SQLite is still reasonable for:

  • demos
  • light pilot environments
  • very small teams with low write concurrency

Move to PostgreSQL when:

  • multiple admins work in parallel
  • queues and background jobs matter
  • archive and payload volume starts growing

How Docker configuration normally arrives

The container is usually bootstrapped through:

  • CONFIG_JSON_B64
  • or a mounted /run/secrets/app-config.json

That payload becomes the effective .env used at startup.

Common mistakes

  • REDIS_LOCAL=false without also setting external Redis URLs
  • relying on internal Redis persistence even though bundled Redis runs without disk persistence
  • using ALLOWED_HOSTS instead of DJANGO_ALLOWED_HOSTS
  • assuming DEBUG is environment-driven even though the current code hardcodes it

Where to go next