76 lines
2.9 KiB
YAML
76 lines
2.9 KiB
YAML
version: '3.8'
|
|
|
|
services:
|
|
|
|
calcom:
|
|
container_name: calcom
|
|
image: calcom/cal.com:v4.1.12
|
|
restart: unless-stopped
|
|
ports:
|
|
- ${APP_PORT}:3000
|
|
networks:
|
|
- tipi_main_network
|
|
depends_on:
|
|
- db-calcom
|
|
environment:
|
|
- DATABASE_HOST=db-calcom
|
|
- DATABASE_URL=postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@db-calcom/calcom
|
|
- DATABASE_DIRECT_URL=postgresql://${POSTGRES_USERNAME}:${POSTGRES_PASSWORD}@db-calcom/calcom
|
|
- POSTGRES_USER=${POSTGRES_USERNAME}
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- POSTGRES_DB=calcom
|
|
- LICENSE=agree
|
|
- NEXT_PUBLIC_LICENSE_CONSENT=agree
|
|
- NEXT_PUBLIC_WEBAPP_URL=https://${APP_DOMAIN}
|
|
- NEXTAUTH_SECRET=${CALCOM_NEXTAUTH_SECRET}
|
|
- CALENDSO_ENCRYPTION_KEY=${CALENDSO_ENCRYPTION_KEY}
|
|
- MS_GRAPH_CLIENT_ID=${MS_GRAPH_CLIENT_ID}
|
|
- MS_GRAPH_CLIENT_SECRET=${MS_GRAPH_CLIENT_SECRET}
|
|
- ZOOM_CLIENT_ID=${ZOOM_CLIENT_ID}
|
|
- ZOOM_CLIENT_SECRET=${ZOOM_CLIENT_SECRET}
|
|
- GOOGLE_API_CREDENTIALS=${CALCOM_GOOGLE_API_CREDENTIALS}
|
|
- EMAIL_FROM=${EMAIL_FROM}
|
|
- EMAIL_SERVER_HOST=${EMAIL_SERVER_HOST}
|
|
- EMAIL_SERVER_PORT=${EMAIL_SERVER_PORT}
|
|
- EMAIL_SERVER_PASSWORD=${EMAIL_SERVER_PASSWORD}
|
|
- EMAIL_SERVER_USER=${EMAIL_SERVER_USER}
|
|
- NODE_ENV=production
|
|
labels:
|
|
# Main
|
|
traefik.enable: true
|
|
traefik.http.middlewares.calcom-web-redirect.redirectscheme.scheme: https
|
|
traefik.http.services.calcom.loadbalancer.server.port: 3000
|
|
# Web
|
|
traefik.http.routers.calcom-insecure.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.calcom-insecure.entrypoints: web
|
|
traefik.http.routers.calcom-insecure.service: calcom
|
|
traefik.http.routers.calcom-insecure.middlewares: calcom-web-redirect
|
|
# Websecure
|
|
traefik.http.routers.calcom.rule: Host(`${APP_DOMAIN}`)
|
|
traefik.http.routers.calcom.entrypoints: websecure
|
|
traefik.http.routers.calcom.service: calcom
|
|
traefik.http.routers.calcom.tls.certresolver: myresolver
|
|
# Local domain
|
|
traefik.http.routers.calcom-local-insecure.rule: Host(`calcom.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.calcom-local-insecure.entrypoints: web
|
|
traefik.http.routers.calcom-local-insecure.service: calcom
|
|
traefik.http.routers.calcom-local-insecure.middlewares: calcom-web-redirect
|
|
# Local domain secure
|
|
traefik.http.routers.calcom-local.rule: Host(`calcom.${LOCAL_DOMAIN}`)
|
|
traefik.http.routers.calcom-local.entrypoints: websecure
|
|
traefik.http.routers.calcom-local.service: calcom
|
|
traefik.http.routers.calcom-local.tls: true
|
|
|
|
db-calcom:
|
|
container_name: db-calcom
|
|
image: postgres:16.1
|
|
restart: on-failure
|
|
volumes:
|
|
- ${APP_DATA_DIR}/data/db:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- POSTGRES_USER=${POSTGRES_USERNAME}
|
|
- POSTGRES_DB=calcom
|
|
networks:
|
|
- tipi_main_network
|