From 3852509643345e1f6901f31b25026d90fec71c5a Mon Sep 17 00:00:00 2001 From: edipretoro Date: Mon, 10 Nov 2025 18:31:10 +0100 Subject: [PATCH] Adding a first iteration --- .gitignore | 1 + Caddyfile | 10 ++++++++++ config.yml | 7 +++++++ docker-compose.yml | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 52 insertions(+) create mode 100644 .gitignore create mode 100644 Caddyfile create mode 100644 config.yml create mode 100644 docker-compose.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..127a302 --- /dev/null +++ b/Caddyfile @@ -0,0 +1,10 @@ +:80 { + # Rewrites destination to remove host and include only the path e.g. /test.txt + @hasDest header_regexp dest Destination ^https?://[^/]+(.*)$ + request_header @hasDest Destination {re.dest.1} + + reverse_proxy booxdav:6065 { + header_up X-Real-IP {remote_host} + header_up REMOTE-HOST {remote_host} + } +} \ No newline at end of file diff --git a/config.yml b/config.yml new file mode 100644 index 0000000..fc663fd --- /dev/null +++ b/config.yml @@ -0,0 +1,7 @@ +directory: /data +permissions: none +users: + - username: "{env}BOOXDAV_USERNAME" + password: "{env}BOOXDAV_PASSWORD" + permissions: CRUD + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9ebfe7d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,34 @@ +networks: + traefik: + external: true + booxdav: +services: + booxdav: + image: ghcr.io/hacdias/webdav + container_name: booxdav + volumes: + - ./etc/config.yml:/config.yml:ro + - ./var/data:/data + env_file: + - .env + command: ["-c", "/config.yml"] + restart: unless-stopped + networks: + - booxdav + caddy-dav: + image: caddy:2-alpine + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + depends_on: + - booxdav + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.http.routers.booxdav.tls.certresolver=ovhtls" + - "traefik.http.routers.booxdav.service=caddy-dav" + - "traefik.http.services.booxdav.loadbalancer.server.port=80" + - "traefik.http.services.booxdav.loadbalancer.passhostheader=true" + - "traefik.http.routers.booxdav.rule=Host(`booxdav.edipretoro.be`)" + networks: + - traefik + - booxdav \ No newline at end of file