JG-mirror/Headscale/with-Traefik/docker-compose.yaml
James Turland 6e00e0aa3f cleaning
2023-09-20 22:34:29 +01:00

47 lines
1.5 KiB
YAML

version: '3.9'
services:
headscale:
image: headscale/headscale:latest
pull_policy: always
container_name: headscale
restart: unless-stopped
command: headscale serve
volumes:
- /home/ubuntu/docker/headscale/config:/etc/headscale
- /home/ubuntu/docker/headscale/data:/var/lib/headscale
labels:
- traefik.enable=true
- traefik.http.routers.headscale-rtr.rule=PathPrefix(`/`) # you might want to add: && Host(`your.domain.name`)"
- traefik.http.services.headscale-svc.loadbalancer.server.port=8080
headscale-ui:
image: ghcr.io/gurucomputing/headscale-ui:latest
pull_policy: always
container_name: headscale-ui
restart: unless-stopped
labels:
- traefik.enable=true
- traefik.http.routers.headscale-ui-rtr.rule=PathPrefix(`/web`) # you might want to add: && Host(`your.domain.name`)"
- traefik.http.services.headscale-ui-svc.loadbalancer.server.port=80
# If you are following my guides you will already have the below configured
#
# traefik:
# image: traefik:latest
# pull_policy: always
# restart: unless-stopped
# container_name: traefik
# command:
# - --api.insecure=true # remove in production
# - --providers.docker
# - --entrypoints.web.address=:80
# - --entrypoints.websecure.address=:443
# - --global.sendAnonymousUsage=false
# ports:
# - 80:80
# - 443:443
# - 8080:8080 # web UI (enabled with api.insecure)
# volumes:
# - /var/run/docker.sock:/var/run/docker.sock:ro
# - ./traefik/certificates:/certificates