48 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			48 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
 |