Dans le monde des VPN maillés, Tailscale a popularisé l’idée d’un réseau overlay ultra-simple basé sur WireGuard. Toutefois, son composant central – le serveur de contrôle – reste fermé et hébergé dans le cloud de l’éditeur. Headscale comble cette lacune : c’est une ré-implémentation libre et auto-hébergeable du serveur de contrôle, écrite en Go et compatible avec les clients officiels Tailscale.
2. Origines et gouvernance
Le projet a été lancé début 2021 par Juan Font et est aujourd’hui co-maintenu avec Kristoffer Dalby. Tous deux l’ont conçu pour les auto-hébergeurs et les homelabs, avec un périmètre volontairement réduit : un seul tailnet personnel ou associatif.
En mai 2025, Headscale totalise plus de 28 000 ★ GitHub et plus de 1 500 forks, preuve d’une forte traction communautaire.
3. Architecture en bref
Langage : Go
Protocoles : implémente le même protocole de contrôle que Tailscale (TS2021) ; le trafic de données passe toujours par WireGuard.
DERP intégré : Headscale peut embarquer son propre serveur DERP (relai STUN/TURN) pour traverser les NAT.
Stockage : SQLite recommandé ; PostgreSQL possible mais en maintenance.
API & CLI : toutes les opérations (utilisateurs, nœuds, ACL, routes) sont scriptables.
4. Fonctionnalités clés
La version stable expose pratiquement tout le socle fonctionnel de Tailscale :
Enregistrement interactif ou par clés pré-authentifiées
MagicDNS, split-DNS et enregistrements personnalisés
Taildrop (partage de fichiers P2P)
Dual-stack IPv4/IPv6, publicité de routes & exit nodes
ACLs enrichies (autogroups, API de gestion)
Authentification OIDC (SSO)
Serve/Funnel pour exposer des services internes
DERP embarqué pour le relay NAT traversal
5. Cycle de publication
Le rythme est d’environ une version mineure tous les 3–4 mois, avec des bêtas publiées en avance pour tests.
6. Installation et déploiement
Paquets .deb officiels pour Ubuntu 20.04 + et Debian 11 + (service systemd pré-configuré) :
wget -O headscale.deb \
"https://github.com/juanfont/headscale/releases/download/v${VERSION}/headscale_${VERSION}_linux_amd64.deb"
sudo apt install ./headscale.deb
Binaries statiques pour Linux, macOS, FreeBSD, Windows ; images Docker mises à disposition (communauté).
Guides complets dans la doc (/setup/install) : DEB, container, compilation depuis les sources headscale.net.
7. Cas d’usage populaires
Homelab / accès familial : partager la domotique, un NAS ou des caméras sans ouvrir de ports.
Petites équipes dev : tunnel unifié vers les environnements de staging, avec ACL finement granulaires.
Branche VPN d’entreprise : remplacer OpenVPN/IPsec par un maillage WireGuard géré en interne.
IoT & edge : connecter des capteurs ou mini-PC isolés via DERP intégré.
8. Écosystème et outils complémentaires
Bien que Headscale soit headless, plusieurs UI web apparaissent :
headscale-webui (Vue 3) – front-end statique compatible ≥ 0.25 GitHub
headscale-admin et cockpit-headscale (Cockpit) pour la gestion via navigateur GitHubGitHub
Un opérateur Kubernetes, des SDK Go/Python et des intégrations Ansible complètent l’écosystème.
9. Limites et points de vigilance
Single-tailnet : Headscale ne gère qu’un seul réseau ; pour du multi-tenancy, prévoir plusieurs instances.
Parité incomplète : certaines fonctions récentes de Tailscale (ex. l’interface web ACL-editor) peuvent mettre du temps à être rétro-ingénierées.
Montée en charge : SQLite suffit à quelques centaines de nœuds ; au-delà, passer sur PostgreSQL, ou répliquer plusieurs serveurs derrière un load-balancer.
Headscale apporte la dernière brique manquante à un VPN maillé 100 % open-source : le contrôle de votre tailnet reste chez vous, sans abonnement ni lock-in. Pour les auto-hébergeurs, PME ou équipes dev, c’est une solution mature, active et facile à déployer. Gardez toutefois un œil sur les release notes : les mainteneurs n’hésitent pas à faire évoluer le schéma interne ou les ACLs pour suivre le rythme effréné de Tailscale.