version: "3.8" # Baikal CalDAV/CardDAV Server + Caddy Reverse Proxy # Alle persistenten Daten (Baikal-Konfig, Kalender/Kontakte, TLS-Zertifikat) # liegen unter ./daten im Projektverzeichnis. services: baikal: image: ckulka/baikal:nginx container_name: baikal restart: unless-stopped environment: - TZ=Europe/Berlin volumes: - ./daten/config:/var/www/baikal/config - ./daten/data:/var/www/baikal/Specific networks: - baikal_net caddy: build: ./caddy container_name: baikal_caddy restart: unless-stopped environment: # Hostname/CN fuer das selbstsignierte 100-Jahres-Zertifikat (Fallback, # nur relevant wenn DOMAIN/LETSENCRYPT_EMAIL NICHT gesetzt sind). - CADDY_CERT_CN=${CADDY_CERT_CN:-baikal.local} # Domain + Kontakt-Email fuer ein echtes Let's Encrypt Zertifikat. # Sind BEIDE gesetzt, holt/verwaltet Caddy automatisch ein Let's-Encrypt- # Zertifikat fuer DOMAIN. Ist eines von beiden leer, faellt der # Entrypoint auf das selbstsignierte 100-Jahres-Zertifikat zurueck. - DOMAIN=${DOMAIN:-} - LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL:-} ports: - "80:80" - "443:443" volumes: - ./daten/caddy_certs:/certs # /data enthaelt u.a. den Let's-Encrypt-Zertifikatscache (Modus 1), # /config Caddys Runtime-Config-Autosave. Beides unter ./daten, damit # dieser eine Ordner fuer beide Zertifikats-Modi ausreicht (Backup/Umzug). - ./daten/caddy_data:/data - ./daten/caddy_config:/config depends_on: - baikal networks: - baikal_net networks: baikal_net: