À propos du projet
Headscale est une implémentation open source et auto-hébergée du serveur de contrôle de Tailscale. Tailscale est un VPN moderne basé sur WireGuard qui fonctionne comme un réseau de superposition entre ordinateurs, en utilisant la traversée NAT. Bien que la majeure partie de Tailscale soit open source, le serveur de contrôle ne l'est pas ; Headscale comble cette lacune.
Le serveur de contrôle agit comme point d'échange des clés publiques WireGuard entre les nœuds d'un réseau Tailscale. Il attribue les adresses IP des clients, crée des limites entre utilisateurs, permet le partage de machines entre utilisateurs et expose les routes annoncées des nœuds. Un tailnet est le réseau privé que Tailscale attribue à un utilisateur ou à une organisation.
Objectif de conception : Headscale vise à fournir aux auto-hébergeurs et aux amateurs un serveur open source pour leurs projets et leurs laboratoires. Il implémente délibérément un périmètre restreint — un tailnet unique — adapté à un usage personnel ou à une petite organisation open source.
Le projet n'est pas associé à Tailscale Inc., bien qu'un mainteneur actif soit employé par Tailscale et soit autorisé à contribuer pendant ses heures de travail ; ces contributions sont relues par les autres mainteneurs. Les mainteneurs définissent ensemble l'orientation du projet, avec le principe de servir la communauté des auto-hébergeurs, des passionnés et des amateurs tout en gardant le projet durable.
La documentation est publiée pour les versions stables et de développement, et il est conseillé aux utilisateurs de sélectionner le tag GitHub correspondant à leur version publiée, car la branche principale peut contenir des modifications non publiées. Les versions de développement issues de main sont disponibles sous forme d'images conteneur et de binaires. Le projet indique qu'il ne prend pas en charge ni n'encourage l'utilisation de proxys inverses et de conteneurs pour exécuter Headscale. Un module NixOS est disponible dans le répertoire nix/.
Contribuer requiert les dernières versions de Go et Buf (générateur Protobuf). Nix est recommandé pour configurer un environnement de développement via nix develop, qui installe les outils et fournit un shell correspondant à l'environnement des mainteneurs. Les règles de style de code incluent golangci-lint, golines et gofumpt pour Go ; buf et clang-format pour Protobuf ; mdformat pour la documentation ; et prettier pour les autres fichiers. Les tests s'exécutent avec make test et les compilations avec make build ; les modifications Protobuf nécessitent make generate. Le projet publie également une politique relative à l'IA et un guide de contribution, et maintient une communauté Discord.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.