66 lines
3.1 KiB
YAML
66 lines
3.1 KiB
YAML
# documentation: https://cal.com/docs
|
|
# slogan: Scheduling infrastructure for everyone.
|
|
# tags: calcom,calendso,scheduling,open,source
|
|
# logo: svgs/calcom.svg
|
|
# port: 3000
|
|
|
|
services:
|
|
calcom:
|
|
image: calcom.docker.scarf.sh/calcom/cal.com
|
|
platform: linux/amd64
|
|
environment:
|
|
# Some variables still uses Calcom previous name, Calendso
|
|
#
|
|
# Full list https://github.com/calcom/cal.com/blob/main/.env.example
|
|
- SERVICE_FQDN_CALCOM_3000
|
|
- NEXT_PUBLIC_LICENSE_CONSENT=agree
|
|
- NODE_ENV=production
|
|
- NEXT_PUBLIC_WEBAPP_URL=${SERVICE_FQDN_CALCOM}
|
|
- NEXT_PUBLIC_API_V2_URL=${SERVICE_FQDN_CALCOM}/api/v2
|
|
# https://next-auth.js.org/configuration/options#nextauth_url
|
|
# From https://github.com/calcom/docker?tab=readme-ov-file#important-run-time-variables, it should be ${NEXT_PUBLIC_WEBAPP_URL}/api/auth
|
|
- NEXTAUTH_URL=${SERVICE_FQDN_CALCOM}/api/auth
|
|
# It is highly recommended that the NEXTAUTH_SECRET must be overridden and very unique
|
|
# Use `openssl rand -base64 32` to generate a key
|
|
- NEXTAUTH_SECRET=${SERVICE_BASE64_CALCOMSECRET}
|
|
# Encryption key that will be used to encrypt CalDAV credentials, choose a random string, for example with `dd if=/dev/urandom bs=1K count=1 | md5sum`
|
|
- CALENDSO_ENCRYPTION_KEY=${SERVICE_BASE64_CALCOMKEY}
|
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_DB=${POSTGRES_DB:-calendso}
|
|
- DATABASE_HOST=postgresql
|
|
- DATABASE_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@${DATABASE_HOST:-postgresql}/${POSTGRES_DB:-calendso}
|
|
# Needed to run migrations while using a connection pooler like PgBouncer
|
|
# Use the same one as DATABASE_URL if you are not using a connection pooler
|
|
- DATABASE_DIRECT_URL=postgresql://${SERVICE_USER_POSTGRES}:${SERVICE_PASSWORD_POSTGRES}@${DATABASE_HOST:-postgresql}/${POSTGRES_DB:-calendso}
|
|
# GOOGLE_API_CREDENTIALS={}
|
|
# Set this to 1 if you don't want Cal to collect anonymous usage
|
|
- CALCOM_TELEMETRY_DISABLED=1
|
|
# E-mail settings
|
|
# Configures the global From: header whilst sending emails.
|
|
- EMAIL_FROM=${EMAIL_FROM}
|
|
- EMAIL_FROM_NAME=${EMAIL_FROM_NAME}
|
|
# Configure SMTP settings (@see https://nodemailer.com/smtp/).
|
|
- EMAIL_SERVER_HOST=${EMAIL_SERVER_HOST}
|
|
- EMAIL_SERVER_PORT=${EMAIL_SERVER_PORT}
|
|
- EMAIL_SERVER_USER=${EMAIL_SERVER_USER}
|
|
- EMAIL_SERVER_PASSWORD=${EMAIL_SERVER_PASSWORD}
|
|
- NEXT_PUBLIC_APP_NAME="Cal.com"
|
|
# More info on ALLOWED_HOSTNAMES https://github.com/calcom/cal.com/issues/12201
|
|
- ALLOWED_HOSTNAMES=["${SERVICE_FQDN_CALCOM}"]
|
|
depends_on:
|
|
- postgresql
|
|
postgresql:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_DB=${POSTGRES_DB:-calendso}
|
|
volumes:
|
|
- calcom-postgresql-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|