homelab/cal/docker-compose.yml
2025-11-22 22:20:32 -06:00

59 lines
1.7 KiB
YAML

# Use postgres/example user/password credentials
version: "3.8"
volumes:
database-data:
services:
caldb:
container_name: caldb
image: postgres
restart: always
volumes:
- database-data:/var/lib/postgresql/data/
env_file: .env
networks:
- proxy
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
calcom:
container_name: calcom
image: calcom.docker.scarf.sh/calcom/cal.com
restart: always
ports:
- "3000:3000"
build:
context: .
dockerfile: Dockerfile
args:
NEXT_PUBLIC_WEBAPP_URL: ${NEXT_PUBLIC_WEBAPP_URL}
NEXT_PUBLIC_LICENSE_CONSENT: ${NEXT_PUBLIC_LICENSE_CONSENT}
CALCOM_TELEMETRY_DISABLED: ${CALCOM_TELEMETRY_DISABLED}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
CALENDSO_ENCRYPTION_KEY: ${CALENDSO_ENCRYPTION_KEY}
DATABASE_URL: ${DATABASE_URL}
network: proxy
networks:
- proxy
env_file: .env
environment:
- DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@tcp(caldb)/${POSTGRES_DB}
depends_on:
- caldb
labels:
- "traefik.enable=true"
- "traefik.http.routers.cal.entrypoints=http"
- "traefik.http.routers.cal.rule=Host(`cal.${URL}`)"
- "traefik.http.middlewares.cal-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.cal.middlewares=cal-https-redirect"
- "traefik.http.routers.cal-secure.entrypoints=https"
- "traefik.http.routers.cal-secure.rule=Host(`cal.${URL}`)"
- "traefik.http.routers.cal-secure.tls=true"
- "traefik.http.routers.cal-secure.service=cal"
- "traefik.http.services.cal.loadbalancer.server.port=3000"
- "traefik.docker.network=proxy"
networks:
proxy:
external: true