version: "3.9" services: zerotier: image: dec0dos/zerotier-controller:latest container_name: zu-controller build: context: . dockerfile: ./docker/zerotier/Dockerfile restart: unless-stopped volumes: - controller_data:/var/lib/zerotier-one expose: - "9993/tcp" ports: - "9993:9993/udp" zero-ui: image: dec0dos/zero-ui:latest container_name: zu-main build: context: . dockerfile: ./docker/zero-ui/Dockerfile restart: unless-stopped depends_on: - zerotier volumes: - controller_data:/var/lib/zerotier-one - zero-ui_data:/app/backend/data environment: - ZU_CONTROLLER_ENDPOINT=http://zerotier:9993/ - ZU_SECURE_HEADERS=true - ZU_DEFAULT_USERNAME=admin - ZU_DEFAULT_PASSWORD=zero-ui expose: - "4000" https-proxy: image: caddy:latest container_name: zu-https-proxy restart: unless-stopped depends_on: - zero-ui command: caddy reverse-proxy --from example.com --to zero-ui:4000 volumes: - caddy_data:/data ports: - "80:80" - "443:443" volumes: zero-ui_data: controller_data: caddy_data: