This is a small docker image for Radicale and easy deployment. Bcrypt authentication inclusive.
# .env
USER=foo
PASSWORD=secret
# docker-compose.yml
version: '3.8'
services:
app:
image: cupcakearmy/radicale:1
restart: unless-stopped
env_file: .env
volumes:
- ./data:/data
ports:
- 80:5232
The env file is not strictly required, but will generate a user with its bcrypt password if missing.
Without SSL/TLS the native client seems to have problems, once SSL is enabled it works like a charm.
The same setup works for Calendar and on iOS.
An example for traefik (v1) can found below.
version: '3.8'
networks:
proxy:
external: true
services:
app:
image: cupcakearmy/radicale:1
restart: unless-stopped
env_file: .env
volumes:
- ./data:/data
networks:
- proxy
labels:
- traefik.enable=true
- traefik.http.routers.radicale.rule=Host(`radicale.example.org`)
- traefik.http.routers.radicale.entrypoints=secure
- traefik.http.routers.radicale.tls.certresolver=le
You can overwrite the config by simply mounting it into /etc/radicale/config
.
The default script only creates a default user with the given USER
and PASSWORD
credentials. For multiple users you need to create the files manually. In the default config this is set to /data/users
.
You can add users with htpasswd -bB -c /data/users user pass
. And then mount that file to /data/users
or whatever you have set in the Radicale config file filesystem_folder
, more here.