Radicale
Radicale is a lightweight CalDAV and CardDAV server for syncing calendars and contacts across devices.
This compose file deploys Radicale. Calendar and contact data is stored on an NFS volume, and the service is proxied through a Traefik reverse proxy with Cloudflare TLS certificates.
Docker Compose
# compose.yaml
services:
radicale:
image: tomsquest/docker-radicale
container_name: radicale
restart: unless-stopped
# ports:
# - 5232:5232
networks:
- radicale_proxy
volumes:
- type: volume
source: docker-nfs
target: /data
volume:
subpath: radicale/data
init: true
environment:
TZ: Europe/London
labels:
- "traefik.enable=true"
- "traefik.docker.network=radicale_proxy"
- "traefik.http.services.radicale.loadbalancer.server.port=5232"
- "traefik.http.routers.radicale.rule=Host(`radicale.${TRAEFIK_BASE_URL}`)"
- "traefik.http.routers.radicale.entrypoints=websecure"
- "traefik.http.routers.radicale.tls.certresolver=cloudflare"
volumes:
docker-nfs:
driver: local
driver_opts:
type: nfs
o: addr=xxx.xxx.xxx.xxx,nolock,soft,rw,nfsvers=4.2
device: :/mnt/nfs-volume
networks:
radicale_proxy:
name: radicale_proxy
Environment Variables
# .env
TRAEFIK_BASE_URL=
Traefik Configuration
# compose.yaml (excerpt)
services:
traefik:
image: traefik:latest
container_name: traefik
...
networks:
- traefik
# here
- radicale_proxy
...
networks:
# here
radicale_proxy:
name: radicale_proxy