Esta configuración está basada en nuestro post anterior Cómo configurar un servidor headscale en 5 minutos usando docker-compose y nuestra configuración de Traefik con certificados wildcard de Cloudflare (ver Configuración simple de docker-compose para Traefik con Lets Encrypt Cloudflare DNS-01 y TLS-ALPN-01 y retos HTTP-01)
headscale-docker-compose.yml
services:
headscale:
image: headscale/headscale:latest
volumes:
- ./config:/etc/headscale/
- ./data:/var/lib/headscale
ports:
# - 27896:8080
- 9090:9090
- 3478:3478/udp
command: serve
restart: unless-stopped
depends_on:
- postgres
labels:
- "traefik.enable=true"
- "traefik.http.routers.headscale.rule=Host(`headscale.mydomain.com`)"
- "traefik.http.routers.headscale.entrypoints=websecure"
- "traefik.http.routers.headscale.tls.certresolver=cloudflare"
- "traefik.http.routers.headscale.tls.domains[0].main=mydomain.com"
- "traefik.http.routers.headscale.tls.domains[0].sans=*.mydomain.com"
- "traefik.http.services.headscale.loadbalancer.server.port=8080"
postgres:
image: postgres:14
restart: unless-stopped
volumes:
- ./pg_data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}Si este artículo te ha ayudado, considera invitarme a un café o hacer una donación vía PayPal para apoyar la investigación y publicación de nuevos artículos en TechOverflow