Required secrets
These are the minimum variables for a production deployment.
| Variable | Purpose |
|---|---|
RAILS_MASTER_KEY | Decrypts Rails credentials |
DATABASE_URL | Connects PostgreSQL for the control-plane app database |
REDIS_URL | Powers Sidekiq, caching, and Redis-backed features |
LOGISTER_ADMIN_EMAILS | Bootstraps admin access for named operators |
Most production installs also set LOGISTER_EMAIL_FROM and SENDGRID_API_KEY.
Optional services
Enable additional integrations only when you need them.
LOGISTER_EMAIL_FROMsets the sender for auth and system mailSENDGRID_API_KEYenables SendGrid delivery in production
Cloudflare Turnstile
shell
LOGISTER_TURNSTILE_ENABLED=true
LOGISTER_TURNSTILE_SITE_KEY=
LOGISTER_TURNSTILE_SECRET_KEY=The Devise sign-in and sign-up flows render the Turnstile widget and validate tokens server-side when enabled.
Consent-gated analytics
shell
LOGISTER_COOKIE_CONSENT_ENABLED=true
LOGISTER_ANALYTICS_ENABLED=true
COOKIECONSENT_SCRIPT_URL=
COOKIECONSENT_WEBSITE_NAME=
COOKIECONSENT_PRIVACY_POLICY_URL=https://your-domain.example/privacy
GOOGLE_TAG_ID=G-XXXXXXXXXX
CLOUDFLARE_WEB_ANALYTICS_TOKEN=Provider files
Keep deploy config in version control, but keep secrets out of the repo.
Dockerfilefor containerized deploysconfig/deploy.ymlfor Kamal-based deploysfly.tomlas tracked non-secret Fly.io configfly.toml.exampleas a reference template
Important
Keep secrets in your deploy provider or CI secret store, not in tracked config files.
Production checklist
Run this checklist before calling the rollout complete.
- Set the required secrets and connection URLs.
- Configure outbound email if you need system or confirmation emails.
- Pick your deploy method and keep provider config tracked separately from secrets.
- Run migrations during deploy.
- Verify Sidekiq boots against the production Redis instance.
- Only then turn on ClickHouse, Turnstile, or analytics tooling if you need them.
Deploy verification
Check the operator path, not just the web process.
Post-deploy verification
Admin user can sign in
Project creation succeeds
API key generation works and shows the token once
Background job processes can connect to Redis
One test event lands in the project inbox