name: cal-diy-oidc volumes: postgres-data: redis-data: networks: cal-diy: services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-calcom} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: ${POSTGRES_DB:-calcom} volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 10s timeout: 5s retries: 10 networks: - cal-diy redis: image: redis:7-alpine restart: unless-stopped command: ["redis-server", "--appendonly", "yes"] volumes: - redis-data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 10 networks: - cal-diy calcom: image: ${CALCOM_IMAGE:-10.0.3.6:4000/zachariahsharma/cal-diy-oidc:latest} restart: unless-stopped depends_on: postgres: condition: service_healthy redis: condition: service_healthy ports: - "${CALCOM_PORT:-3030}:3000" environment: NODE_ENV: production NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL} NEXT_PUBLIC_WEBSITE_URL: ${NEXT_PUBLIC_WEBSITE_URL:-${NEXT_PUBLIC_WEBAPP_URL}} NEXT_PUBLIC_EMBED_LIB_URL: ${NEXT_PUBLIC_WEBAPP_URL}/embed/embed.js NEXTAUTH_URL: ${NEXTAUTH_URL} NEXTAUTH_URL_INTERNAL: ${NEXTAUTH_URL_INTERNAL:-http://calcom:3000/api/auth} NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} NEXTAUTH_COOKIE_DOMAIN: ${NEXTAUTH_COOKIE_DOMAIN:-} CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY} DATABASE_HOST: postgres:5432 DATABASE_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} DATABASE_DIRECT_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} REDIS_URL: redis://redis:6379 AUTHENTIK_ISSUER: ${AUTHENTIK_ISSUER} AUTHENTIK_CLIENT_ID: ${AUTHENTIK_CLIENT_ID} AUTHENTIK_CLIENT_SECRET: ${AUTHENTIK_CLIENT_SECRET} ALLOWED_HOSTNAMES: '"${ALLOWED_HOSTNAMES}"' RESERVED_SUBDOMAINS: ${RESERVED_SUBDOMAINS:-"app","auth","docs","design","console","go","status","api","saml","www","matrix","developer","cal","my","team","support","security","blog","learn","admin"} CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED:-1} CRON_API_KEY: ${CRON_API_KEY} CRON_ENABLE_APP_SYNC: ${CRON_ENABLE_APP_SYNC:-false} EMAIL_FROM: ${EMAIL_FROM:-notifications@example.com} EMAIL_FROM_NAME: ${EMAIL_FROM_NAME:-Cal.diy} EMAIL_SERVER_HOST: ${EMAIL_SERVER_HOST:-} EMAIL_SERVER_PORT: ${EMAIL_SERVER_PORT:-587} EMAIL_SERVER_USER: ${EMAIL_SERVER_USER:-} EMAIL_SERVER_PASSWORD: ${EMAIL_SERVER_PASSWORD:-} EMAIL_SERVER_SECURE: ${EMAIL_SERVER_SECURE:-false} NODE_TLS_REJECT_UNAUTHORIZED: ${NODE_TLS_REJECT_UNAUTHORIZED:-} NEXT_PUBLIC_DISABLE_SIGNUP: "true" networks: - cal-diy healthcheck: test: ["CMD-SHELL", "wget --spider -q http://$$(hostname):3000"] interval: 30s timeout: 10s retries: 10 cal-api-v2: image: ${CALCOM_API_V2_IMAGE:-10.0.3.6:4000/zachariahsharma/cal-diy-oidc-api-v2:latest} build: context: . dockerfile: apps/api/v2/Dockerfile args: DATABASE_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} DATABASE_DIRECT_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} restart: unless-stopped depends_on: postgres: condition: service_healthy redis: condition: service_healthy ports: - "${CAL_API_V2_PORT:-3031}:5555" environment: NODE_ENV: production API_PORT: 5555 API_URL: ${API_URL:-http://cal-api-v2:5555} WEB_APP_URL: ${NEXT_PUBLIC_WEBAPP_URL} DATABASE_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} DATABASE_DIRECT_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} DATABASE_READ_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} DATABASE_WRITE_URL: postgresql://${POSTGRES_USER:-calcom}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB:-calcom} REDIS_URL: redis://redis:6379 NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} JWT_SECRET: ${JWT_SECRET} CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY} CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY: ${CALCOM_SERVICE_ACCOUNT_ENCRYPTION_KEY} API_KEY_PREFIX: ${API_KEY_PREFIX:-cal_} REWRITE_API_V2_PREFIX: "1" STRIPE_API_KEY: ${STRIPE_API_KEY:-sk_test_placeholder} STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET:-whsec_placeholder} NEXT_PUBLIC_SENTRY_DSN: "" CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED:-1} networks: - cal-diy healthcheck: test: ["CMD-SHELL", "node -e \"fetch('http://127.0.0.1:5555/v2/me').then(r=>process.exit(r.ok||r.status===401?0:1)).catch(()=>process.exit(1))\""] interval: 30s timeout: 10s retries: 10