Files
homelab/headscale
forust d85bdf5dbd
ci / Compose (pull_request) Successful in 27s
ci / Workflows (pull_request) Successful in 14s
ci / Shell (pull_request) Successful in 34s
ci / Python and tests (pull_request) Successful in 19s
ci / YAML (pull_request) Successful in 17s
ci / Dockerfiles (pull_request) Successful in 6s
ci / Formatting (pull_request) Successful in 36s
ci / Kubernetes (pull_request) Successful in 14s
ci / image-plan (pull_request) Skipped
ci / Image (${{ matrix.name }}) (pull_request) Skipped
ci / build (pull_request) Skipped
renovate-ci / validate-renovate (pull_request_target) Successful in 3m13s
docs: sync service guides with current main
2026-10-08 21:23:46 +02:00
..

Headscale

Headscale, Headplane, and a separate web administration UI on Docker.

Kubernetes only provides routes to the Docker host. Update the addresses in k8s/routing/external-service.yaml if the host moves.

Copy config/headscale.yaml.example, config/headplane.yaml.example, and config/policy.json.example to their names without .example. Set the public server URL, DNS settings, Headplane cookie secret, and Headscale public URL. The example URLs are placeholders.

Compose publishes Headscale on 18080, its metrics port on 19090, Headplane on 13000, and the other UI on 10080. The data volumes store the Headscale database, keys, and Headplane state. The embedded DERP configuration needs reachable addresses; Compose does not publish its UDP 3478 listener.

See the repository README for deployment selection.