feat(headscale): add self-hosted Tailscale control server #5

Merged
ashie merged 2 commits from franz-kafka/nixos-vps:feat/headscale into main 2026-03-19 20:18:58 +00:00

2 commits

Author SHA1 Message Date
9803eebb1d Merge branch 'main' into feat/headscale 2026-03-19 20:18:10 +00:00
1c28db5f8e feat(headscale): add self-hosted Tailscale control server
New module: modules/headscale.nix
- Headscale service listening on localhost with Nginx reverse proxy
- SQLite database (appropriate for personal use)
- Tailscale public DERP relays for NAT traversal fallback
- MagicDNS enabled with Mullvad/Quad9 upstream resolvers
- Optional OIDC authentication (Google, GitHub, etc.)
- Default auth: pre-shared API keys (headscale apikeys create)
- Added to backup paths (SQLite DB)
- headscale CLI tool added to system packages

Configuration:
- Domain: vpn.ashisgreat.xyz
- OIDC disabled by default (documented how to enable in configuration.nix)

To register a device after deploying:
  sudo headscale apikeys create
  tailscale up --login-server=https://vpn.ashisgreat.xyz --authkey=<key>

DNS record needed: vpn.ashisgreat.xyz → VPS IP
2026-03-19 15:39:56 +00:00