services: haproxy: image: haproxy:3.4.6-alpine3.24@sha256:7af8255207ee9964ccb4eec8ce4b7a40b777769665e3ae83897fb01b24d8a43a 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.6@sha256:3422ce6de165df66534f9b9ba50efaf457114ec961763cc52f5dbdaac2972d73 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@sha256:ee4ac79e52966a5f6247f99c7d667c1debfb277a3a61ab829f505aa8f4c74b21 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:latest@sha256:adffa1f20dc4a500f1f54c8b02e3c85c767474a3d62f3106782fccdb52443c1b restart: always environment: USERNAME: dav PASSWORD: ${WEBDAV_PASSWORD} volumes: - /opt/stacks/web/dav:/media networks: hk-web: external: true name: hk-web