summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Applications/Services/radicale/.env.example6
-rw-r--r--Applications/Services/radicale/docker-compose.yml47
2 files changed, 53 insertions, 0 deletions
diff --git a/Applications/Services/radicale/.env.example b/Applications/Services/radicale/.env.example
new file mode 100644
index 0000000..78113d8
--- /dev/null
+++ b/Applications/Services/radicale/.env.example
@@ -0,0 +1,6 @@
+DOMAIN=radicale.example.org
+REMOTE_DOMAIN=storage.example.org
+REMOTE_PATH=/radicale
+REMOTE_USERNAME=root
+REMOTE_PASSWORD=123456
+TRAEFIK_NETWORK=traefik-public
diff --git a/Applications/Services/radicale/docker-compose.yml b/Applications/Services/radicale/docker-compose.yml
new file mode 100644
index 0000000..b00bf4d
--- /dev/null
+++ b/Applications/Services/radicale/docker-compose.yml
@@ -0,0 +1,47 @@
+version: "3"
+
+services:
+ radicale:
+ image: tomsquest/docker-radicale
+ restart: unless-stopped
+ init: true
+ read_only: true
+ security_opt:
+ - no-new-privileges:true
+ cap_drop:
+ - ALL
+ cap_add:
+ - SETUID
+ - SETGID
+ - CHOWN
+ - KILL
+ environment:
+ - TAKE_FILE_OWNERSHIP=false
+ volumes:
+ - ./config:/config:ro
+ - remote:/data/collections
+ networks:
+ - traefik
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.radicale.rule=Host(`${DOMAIN}`)"
+ - "traefik.http.routers.radicale.entrypoints=websecure"
+ - "traefik.http.routers.radicale.tls.certresolver=letsencrypt"
+ healthcheck:
+ test: curl -f http://127.0.0.1:5232 || exit 1
+ interval: 30s
+ retries: 3
+
+volumes:
+ remote:
+ driver: local
+ driver_opts:
+ type: cifs
+ device: "//${REMOTE_DOMAIN}${REMOTE_PATH}"
+ o: "addr=${REMOTE_DOMAIN},username=${REMOTE_USERNAME},password=${REMOTE_PASSWORD},file_mode=0777,dir_mode=0777"
+
+networks:
+ traefik:
+ name: "${TRAEFIK_NETWORK}"
+ external: true
+