services:
  balancedns:
    build:
      context: .
      dockerfile: Dockerfile
    image: balancedns:local
    container_name: balancedns
    restart: unless-stopped
    user: "0:0"
    cap_add:
      - NET_BIND_SERVICE
    environment:
      BALANCEDNS_BIND_IP: ${BALANCEDNS_BIND_IP:-0.0.0.0}
      BALANCEDNS_METRICS_IP: ${BALANCEDNS_METRICS_IP:-0.0.0.0}
      BALANCEDNS_TLS_CERT: ${BALANCEDNS_TLS_CERT:-/etc/balancedns/certs/fullchain.cer}
      BALANCEDNS_TLS_KEY: ${BALANCEDNS_TLS_KEY:-/etc/balancedns/certs/key.key}
      BALANCEDNS_LOG_LEVEL: ${BALANCEDNS_LOG_LEVEL:-info}
    ports:
      - "${BALANCEDNS_BIND_IP:-0.0.0.0}:53:53/udp"
      - "${BALANCEDNS_BIND_IP:-0.0.0.0}:53:53/tcp"
      - "${BALANCEDNS_BIND_IP:-0.0.0.0}:853:853/tcp"
      - "${BALANCEDNS_BIND_IP:-0.0.0.0}:443:443/tcp"
      - "${BALANCEDNS_METRICS_IP:-0.0.0.0}:9091:9091/tcp"
    volumes:
      - ./configs/prod.lua:/app/configs/prod.lua:ro
      - ./hosts.txt:/app/hosts.txt:ro
      - ${BALANCEDNS_CERTS_DIR:-./certs}:/etc/balancedns/certs:ro
    command: ["-config", "/app/configs/prod.lua"]
