Skip to content

Production checklist

Use this list as a baseline before going live.

Run the Django deployment checklist

On a production container or host:

python manage.py check --deploy

Fix any critical warnings in the output.

Configure hosts and HTTPS

trak/main/settings/prod.py reads these from env variables (prefixed with TRAK_):

  • TRAK_ALLOWED_HOSTS
  • TRAK_SECRET_KEY

Set TRAK_ALLOWED_HOSTS to your production domains and ensure USE_HTTPS_IN_ABSOLUTE_URLS=True.

Database configuration

Production uses either:

  • TRAK_DB_URL (preferred), or
  • TRAK_DB_ENGINE, TRAK_DB_NAME, TRAK_DB_USER, TRAK_DB_PASSWORD, TRAK_DB_HOST, TRAK_DB_PORT

Make sure the database user has permissions to run migrations.

Static files

whitenoise handles static files by default. Ensure collectstatic runs during your build or release phase.

Media storage

By default, prod.py configures Google Cloud Storage via GS_BUCKET_NAME. If you are using S3, set USE_S3_MEDIA=True and the AWS vars in the environment.

Email

Configure a production email backend (Mailgun, SendGrid, etc.) and set the related environment variables.

Stripe (if enabled)

Set the Stripe keys and STRIPE_LIVE_MODE=True, then bootstrap your data:

python manage.py bootstrap_subscriptions

Background jobs

Ensure the Celery worker and beat are running (the celery service in Docker Compose).

Health checks

Set HEALTH_CHECK_TOKENS and wire /health/ into your monitoring system.

Error monitoring

Set SENTRY_DSN in the environment and verify errors are arriving in Sentry.

See the org-wide checklist at Production checklist.