> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/calcom/cal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration

> Complete guide to Cal.com environment variables and configuration options

Cal.com is configured primarily through environment variables defined in a `.env` file. This guide documents all available configuration options.

## Quick Setup

1. Copy the example environment file:

```bash theme={null}
cp .env.example .env
```

2. Generate required secrets:

```bash theme={null}
# NextAuth secret (32 bytes)
openssl rand -base64 32

# Encryption key (24 bytes for AES256)
openssl rand -base64 24

# VAPID keys for push notifications
npx web-push generate-vapid-keys
```

3. Configure essential variables in `.env`

## Essential Configuration

### Database

<ParamField path="DATABASE_URL" type="string" required>
  PostgreSQL connection string with credentials. Used by the application and connection poolers.

  ```bash theme={null}
  DATABASE_URL="postgresql://postgres:password@localhost:5432/calendso"
  ```
</ParamField>

<ParamField path="DATABASE_DIRECT_URL" type="string" required>
  Direct PostgreSQL connection for migrations. Use the same as `DATABASE_URL` if not using a connection pooler like PgBouncer.

  ```bash theme={null}
  DATABASE_DIRECT_URL="postgresql://postgres:password@localhost:5432/calendso"
  ```
</ParamField>

<ParamField path="INSIGHTS_DATABASE_URL" type="string">
  Optional separate database for analytics and insights data.
</ParamField>

<ParamField path="PGSSLMODE" type="string" default="prefer">
  SSL mode for PostgreSQL connection. Use `no-verify` for self-signed certificates (Heroku, etc.).

  ```bash theme={null}
  PGSSLMODE="no-verify"
  ```
</ParamField>

### Application URLs

<ParamField path="NEXT_PUBLIC_WEBAPP_URL" type="string" required>
  Base URL where your Cal.com instance is hosted. Must include protocol.

  ```bash theme={null}
  NEXT_PUBLIC_WEBAPP_URL="https://cal.yourdomain.com"
  ```

  <Note>For organizations feature, use app subdomain: `http://app.cal.local:3000`</Note>
</ParamField>

<ParamField path="NEXT_PUBLIC_WEBSITE_URL" type="string">
  Marketing website URL. Defaults to `NEXT_PUBLIC_WEBAPP_URL`.

  ```bash theme={null}
  NEXT_PUBLIC_WEBSITE_URL="https://yourdomain.com"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_EMBED_LIB_URL" type="string">
  URL for Cal.com embed library.

  ```bash theme={null}
  NEXT_PUBLIC_EMBED_LIB_URL="http://localhost:3000/embed/embed.js"
  ```
</ParamField>

### Authentication (NextAuth)

<ParamField path="NEXTAUTH_URL" type="string" required>
  Full URL to NextAuth API endpoint. Required for Vercel deployments.

  ```bash theme={null}
  NEXTAUTH_URL="https://cal.yourdomain.com"
  ```
</ParamField>

<ParamField path="NEXTAUTH_SECRET" type="string" required>
  Secret for encrypting session cookies. Generate with `openssl rand -base64 32`.

  ```bash theme={null}
  NEXTAUTH_SECRET="your-generated-secret-here"
  ```
</ParamField>

<ParamField path="NEXTAUTH_COOKIE_DOMAIN" type="string">
  Domain for cross-domain cookie authentication.

  ```bash theme={null}
  NEXTAUTH_COOKIE_DOMAIN=".yourdomain.com"
  ```
</ParamField>

### Encryption

<ParamField path="CALENDSO_ENCRYPTION_KEY" type="string" required>
  32-byte key for AES256 encryption. Generate with `openssl rand -base64 24`.

  ```bash theme={null}
  CALENDSO_ENCRYPTION_KEY="your-24-character-key"
  ```
</ParamField>

<ParamField path="CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY" type="string">
  24-byte key for app credential encryption in credential sync.

  ```bash theme={null}
  CALCOM_APP_CREDENTIAL_ENCRYPTION_KEY="$(openssl rand -base64 24)"
  ```
</ParamField>

<ParamField path="CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY" type="string">
  24-byte key for service account encryption.

  ```bash theme={null}
  CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY="$(openssl rand -base64 24)"
  ```
</ParamField>

## Security

### Content Security Policy

<ParamField path="CSP_POLICY" type="string">
  Enable Content Security Policy. Set to `non-strict` for enhanced security.

  ```bash theme={null}
  CSP_POLICY="non-strict"
  ```

  <Note>Strict CSP enables on login pages; report-only mode on SSR pages</Note>
</ParamField>

### Rate Limiting

<ParamField path="UNKEY_ROOT_KEY" type="string">
  Root key from [Unkey](https://unkey.com) for rate limiting. Optional but recommended for production.

  Requires permissions: `ratelimit.create_namespace` and `ratelimit.limit`
</ParamField>

### Allowed Hostnames

<ParamField path="ALLOWED_HOSTNAMES" type="string">
  JSON array of allowed hostnames for the application.

  ```bash theme={null}
  ALLOWED_HOSTNAMES='"cal.com","cal.dev","localhost:3000"'
  ```
</ParamField>

<ParamField path="RESERVED_SUBDOMAINS" type="string">
  Reserved organization subdomain names.

  ```bash theme={null}
  RESERVED_SUBDOMAINS='"app","auth","docs","api","www"'
  ```
</ParamField>

## Email Configuration

### SMTP Settings

<ParamField path="EMAIL_FROM" type="string" required>
  Sender email address for all outgoing emails.

  ```bash theme={null}
  EMAIL_FROM="notifications@yourdomain.com"
  ```
</ParamField>

<ParamField path="EMAIL_FROM_NAME" type="string">
  Display name for sender.

  ```bash theme={null}
  EMAIL_FROM_NAME="Cal.com"
  ```
</ParamField>

<ParamField path="EMAIL_SERVER_HOST" type="string" required>
  SMTP server hostname.

  ```bash theme={null}
  # Gmail
  EMAIL_SERVER_HOST="smtp.gmail.com"

  # Office 365
  EMAIL_SERVER_HOST="smtp.office365.com"

  # Local development (Mailhog)
  EMAIL_SERVER_HOST="localhost"
  ```
</ParamField>

<ParamField path="EMAIL_SERVER_PORT" type="number" required>
  SMTP server port.

  ```bash theme={null}
  EMAIL_SERVER_PORT=587  # TLS
  EMAIL_SERVER_PORT=465  # SSL (Gmail)
  EMAIL_SERVER_PORT=1025 # Mailhog (development)
  ```
</ParamField>

<ParamField path="EMAIL_SERVER_USER" type="string">
  SMTP authentication username.
</ParamField>

<ParamField path="EMAIL_SERVER_PASSWORD" type="string">
  SMTP authentication password or app-specific password.
</ParamField>

### SendGrid

<ParamField path="SENDGRID_API_KEY" type="string">
  SendGrid API key for transactional emails and reminders.

  ```bash theme={null}
  SENDGRID_API_KEY="SG.xxxxxxxxxxxx"
  ```
</ParamField>

<ParamField path="SENDGRID_EMAIL" type="string">
  Verified sender email in SendGrid.

  ```bash theme={null}
  SENDGRID_EMAIL="noreply@yourdomain.com"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_SENDGRID_SENDER_NAME" type="string">
  Display name for SendGrid emails.

  ```bash theme={null}
  NEXT_PUBLIC_SENDGRID_SENDER_NAME="Cal.com Notifications"
  ```
</ParamField>

### Resend

<ParamField path="RESEND_API_KEY" type="string">
  Resend API key for transactional emails (alternative to SendGrid).

  ```bash theme={null}
  RESEND_API_KEY="re_xxxxxxxxxxxx"
  ```
</ParamField>

## License & Enterprise

<ParamField path="CALCOM_LICENSE_KEY" type="string">
  Enterprise license key. Required for enterprise features.

  ```bash theme={null}
  CALCOM_LICENSE_KEY="your-license-key"
  ```
</ParamField>

<ParamField path="CAL_SIGNATURE_TOKEN" type="string">
  Signature token for Cal.com License API authentication.
</ParamField>

<ParamField path="CALCOM_PRIVATE_API_ROUTE" type="string" default="https://goblin.cal.com">
  Route to Cal.com License API.
</ParamField>

## Integrations

### Google Calendar

<ParamField path="GOOGLE_API_CREDENTIALS" type="json">
  Google OAuth credentials JSON for Calendar and Meet integration.

  ```bash theme={null}
  GOOGLE_API_CREDENTIALS='{"web":{"client_id":"...","client_secret":"..."}}'
  ```

  See [Obtaining Google API Credentials](#) for setup instructions.
</ParamField>

<ParamField path="GOOGLE_LOGIN_ENABLED" type="boolean" default="false">
  Enable "Sign in with Google".

  ```bash theme={null}
  GOOGLE_LOGIN_ENABLED=true
  ```

  <Warning>Configure as Internal app to prevent unauthorized access</Warning>
</ParamField>

<ParamField path="GOOGLE_CALENDAR_API_KEY" type="string">
  Google Calendar API key for holidays feature.
</ParamField>

<ParamField path="GOOGLE_WEBHOOK_TOKEN" type="string">
  Token to verify incoming webhooks from Google Calendar.
</ParamField>

<ParamField path="GOOGLE_WEBHOOK_URL" type="string">
  Override URL for Google Calendar webhooks. Defaults to `NEXT_PUBLIC_WEBAPP_URL`.
</ParamField>

### Microsoft 365

<ParamField path="MS_GRAPH_CLIENT_ID" type="string">
  Microsoft Graph Application (client) ID.
</ParamField>

<ParamField path="MS_GRAPH_CLIENT_SECRET" type="string">
  Microsoft Graph client secret.
</ParamField>

<ParamField path="MICROSOFT_WEBHOOK_TOKEN" type="string">
  Token to verify incoming webhooks from Microsoft Calendar.
</ParamField>

<ParamField path="MICROSOFT_WEBHOOK_URL" type="string">
  Override URL for Microsoft Calendar webhooks.
</ParamField>

### Zoom

<ParamField path="ZOOM_CLIENT_ID" type="string">
  Zoom OAuth client ID.
</ParamField>

<ParamField path="ZOOM_CLIENT_SECRET" type="string">
  Zoom OAuth client secret.
</ParamField>

### Daily.co Video

<ParamField path="DAILY_API_KEY" type="string">
  Daily.co API key for video conferencing.
</ParamField>

<ParamField path="DAILY_SCALE_PLAN" type="boolean" default="false">
  Enable Daily Scale Plan features (recording, etc.).

  ```bash theme={null}
  DAILY_SCALE_PLAN=true
  ```
</ParamField>

### Stripe

<ParamField path="STRIPE_PRIVATE_KEY" type="string">
  Stripe secret key for payment processing.
</ParamField>

<ParamField path="STRIPE_CLIENT_ID" type="string">
  Stripe client ID for Connect.
</ParamField>

<ParamField path="STRIPE_WEBHOOK_SECRET" type="string">
  Stripe webhook signing secret.
</ParamField>

<ParamField path="STRIPE_WEBHOOK_SECRET_APPS" type="string">
  Stripe webhook secret for app store integrations.
</ParamField>

## SMS & WhatsApp

### Twilio

<ParamField path="TWILIO_SID" type="string">
  Twilio Account SID.
</ParamField>

<ParamField path="TWILIO_TOKEN" type="string">
  Twilio Auth Token.
</ParamField>

<ParamField path="TWILIO_MESSAGING_SID" type="string">
  Twilio Messaging Service SID.
</ParamField>

<ParamField path="TWILIO_PHONE_NUMBER" type="string">
  Twilio phone number for SMS.

  ```bash theme={null}
  TWILIO_PHONE_NUMBER="+1234567890"
  ```
</ParamField>

<ParamField path="TWILIO_WHATSAPP_PHONE_NUMBER" type="string">
  Twilio WhatsApp-enabled phone number.

  ```bash theme={null}
  TWILIO_WHATSAPP_PHONE_NUMBER="whatsapp:+1234567890"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_SENDER_ID" type="string">
  SMS sender ID (max 11 characters, letters, numbers, and spaces only).
</ParamField>

<ParamField path="TWILIO_VERIFY_SID" type="string">
  Twilio Verify Service SID for phone verification.
</ParamField>

## Push Notifications

<ParamField path="NEXT_PUBLIC_VAPID_PUBLIC_KEY" type="string" required>
  VAPID public key for browser push notifications.

  Generate with: `npx web-push generate-vapid-keys`

  ```bash theme={null}
  NEXT_PUBLIC_VAPID_PUBLIC_KEY="BKxxx..."
  ```
</ParamField>

<ParamField path="VAPID_PRIVATE_KEY" type="string" required>
  VAPID private key for push notifications.

  ```bash theme={null}
  VAPID_PRIVATE_KEY="xxx..."
  ```
</ParamField>

## Branding & Customization

<ParamField path="NEXT_PUBLIC_APP_NAME" type="string" default="Cal.com">
  Application name displayed throughout the UI.

  ```bash theme={null}
  NEXT_PUBLIC_APP_NAME="Your Company Scheduler"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_SUPPORT_MAIL_ADDRESS" type="string" default="help@cal.com">
  Support email address.

  ```bash theme={null}
  NEXT_PUBLIC_SUPPORT_MAIL_ADDRESS="support@yourdomain.com"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_COMPANY_NAME" type="string" default="Cal.com, Inc.">
  Company name for legal pages.

  ```bash theme={null}
  NEXT_PUBLIC_COMPANY_NAME="Your Company, Inc."
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL" type="string">
  URL to your privacy policy.

  ```bash theme={null}
  NEXT_PUBLIC_WEBSITE_PRIVACY_POLICY_URL="https://yourdomain.com/privacy"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_WEBSITE_TERMS_URL" type="string">
  URL to your terms of service.

  ```bash theme={null}
  NEXT_PUBLIC_WEBSITE_TERMS_URL="https://yourdomain.com/terms"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_DISABLE_SIGNUP" type="boolean" default="false">
  Disable new user signups.

  ```bash theme={null}
  NEXT_PUBLIC_DISABLE_SIGNUP=true
  ```
</ParamField>

## Analytics & Monitoring

### Telemetry

<ParamField path="CALCOM_TELEMETRY_DISABLED" type="boolean" default="false">
  Disable anonymous usage analytics.

  ```bash theme={null}
  CALCOM_TELEMETRY_DISABLED=1
  ```
</ParamField>

### Sentry

<ParamField path="NEXT_PUBLIC_SENTRY_DSN" type="string">
  Sentry DSN for error tracking.

  ```bash theme={null}
  NEXT_PUBLIC_SENTRY_DSN="https://xxx@sentry.io/xxx"
  ```
</ParamField>

<ParamField path="SENTRY_ORG" type="string">
  Sentry organization slug.
</ParamField>

<ParamField path="SENTRY_PROJECT" type="string">
  Sentry project name.
</ParamField>

<ParamField path="SENTRY_AUTH_TOKEN" type="string">
  Sentry authentication token for releases.
</ParamField>

### PostHog

<ParamField path="NEXT_PUBLIC_POSTHOG_KEY" type="string">
  PostHog project API key.
</ParamField>

<ParamField path="NEXT_PUBLIC_POSTHOG_HOST" type="string">
  PostHog instance URL.

  ```bash theme={null}
  NEXT_PUBLIC_POSTHOG_HOST="https://app.posthog.com"
  ```
</ParamField>

### Logging

<ParamField path="NEXT_PUBLIC_LOGGER_LEVEL" type="number">
  Logging verbosity level:

  * `0`: silly & upwards
  * `1`: trace & upwards
  * `2`: debug & upwards
  * `3`: info & upwards (recommended)
  * `4`: warn & upwards
  * `5`: error & fatal
  * `6`: fatal only

  ```bash theme={null}
  NEXT_PUBLIC_LOGGER_LEVEL=3
  ```
</ParamField>

## Organizations (Enterprise)

<ParamField path="ORGANIZATIONS_ENABLED" type="boolean" default="false">
  Enable organizations feature (requires full domain setup).

  ```bash theme={null}
  ORGANIZATIONS_ENABLED=true
  NEXT_PUBLIC_WEBAPP_URL="http://app.cal.local:3000"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_SINGLE_ORG_SLUG" type="string">
  Serve only one organization's booking pages.

  ```bash theme={null}
  NEXT_PUBLIC_SINGLE_ORG_SLUG="your-org"
  ```
</ParamField>

<ParamField path="ORGANIZATIONS_AUTOLINK" type="boolean" default="false">
  Auto-link external signups to organizations by email domain.
</ParamField>

<ParamField path="NEXT_PUBLIC_ORGANIZATIONS_MIN_SELF_SERVE_SEATS" type="number" default="30">
  Minimum seats for self-serve organizations.
</ParamField>

### Vercel Domain Management

<ParamField path="PROJECT_ID_VERCEL" type="string">
  Vercel project ID for subdomain management.
</ParamField>

<ParamField path="TEAM_ID_VERCEL" type="string">
  Vercel team ID.
</ParamField>

<ParamField path="AUTH_BEARER_TOKEN_VERCEL" type="string">
  Vercel API token for domain management.
</ParamField>

### Cloudflare DNS Management

<ParamField path="CLOUDFLARE_DNS" type="boolean" default="false">
  Use Cloudflare for DNS management.

  ```bash theme={null}
  CLOUDFLARE_DNS=1
  ```
</ParamField>

<ParamField path="AUTH_BEARER_TOKEN_CLOUDFLARE" type="string">
  Cloudflare API token with Zone Edit permissions.
</ParamField>

<ParamField path="CLOUDFLARE_ZONE_ID" type="string">
  Cloudflare Zone ID for your domain.
</ParamField>

<ParamField path="CLOUDFLARE_VERCEL_CNAME" type="string" default="cname.vercel-dns.com">
  CNAME target for Vercel domains.
</ParamField>

## SAML SSO (Enterprise)

<ParamField path="SAML_DATABASE_URL" type="string">
  Separate PostgreSQL database for SAML data.

  ```bash theme={null}
  SAML_DATABASE_URL="postgresql://user:pass@host:5432/cal-saml"
  ```
</ParamField>

<ParamField path="SAML_ADMINS" type="string">
  Comma-separated list of admin emails.

  ```bash theme={null}
  SAML_ADMINS="admin@company.com,admin2@company.com"
  ```
</ParamField>

<ParamField path="SAML_CLIENT_SECRET_VERIFIER" type="string">
  Random secret for OAuth 2.0 SAML flow.
</ParamField>

## API V2

<ParamField path="NEXT_PUBLIC_API_V2_URL" type="string">
  URL for Cal.com Platform API v2.

  ```bash theme={null}
  NEXT_PUBLIC_API_V2_URL="http://localhost:5555/api/v2"
  ```
</ParamField>

<ParamField path="API_PORT" type="number" default="80">
  Port for API v2 service.

  ```bash theme={null}
  API_PORT=5555
  ```
</ParamField>

<ParamField path="API_URL" type="string">
  Full URL to API v2 service.
</ParamField>

<ParamField path="WEB_APP_URL" type="string">
  Web application URL for API callbacks.
</ParamField>

<ParamField path="API_KEY_PREFIX" type="string" default="cal_">
  Prefix for API keys.

  ```bash theme={null}
  API_KEY_PREFIX="cal_"
  ```
</ParamField>

## Cron Jobs

<ParamField path="CRON_API_KEY" type="string" required>
  API key for authenticating cron job requests.

  ```bash theme={null}
  CRON_API_KEY="$(openssl rand -hex 16)"
  ```
</ParamField>

<ParamField path="CRON_ENABLE_APP_SYNC" type="boolean" default="false">
  Auto-sync app metadata from config files.

  ```bash theme={null}
  CRON_ENABLE_APP_SYNC=true
  ```
</ParamField>

## Redis

<ParamField path="REDIS_URL" type="string">
  Redis connection string for caching and queues.

  ```bash theme={null}
  REDIS_URL="redis://localhost:6379"
  ```
</ParamField>

<ParamField path="REDIS_PORT" type="number" default="6379">
  Redis port (used in docker-compose).
</ParamField>

## Performance & Optimization

<ParamField path="NODE_OPTIONS" type="string">
  Node.js runtime options.

  ```bash theme={null}
  NODE_OPTIONS="--max-old-space-size=16384"
  ```
</ParamField>

<ParamField path="MAX_OLD_SPACE_SIZE" type="number" default="6144">
  Memory limit for build process (in MB).
</ParamField>

<ParamField path="DATABASE_CHUNK_SIZE" type="number">
  Batch size for database operations.
</ParamField>

<ParamField path="TZ" type="string" default="UTC">
  Process timezone. Always use UTC.

  ```bash theme={null}
  TZ=UTC
  ```
</ParamField>

## Development & Testing

<ParamField path="NODE_ENV" type="string">
  Node environment.

  ```bash theme={null}
  NODE_ENV="production"  # or "development"
  ```
</ParamField>

<ParamField path="NEXT_PUBLIC_IS_E2E" type="boolean" default="false">
  Enable E2E testing mode.

  ```bash theme={null}
  NEXT_PUBLIC_IS_E2E=1
  ```
</ParamField>

<ParamField path="E2E_TEST_MAILHOG_ENABLED" type="boolean" default="false">
  Enable Mailhog for email testing.

  ```bash theme={null}
  E2E_TEST_MAILHOG_ENABLED=1
  ```
</ParamField>

## Example Configurations

### Minimal Production Setup

```bash theme={null}
# Database
DATABASE_URL="postgresql://user:pass@db.example.com:5432/calendso"
DATABASE_DIRECT_URL="postgresql://user:pass@db.example.com:5432/calendso"

# URLs
NEXT_PUBLIC_WEBAPP_URL="https://cal.yourdomain.com"
NEXTAUTH_URL="https://cal.yourdomain.com"

# Secrets (generate these!)
NEXTAUTH_SECRET="generated-with-openssl-rand"
CALENDSO_ENCRYPTION_KEY="generated-24-byte-key"
CRON_API_KEY="generated-cron-key"

# VAPID (generate with npx web-push generate-vapid-keys)
NEXT_PUBLIC_VAPID_PUBLIC_KEY="your-public-key"
VAPID_PRIVATE_KEY="your-private-key"

# Email
EMAIL_FROM="noreply@yourdomain.com"
SENDGRID_API_KEY="SG.xxxxx"
SENDGRID_EMAIL="noreply@yourdomain.com"

# Disable telemetry
CALCOM_TELEMETRY_DISABLED=1
```

### Docker Compose Setup

```bash theme={null}
# Docker-managed services
DATABASE_URL="postgresql://unicorn_user:magical_password@database:5432/calendso"
REDIS_URL="redis://redis:6379"

# Application
NEXT_PUBLIC_WEBAPP_URL="http://localhost:3000"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="secret-for-dev"
CALENDSO_ENCRYPTION_KEY="encryption-key-for-dev"

# VAPID keys
NEXT_PUBLIC_VAPID_PUBLIC_KEY="your-public-key"
VAPID_PRIVATE_KEY="your-private-key"

# Email (development with Mailhog)
EMAIL_SERVER_HOST="localhost"
EMAIL_SERVER_PORT=1025
EMAIL_FROM="dev@cal.local"
```

### Enterprise with Organizations

```bash theme={null}
# Enable organizations
ORGANIZATIONS_ENABLED=true
NEXT_PUBLIC_WEBAPP_URL="https://app.yourcompany.com"

# License
CALCOM_LICENSE_KEY="your-enterprise-license"
CAL_SIGNATURE_TOKEN="your-signature-token"

# SAML SSO
SAML_DATABASE_URL="postgresql://user:pass@host:5432/cal-saml"
SAML_ADMINS="admin@yourcompany.com"

# Domain management (Cloudflare)
CLOUDFLARE_DNS=1
AUTH_BEARER_TOKEN_CLOUDFLARE="your-api-token"
CLOUDFLARE_ZONE_ID="your-zone-id"
```

## Next Steps

* Review [Database Setup](/self-hosting/database) for connection pooling and migrations
* See [Docker Configuration](/self-hosting/docker) for container-specific options
* Configure [Deployment](/self-hosting/deployment) for your platform
