# Required public URL settings NEXT_PUBLIC_WEBAPP_URL=https://cal.example.com NEXTAUTH_URL=https://cal.example.com/api/auth ALLOWED_HOSTNAMES=cal.example.com # Required secrets POSTGRES_PASSWORD=replace-with-a-long-random-password NEXTAUTH_SECRET=replace-with-openssl-rand-base64-32 CALENDSO_ENCRYPTION_KEY=replace-with-openssl-rand-base64-24 CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY=replace-with-random-service-account-key JWT_SECRET=replace-with-a-long-random-jwt-secret CRON_API_KEY=replace-with-a-long-random-token # Authentik OIDC AUTHENTIK_ISSUER=https://auth.example.com/application/o/cal/ AUTHENTIK_CLIENT_ID=replace-with-authentik-client-id AUTHENTIK_CLIENT_SECRET=replace-with-authentik-client-secret # Optional stack settings CALCOM_IMAGE=10.0.3.6:4000/zachariahsharma/cal-diy-oidc:latest CALCOM_API_V2_IMAGE=10.0.3.6:4000/zachariahsharma/cal-diy-oidc-api-v2:latest CALCOM_PORT=3030 CAL_API_V2_PORT=3031 # Optional scheduler service (enable with the "scheduler" compose profile). # Keep SCHEDULER_DEMO_MODE=0 in production: demo mode bypasses Authentik login. SCHEDULER_IMAGE=10.0.3.6:4000/zachariahsharma/vynte-scheduler:latest SCHEDULER_PORT=3040 SCHEDULER_DEMO_MODE=0 POSTGRES_USER=calcom POSTGRES_DB=calcom CALCOM_TELEMETRY_DISABLED=1 CRON_ENABLE_APP_SYNC=false ORGANIZATIONS_ENABLED=0 NEXT_PUBLIC_SINGLE_ORG_SLUG= NEXT_PUBLIC_API_V2_URL= API_URL=http://cal-api-v2:5555 API_KEY_PREFIX=cal_ STRIPE_API_KEY=sk_test_placeholder STRIPE_WEBHOOK_SECRET=whsec_placeholder NEXT_PUBLIC_WEBSITE_URL= NEXTAUTH_URL_INTERNAL=http://calcom:3000/api/auth NEXTAUTH_COOKIE_DOMAIN= NODE_TLS_REJECT_UNAUTHORIZED= # Optional SMTP settings. Leave blank until you wire email. EMAIL_FROM=notifications@example.com EMAIL_FROM_NAME=Cal.diy EMAIL_SERVER_HOST= EMAIL_SERVER_PORT=587 EMAIL_SERVER_USER= EMAIL_SERVER_PASSWORD= EMAIL_SERVER_SECURE=false