version: "3"

services:
  zerotier:
    image: zyclonite/zerotier:1.10.6
    container_name: zu-controller
    restart: unless-stopped
    volumes:
      - ./zerotier-one:/var/lib/zerotier-one
    environment:
      - ZT_OVERRIDE_LOCAL_CONF=true
      - ZT_ALLOW_MANAGEMENT_FROM=0.0.0.0/0
    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:
      - ./zerotier-one:/var/lib/zerotier-one
      - ./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 YOURDOMAIN.com --to zero-ui:4000
    volumes:
      - ./caddy:/data/caddy
    ports:
      - "80:80"
      - "443:443"
