Retour aux mises à jour
New releaseJul 29, 2026

headscale v0.29.3

Une implémentation open source et auto-hébergée du serveur de contrôle de Tailscale.

Partager

logo headscale

ci

Une implémentation open source et auto-hébergée du serveur de contrôle Tailscale.

Rejoignez notre serveur Discord pour discuter.

Remarque : Sélectionnez toujours le même tag GitHub que la version publiée que vous utilisez afin de vous assurer de disposer de la bonne configuration d'exemple. La branche main peut contenir des modifications non publiées. La documentation est disponible pour les versions stable et de développement :

Qu'est-ce que Tailscale

Tailscale est un VPN moderne construit au-dessus de Wireguard. Il fonctionne comme un réseau superposé entre les ordinateurs de vos réseaux - en utilisant la traversée NAT.

Tout dans Tailscale est Open Source, à l'exception des clients GUI pour les OS propriétaires (Windows et macOS/iOS), et du serveur de contrôle.

Le serveur de contrôle agit comme un point d'échange de clés publiques Wireguard pour les nœuds du réseau Tailscale. Il attribue les adresses IP des clients, crée les frontières entre chaque utilisateur, permet le partage de machines entre utilisateurs, et expose les routes annoncées de vos nœuds.

Un réseau Tailscale (tailnet) est un réseau privé que Tailscale attribue à un utilisateur en termes d'utilisateurs privés ou d'une organisation.

Objectif de conception

Headscale vise à implémenter une alternative auto-hébergée et open source au serveur de contrôle Tailscale. L'objectif de Headscale est de fournir aux auto-hébergeurs et aux amateurs un serveur open source qu'ils peuvent utiliser pour leurs projets et leurs labs. Il implémente un périmètre restreint, un unique réseau Tailscale (tailnet), adapté à un usage personnel, ou à une petite organisation open source.

Soutenir Headscale

Si vous aimez headscale et le trouvez utile, des boutons de parrainage et de don sont disponibles dans le dépôt.

Fonctionnalités

Veuillez consulter "Features" dans la documentation.

Prise en charge des OS clients

Veuillez consulter "Client and operating system support" dans la documentation.

Exécuter headscale

Veuillez noter que nous ne prenons pas en charge et n'encourageons pas l'utilisation de reverse proxies et de conteneurs pour exécuter Headscale.

Veuillez jeter un œil à la documentation.

Pour les utilisateurs de NixOS, un module est disponible dans nix/.

Builds depuis main

Des builds de développement depuis la branche main sont disponibles sous forme d'images de conteneurs et de binaires. Consultez la documentation des builds de développement pour plus de détails.

Conférences

Avertissement

Ce projet n'est pas associé à Tailscale Inc.

Cependant, l'un des mainteneurs actifs de Headscale est employé par Tailscale et il est autorisé à consacrer des heures de travail à contribuer au projet. Les contributions de ce mainteneur sont examinées par d'autres mainteneurs.

Les mainteneurs travaillent ensemble pour définir l'orientation du projet. Le principe sous-jacent est de servir la communauté des auto-hébergeurs, des passionnés et des amateurs - tout en ayant un projet durable.

Contribuer

Veuillez lire le fichier CONTRIBUTING.md.

Jetez également un œil à notre AI_POLICY.md.

Prérequis

Pour contribuer à headscale, vous auriez besoin de la dernière version de Go et de Buf (générateur Protobuf).

Nous recommandons d'utiliser Nix pour configurer un environnement de développement. Cela peut être fait avec nix develop, qui installera les outils et vous donnera un shell. Cela garantit que vous aurez le même environnement de développement que les mainteneurs de headscale.

Style de code

Pour garantir une certaine cohérence avec un nombre croissant de contributions, ce projet a adopté des règles de linting et de style/formatage :

Le code Go est linté avec golangci-lint et formaté avec les formateurs de golangci-lint (gofumpt, gci, goimports). Veuillez configurer votre éditeur pour exécuter les outils pendant le développement et assurez-vous de lancer make lint et make fmt avant de committer du code.

Le code Proto est linté avec buf et formaté avec clang-format.

La documentation est formatée avec mdformat.

Le reste (Markdown, YAML, etc.) est formaté avec prettier.

Consultez les fichiers .golangci.yaml et Makefile pour voir la configuration spécifique.

Installer les outils de développement

  • Go
  • Buf
  • Outils Protobuf

Installer et activer :

nix develop

Tests et compilation

Certaines parties du projet nécessitent la génération de code Go à partir de Protobuf (si des modifications sont apportées dans proto/) et celui-ci doit être (re-)généré avec :

make generate

Remarque : Veuillez valider les modifications de gen/ dans un commit séparé pour faciliter la révision.

Pour exécuter les tests :

make test

Pour compiler le programme :

make build

Flux de développement

Nous recommandons d'utiliser Nix pour la gestion des dépendances afin de garantir que vous disposez de tous les outils requis. Si vous préférez gérer les dépendances vous-même, vous pouvez utiliser Make directement :

Avec Nix (recommandé) :

nix develop
make test
make build

Avec vos propres dépendances :

make test
make build

Le Makefile vous avertira si des outils requis sont manquants et vous suggérera d'exécuter nix develop. Exécutez make help pour voir toutes les cibles disponibles.

Contributeurs

Réalisé avec contrib.rocks.

Catégories