services: haproxy: image: haproxy:3.4.4-alpine3.24 container_name: haproxy restart: unless-stopped ports: - "443:8443/tcp" extra_hosts: - "host.docker.internal:host-gateway" depends_on: - caddy volumes: - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro logging: driver: json-file options: max-size: 200k max-file: "2" caddy: image: caddy:2.11.4 container_name: caddy restart: unless-stopped ports: - "80:80" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - /opt/stacks/web/caddy/site:/srv - /opt/stacks/web/caddy/data:/data - /opt/stacks/web/caddy/config:/config networks: - default - hk-web filebrowser: image: filebrowser/filebrowser:s6 container_name: filebrowser restart: unless-stopped environment: PUID: 65534 PGID: 65534 volumes: - /opt/stacks/web/filebrowser/database:/database - /opt/stacks/web/filebrowser/config:/config - /opt/stacks/web/filebrowser/storage:/srv/web webdav: image: jinlife/docker-cwebdav restart: always environment: USERNAME: dav PASSWORD: ${WEBDAV_PASSWORD} volumes: - /opt/stacks/web/dav:/media networks: hk-web: external: true name: hk-web