DATABASE_URL, CREDENTIAL_ENCRYPTION_KEY, and INTERNAL_INGEST_TOKEN.
Deploy
1
Build the control plane
2
Serve the app and API from one origin
Serve the built assets in Set
apps/control-plane/dist at your public origin, and route /api/* on the same origin to the control-plane service. Sign-in, OAuth callbacks, and webhooks all depend on one stable origin.BETTER_AUTH_URL to this origin. Set RESPONDER_PUBLIC_URL too if integration callbacks and webhooks should use a different public origin. OAuth redirect URIs and webhook URLs are derived from it.3
Run the worker
4
Apply migrations
Before each release starts, apply every migration in
drizzle/:5
Turn on automations
Set
RESPONDER_NEW_ORGANIZATION_CAPABILITIES=automations,simplified_navigation on the control plane so new workspaces get the automations product. See Self-hosting overview.Required configuration
Generate the encryption key and internal token with: