version: '3.8' services: headscale: image: git.nixc.us/colin/headscale:production volumes: - /mnt/tank/persist/nixc.us/headscale/production/config:/etc/headscale/:rw - /mnt/tank/persist/nixc.us/headscale/production/data:/var/lib/headscale/:rw command: ["headscale", "serve"] networks: - traefik environment: SERVER_URL: "https://headscale.nixc.us" LISTEN_ADDR: "0.0.0.0:8080" METRICS_LISTEN_ADDR: "0.0.0.0:9090" GRPC_LISTEN_ADDR: "0.0.0.0:50443" DB_TYPE: "sqlite3" DB_PATH: "/etc/headscale/db.sqlite" deploy: placement: constraints: - node.hostname == macmini3 labels: us.nixc.autodeploy: "true" traefik.enable: "true" traefik.http.routers.production-headscale_headscale.rule: "Host(`headscale.nixc.us`)" traefik.http.routers.production-headscale_headscale.entrypoints: "websecure" traefik.http.routers.production-headscale_headscale.tls: "true" traefik.http.routers.production-headscale_headscale.tls.certresolver: "letsencryptresolver" traefik.http.routers.production-headscale_headscale.service: "production-headscale_headscale" traefik.http.services.production-headscale_headscale.loadbalancer.server.port: "8080" traefik.docker.network: "traefik" replicas: 1 restart_policy: condition: on-failure # volumes: # headscale: networks: traefik: external: true default: driver: overlay