Add headscale-with-admin-UI/compose.yml
This commit is contained in:
@@ -0,0 +1,52 @@
|
|||||||
|
services:
|
||||||
|
headscale:
|
||||||
|
image: headscale/headscale:latest
|
||||||
|
container_name: headscale
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- TZ=Asia/Riyadh # CHANGE ME
|
||||||
|
volumes:
|
||||||
|
- ./conf:/etc/headscale
|
||||||
|
- headscale-data:/var/lib/headscale
|
||||||
|
entrypoint: headscale serve
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
traefik.enable: "true"
|
||||||
|
traefik.docker.network: proxy
|
||||||
|
# Configure service and router
|
||||||
|
traefik.http.services.headscale.loadbalancer.server.port: 8080
|
||||||
|
traefik.http.services.headscale.loadbalancer.server.scheme: http
|
||||||
|
traefik.http.routers.headscale.rule: Host(`tailscale.YOURDOMAIN.com`) # CHANGE ME
|
||||||
|
traefik.http.routers.headscale.entrypoints: https
|
||||||
|
traefik.http.routers.headscale.tls.certresolver: cloudflare
|
||||||
|
traefik.http.routers.headscale.service: headscale
|
||||||
|
# Configure CORS middleware if needed
|
||||||
|
traefik.http.middlewares.headscale-cors.headers.accesscontrolallowmethods: GET,POST,PUT,PATCH,DELETE,OPTIONS
|
||||||
|
traefik.http.middlewares.headscale-cors.headers.accesscontrolallowheaders: "*"
|
||||||
|
traefik.http.middlewares.headscale-cors.headers.accesscontrolalloworiginlist: https://tailscale.YOURDOMAIN.com # CHANGE ME AND Add other origins if needed
|
||||||
|
traefik.http.middlewares.headscale-cors.headers.accesscontrolmaxage: 100
|
||||||
|
traefik.http.middlewares.headscale-cors.headers.addvaryheader: true
|
||||||
|
traefik.http.routers.headscale.middlewares: headscale-cors
|
||||||
|
# UDP ports for DERP, etc
|
||||||
|
traefik.udp.services.headscale-udp-41641.loadbalancer.server.port: 41641
|
||||||
|
traefik.udp.services.headscale-udp-3478.loadbalancer.server.port: 3478
|
||||||
|
headscale-admin:
|
||||||
|
image: goodieshq/headscale-admin:latest
|
||||||
|
container_name: headscale-admin
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- proxy
|
||||||
|
labels:
|
||||||
|
traefik.enable: "true"
|
||||||
|
traefik.docker.network: proxy
|
||||||
|
traefik.http.services.headscale-admin.loadbalancer.server.port: 80
|
||||||
|
traefik.http.services.headscale-admin.loadbalancer.server.scheme: http
|
||||||
|
traefik.http.routers.headscale-admin.rule: Host(`tailscale.YOURDOMAIN.com`) && PathPrefix(`/admin`) # CHANGE ME
|
||||||
|
traefik.http.routers.headscale-admin.entrypoints: https
|
||||||
|
traefik.http.routers.headscale-admin.tls.certresolver: cloudflare
|
||||||
|
networks:
|
||||||
|
proxy:
|
||||||
|
external: true
|
||||||
|
volumes:
|
||||||
|
headscale-data: null
|
||||||
Reference in New Issue
Block a user