5 ms·
Show HN: Docker setup for Headscale (self-hosted Tailscale control server)
This provides a Docker-based setup for Headscale with minimal manual configuration. The Docker image is built automatically via GitHub Actions.
On first start it:
* Generates config
* Creates a pre-auth key
* Allows a client to connect within a few minutes
For non-Docker setups, there is also a simple install script: hwdsl2/headscale-install
That script is intended for a one-command VPS setup. It installs and configures Headscale with sensible defaults.
This follows the same approach as some of my earlier projects (e.g. docker-ipsec-vpn-server, setup-ipsec-vpn), focusing on making things work out of the box with minimal maintenance.
I’ve also been experimenting with related projects in the same space:
* docker-wireguard
* docker-openvpn
Feedback is welcome, especially from others running Headscale.
- KetoManx64 6mo agoHeadscale already provides a docker container: https://hub.docker.com/r/headscale/headscale https://hub.docker.com/r/headscale/headscale Why would I use this from a total online stranger instead?
- hwdsl2 5mo agoThe official image requires you to write and mount a complete "config.yaml" before the container will even start. This image auto-generates the config from environment variables on first start, prints a pre-auth key to the logs so you can connect a device immediately, and includes an "hs_manage" helper for common admin tasks. It's also Alpine-based (~20–30 MB vs ~85 MB for the official Debian image). It has the same Headscale binary underneath, just with a different out-of-the-box experience consistent with my other Docker images for WireGuard, OpenVPN, and IPsec VPN.