[{"data":1,"prerenderedAt":239},["ShallowReactive",2],{"seo-verification":3,"blog-tailscale-headscale-migration-2026-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-tailscale-headscale-migration-2026-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":36,"sections":37,"ctaTitle":177,"ctaBody":178,"ctaButton":179,"ctaUrl":180,"relatedPosts":181},428,"tailscale-headscale-migration-2026",{"fr":10,"en":12,"ar":13,"es":14},"migrating-from-tailscale-to-headscale-2026","الهجرة-من-tailscale-إلى-headscale-2026","migracion-tailscale-headscale-2026","Migrer de Tailscale vers Headscale : le seuil de rentabilité","Tailscale Standard à $8\u002Fsiège\u002Fmois en 2026 : découvrez quand Headscale sur VPS coûte moins cher et comment migrer en 3 étapes sans réinstaller vos clients.",11,0,false,"2026-10-10T00:00:00+00:00","2026-10-10T21:55:40+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Ftailscale-headscale-migration-2026-poster.svg",{"categorySlug":34,"appSlug":35},"reseau","headscale","Le 8 avril 2026, Tailscale a annoncé sa grille tarifaire v4 : le plan Standard, anciennement Starter, passe à $8 par siège et par mois. Pour une équipe de cinq personnes, cela représente $40 par mois, soit $480 par an — pour un service dont la valeur centrale, le plan de contrôle WireGuard mesh, peut être auto-hébergé sur un VPS à quelques euros par mois.\n\nHeadscale est l'implémentation open source du serveur de coordination Tailscale. Licenciée BSD-3-Clause, elle parle le même protocole que le contrôleur officiel. Vos clients Tailscale existants — Linux, macOS, Windows, iOS, Android — continuent de fonctionner sans réinstallation : vous changez uniquement l'URL de connexion. Le trafic réseau lui-même, chiffré WireGuard de bout en bout, n'a jamais transité par Tailscale ; seul le plan de contrôle change de mains.\n\nCet article vous donne les chiffres exacts du seuil de rentabilité, les prérequis techniques, et les trois étapes pour migrer une équipe existante depuis Tailscale vers votre propre control plane.",[38,42,52,55,95,98,106,109,133,136,150,153,160,164,167,174],{"type":39,"title":40,"body":41},"h2","Pourquoi reconsidérer son réseau mesh en 2026","Tailscale ne transporte pas votre trafic : les paquets WireGuard voyagent directement entre vos machines, chiffrés de bout en bout. Ce que Tailscale gère côté cloud, c'est le plan de contrôle — l'échange de clés publiques, la découverte des pairs, l'attribution des adresses `100.x.x.x`, la résolution MagicDNS et la distribution des relais DERP. Ce plan de contrôle, vous pouvez l'héberger vous-même avec Headscale depuis des années. En 2026, la hausse tarifaire rend cette option financièrement évidente pour toute équipe d'au moins deux personnes sur un plan payant.",{"type":43,"items":44},"ul",[45,46,47,48,49,50,51],"Contrôle total des données : aucune liste de vos machines, adresses IP internes, noms de nœuds ou journaux de connexion ne transite par un serveur tiers.","Pas de limite de nœuds ni d'utilisateurs imposée par le logiciel : Headscale est borné uniquement par les ressources de votre VPS.","Compatibilité totale avec les clients Tailscale officiels : le drapeau `--login-server` suffit à pointer vers votre control plane.","MagicDNS sur votre propre domaine : chaque nœud est joignable par son nom court sur le suffixe que vous choisissez.","OIDC optionnel : délégation d'authentification à Keycloak, Authelia ou tout fournisseur OIDC compatible.","Pérennité opérationnelle : votre réseau mesh ne dépend plus d'une décision tarifaire ou d'une indisponibilité externe.","Maintenance raisonnable : une mise à jour de paquet toutes les quelques semaines, une sauvegarde SQLite planifiable en une ligne de cron.",{"type":39,"title":53,"body":54},"Analyse financière : le seuil de rentabilité","Tailscale Personal reste gratuit pour six utilisateurs maximum sur un usage non commercial. Dès que vous passez sur le plan Standard — une équipe professionnelle, un accès multi-utilisateurs ou des fonctionnalités comme les ACLs étendues — le coût est $8 par siège par mois. Un VPS 1 vCPU \u002F 1 Go RAM suffit à faire tourner Headscale pour des dizaines de nœuds ; il tourne en moins de 64 Mo de RAM au repos. Le coût de ce VPS chez ServOrbit commence à partir de quelques euros par mois.",{"type":56,"title":57,"headers":58,"rows":62},"comparison","Tailscale Standard vs Headscale sur VPS",[59,60,61],"Critère","Tailscale Standard","Headscale sur VPS",[63,67,70,73,77,80,84,88,92],[64,65,66],"Coût mensuel (1 siège)","$8","coût du VPS (~99 DH\u002Fmois)",[68,69,66],"Coût mensuel (5 sièges)","$40",[71,72,66],"Coût mensuel (10 sièges)","$80",[74,75,76],"Funnel \u002F Serve","Inclus","Non disponible",[78,79,76],"SSH Recording","Plan Premium uniquement",[81,82,83],"Maintenance","Nulle (service managé)","~2h\u002Fmois (mises à jour, sauvegardes)",[85,86,87],"Contrôle des données","Cloud Tailscale","Votre serveur",[89,90,91],"Limite de nœuds","100 (Standard)","Aucune limite logicielle",[93,94,91],"Limite d'utilisateurs","Sans limite fixe sur Standard",{"type":39,"title":96,"body":97},"Prérequis techniques chiffrés","Headscale est léger : un VPS d'entrée de gamme suffit pour une dizaine de nœuds. Voici les ressources minimales et les ports à ouvrir.",{"type":43,"items":99},[100,101,102,103,104,105],"VPS sous Debian 11\u002F12 ou Ubuntu 22.04\u002F24.04 — 1 vCPU, 512 Mo RAM minimum (Headscale tourne en moins de 64 Mo idle ; 1 Go recommandé pour laisser de la marge au système).","Port TCP 443 ouvert côté entrant : les clients s'y connectent pour l'enregistrement et la récupération de configuration via HTTPS.","Port UDP 3478 ouvert : utilisé pour la négociation STUN (détection des adresses candidates pour les connexions directes).","Port UDP 41641 ouvert : port de signalisation WireGuard que les clients Tailscale utilisent pour contacter le coordinateur.","Un nom de domaine ou sous-domaine pointant vers le VPS : requis pour un certificat TLS valide. Let's Encrypt fonctionne via certbot ou via le module nginx intégré.","SQLite intégré : Headscale n'a besoin d'aucune base de données externe — une seule base SQLite dans `\u002Fvar\u002Flib\u002Fheadscale\u002F` suffit pour des centaines de nœuds.",{"type":39,"title":107,"body":108},"Installer Headscale sur un VPS ServOrbit","Les étapes suivantes partent d'un VPS Debian 12 vierge. L'installation prend moins de dix minutes.",{"type":110,"steps":111},"steps",[112,115,118,121,124,127,130],{"title":113,"body":114},"Mettre à jour le système et installer les dépendances","Connectez-vous en SSH à votre VPS et mettez à jour les paquets :\n\n`apt update && apt upgrade -y`\n\nInstallez nginx et certbot pour le reverse proxy HTTPS :\n\n`apt install -y nginx certbot python3-certbot-nginx`",{"title":116,"body":117},"Télécharger et installer le paquet Headscale","Headscale v0.29.4 (septembre 2026) distribue des paquets `.deb` pour amd64 et arm64. Téléchargez et installez le paquet :\n\n`curl -Lo \u002Ftmp\u002Fheadscale.deb https:\u002F\u002Fgithub.com\u002Fjuanfont\u002Fheadscale\u002Freleases\u002Fdownload\u002Fv0.29.4\u002Fheadscale_0.29.4_linux_amd64.deb`\n\n`dpkg -i \u002Ftmp\u002Fheadscale.deb`\n\nVérifiez l'installation : `headscale version` doit retourner `0.29.4`. Sur ARM64, remplacez `linux_amd64` par `linux_arm64`.",{"title":119,"body":120},"Configurer Headscale","Le paquet crée l'utilisateur système `headscale` et le dossier `\u002Fetc\u002Fheadscale\u002F`. Éditez la configuration minimale :\n\n`nano \u002Fetc\u002Fheadscale\u002Fconfig.yaml`\n\nDéfinissez au minimum : `server_url: https:\u002F\u002Fheadscale.votre-domaine.com`, `listen_addr: 0.0.0.0:8080`, `db_type: sqlite3`, `db_path: \u002Fvar\u002Flib\u002Fheadscale\u002Fdb.sqlite`, et dans `dns_config` : `magic_dns: true`, `base_domain: votre-domaine.com`. Créez le dossier de données : `mkdir -p \u002Fvar\u002Flib\u002Fheadscale && chown headscale:headscale \u002Fvar\u002Flib\u002Fheadscale`.",{"title":122,"body":123},"Activer et démarrer le service","Le paquet installe l'unité systemd automatiquement :\n\n`systemctl enable --now headscale`\n\nVérifiez l'état : `systemctl status headscale`. La sortie doit afficher `Active: active (running)`. En cas d'erreur, consultez les journaux : `journalctl -u headscale -f`. L'erreur la plus fréquente au premier démarrage est un `server_url` mal formé — il doit commencer par `https:\u002F\u002F`.",{"title":125,"body":126},"Mettre en place le reverse proxy HTTPS","Obtenez un certificat Let's Encrypt et configurez nginx :\n\n`certbot --nginx -d headscale.votre-domaine.com`\n\nDans le vhost nginx généré, ajoutez dans le bloc `location \u002F` :\n\n`proxy_pass http:\u002F\u002F127.0.0.1:8080;`\n`proxy_http_version 1.1;`\n`proxy_set_header Upgrade $http_upgrade;`\n`proxy_set_header Connection \"upgrade\";`\n`proxy_set_header Host $host;`\n\nRechargez nginx : `systemctl reload nginx`. Vérifiez que `https:\u002F\u002Fheadscale.votre-domaine.com\u002Fhealth` retourne `{\"status\":\"pass\"}`.",{"title":128,"body":129},"Créer un premier utilisateur et une pré-clé d'authentification","Headscale organise les nœuds par utilisateurs. Créez votre premier utilisateur :\n\n`headscale users create mon-equipe`\n\nGénérez une pré-clé d'authentification (preauthkey) pour enregistrer vos machines sans validation manuelle :\n\n`headscale preauthkeys create --user mon-equipe --expiration 24h`\n\nCopiez la clé retournée — vous en aurez besoin à l'étape de migration des clients. L'option `--reusable` permet de réutiliser la même clé pour plusieurs machines.",{"title":131,"body":132},"Ouvrir les ports nécessaires dans le pare-feu","Si votre VPS utilise `ufw`, ouvrez les ports requis :\n\n`ufw allow 443\u002Ftcp`\n`ufw allow 3478\u002Fudp`\n`ufw allow 41641\u002Fudp`\n\nSi vous utilisez `iptables` directement ou un panel de sécurité (CSF, Imunify360), ajoutez ces ports dans la liste des ports entrants autorisés. Vérifiez depuis une machine externe que les ports UDP sont bien joignables avant de migrer vos clients.",{"type":39,"title":134,"body":135},"Migrer ses clients depuis Tailscale en 3 étapes","La migration ne nécessite aucune réinstallation des clients Tailscale. Le client officiel supporte le drapeau `--login-server` depuis plusieurs versions ; il suffit de déconnecter le client de l'ancien réseau et de le reconnecter vers votre serveur Headscale. Le trafic réseau WireGuard entre les nœuds n'est pas interrompu pendant la migration — seule la fenêtre de déconnexion\u002Freconnexion (quelques secondes par nœud) crée une brève interruption.",{"type":110,"steps":137},[138,141,144,147],{"title":139,"body":140},"Déconnecter le client du réseau Tailscale existant","Sur chaque machine à migrer, commencez par déconnecter le client du réseau Tailscale :\n\n`tailscale logout`\n\nSur macOS et Windows, utilisez le menu de la barre d'état system : clic droit sur l'icône Tailscale → Log out. Sur iOS et Android, allez dans les paramètres de l'application → Log out. Cette étape révoque l'authentification sur l'ancien réseau mais ne désinstalle pas le client.",{"title":142,"body":143},"Reconnecter le client vers votre serveur Headscale","Reconnectez le client en pointant vers votre nouveau serveur Headscale. Sur Linux :\n\n`tailscale up --login-server https:\u002F\u002Fheadscale.votre-domaine.com --authkey VOTRE_PREAUTHKEY`\n\nSur macOS, depuis le terminal :\n\n`tailscale up --login-server https:\u002F\u002Fheadscale.votre-domaine.com --authkey VOTRE_PREAUTHKEY`\n\nSi vous ne passez pas de preauthkey, le client affiche une URL d'authentification à valider côté serveur avec : `headscale nodes register --user mon-equipe --key \u003CNODE_KEY>`. Vérifiez l'enregistrement : `headscale nodes list` doit afficher le nœud avec le statut `online`.",{"title":145,"body":146},"Vérifier la connectivité entre les nœuds migrés","Depuis un nœud migré, vérifiez que les autres nœuds sont visibles :\n\n`tailscale status`\n\nLa liste doit afficher tous les nœuds enregistrés sur votre serveur Headscale avec leur IP mesh (`100.64.x.x`). Testez la connectivité directe avec un ping : `ping 100.64.0.2`. Un statut `active (direct)` confirme que la connexion WireGuard est établie sans relais. Si vous avez activé MagicDNS, testez la résolution : `ping nom-du-noeud.votre-domaine.com`.",{"title":148,"body":149},"Migrer les nœuds restants et fermer le compte Tailscale","Répétez les deux étapes précédentes pour chaque machine. Migrez d'abord les machines de développement ou de test pour valider le process, puis les machines de production. Une fois tous les nœuds migrés et vérifiés, vous pouvez fermer votre compte Tailscale ou rétrograder sur le plan Personal si vous avez encore des usages personnels (six utilisateurs max, gratuit). Conservez la preauthkey utilisée ou générez-en une nouvelle pour les prochains nœuds à enregistrer.",{"type":39,"title":151,"body":152},"Configuration des ACLs et des DNS internes","Headscale gère les politiques d'accès via un fichier de politique au format HuJSON (JSON étendu avec commentaires), compatible avec la syntaxe Tailscale ACL. Ce fichier définit quels utilisateurs ou groupes peuvent accéder à quels nœuds sur quels ports. Par défaut, tous les nœuds d'un même réseau Headscale peuvent se joindre sur tous les ports — ce comportement permissif convient à une petite équipe de confiance, mais doit être restreint dès que des nœuds de statuts différents (développeurs, clients, serveurs de production) coexistent sur le même réseau.",{"type":43,"items":154},[155,156,157,158,159],"Éditez le fichier de politique : `headscale policy set --policy-file \u002Fetc\u002Fheadscale\u002Fpolicy.hujson`","Définissez des groupes d'utilisateurs (`groups`) et des ACLs par port pour segmenter les accès entre les environnements dev, staging et prod.","Activez les DNS split pour résoudre les noms internes : dans `dns_config`, définissez `nameservers` avec vos serveurs DNS internes et `search_domains` pour les suffixes de recherche.","Exportez et versionez votre fichier de politique dans un dépôt Git privé — cela facilite les audits et les retours arrière.","Testez les changements de politique sur un nœud de test avant de les appliquer à l'ensemble du réseau : `headscale policy check`.",{"type":161,"title":162,"body":163},"tip","Durrcissement, sauvegardes et mises à jour automatiques","Quelques précautions pour une installation robuste. Sauvegardez la base SQLite régulièrement : `cp \u002Fvar\u002Flib\u002Fheadscale\u002Fdb.sqlite \u002Fbackup\u002Fheadscale-$(date +%Y%m%d).sqlite` — un cron quotidien ou un script vers un stockage objet S3 suffit. Sauvegardez également les clés privées dans `\u002Fvar\u002Flib\u002Fheadscale\u002Fprivate.key` et `\u002Fvar\u002Flib\u002Fheadscale\u002Fnoise_private.key` : elles signent l'identité de votre serveur et ne peuvent pas être régénérées sans forcer la reconnexion de tous les nœuds. Pour les mises à jour automatiques, configurez `unattended-upgrades` sur Debian\u002FUbuntu : les paquets de sécurité système sont appliqués automatiquement, et vous pouvez inclure le dépôt Headscale dans la liste des sources traitées automatiquement. Restreignez l'accès à l'API d'administration Headscale (port 50443 gRPC) à `127.0.0.1` uniquement — ne l'exposez jamais à Internet directement.",{"type":39,"title":165,"body":166},"Dépannage des problèmes fréquents","Les erreurs les plus courantes après la migration et leurs solutions.",{"type":43,"items":168},[169,170,171,172,173],"Nœud affiche `offline` dans `headscale nodes list` : vérifiez que les ports UDP 3478 et 41641 sont bien ouverts côté VPS. Testez depuis une machine externe avec `nc -vzu headscale.votre-domaine.com 41641`.","Connexion en `relay` au lieu de `direct` : les connexions indirectes via DERP passent quand les deux nœuds ne peuvent pas s'atteindre directement (NAT strict, pare-feu). Vérifiez `tailscale netcheck` sur les deux nœuds pour identifier les contraintes réseau.","MagicDNS ne résout pas les noms : vérifiez que `magic_dns: true` et `base_domain` sont bien définis dans la configuration Headscale, et que le client a bien récupéré la nouvelle configuration DNS après la reconnexion (`tailscale status --self`).","Certificat TLS invalide au démarrage : le `server_url` dans `config.yaml` doit correspondre exactement au domaine du certificat. Une URL en `http:\u002F\u002F` alors que nginx attend `https:\u002F\u002F` déclenche des erreurs de redirection en boucle.","Clients macOS ou Windows ne voient pas l'option `--login-server` dans l'interface graphique : utilisez toujours le terminal pour la migration. L'interface graphique Tailscale ne permet pas de changer de serveur de coordination ; seule la ligne de commande le permet.",{"type":39,"title":175,"body":176},"Ce que Headscale ne remplace pas","Headscale implémente le protocole du plan de contrôle Tailscale, mais pas l'ensemble des fonctionnalités de la plateforme commerciale. Tailscale Funnel (exposition de services locaux vers Internet) et Serve (reverse proxy local) ne sont pas disponibles dans Headscale. SSH Recording (enregistrement des sessions SSH via le mesh) est une fonctionnalité Premium Tailscale absente d'Headscale. Ces manques sont documentés et stables : le projet Headscale suit activement la compatibilité avec le protocole Tailscale, pas avec les fonctionnalités d'interface. Si votre usage se limite à la connectivité mesh, au MagicDNS et aux ACLs — le cas de la grande majorité des équipes techniques — Headscale couvre intégralement le besoin. Si vous utilisez activement Funnel ou SSH Recording, évaluez si ces fonctionnalités justifient le coût différentiel avant de migrer.","Déployez Headscale sur votre VPS en quelques clics","Le template Headscale de la marketplace ServOrbit préinstalle et préconfigure Headscale sur un VPS Debian. Ports ouverts, service systemd activé, nginx configuré : votre control plane WireGuard mesh est opérationnel en moins de cinq minutes.","Déployer Headscale sur VPS","\u002Fmarketplace\u002Freseau\u002Fheadscale",[182,205,225],{"id":183,"slug":184,"slugs":185,"title":189,"excerpt":190,"readTime":191,"views":192,"isPinned":19,"publishedAt":193,"updatedAt":194,"category":195,"categories":201,"featuredImage":30,"bgImage":31,"posterImage":203,"relatedSolution":204},164,"self-host-headscale-tailscale-vps",{"fr":184,"en":186,"ar":187,"es":188},"self-host-headscale-on-a-vps-your-own-tailscale-control-server","استضافة-headscale-على-vps-خادم-تحكم-tailscale-خاص-بك","auto-alojar-headscale-en-un-vps-servidor-tailscale","Héberger Headscale sur un VPS : serveur de contrôle Tailscale","Remplacez le serveur de contrôle cloud de Tailscale par Headscale sur votre VPS : utilisateurs illimités, maillage WireGuard complet, magic DNS et ACL, sans SaaS.",6,1,"2026-07-05T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":196,"name":197,"slug":198,"color":199,"icon":200},8,"Sécurité & Monitoring","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[202],{"id":196,"name":197,"slug":198,"color":199,"icon":200},"\u002Fblog\u002Fcovers\u002Fself-host-headscale-tailscale-vps-poster.svg",{"categorySlug":34,"appSlug":35},{"id":206,"slug":207,"slugs":208,"title":212,"excerpt":213,"readTime":214,"views":192,"isPinned":19,"publishedAt":215,"updatedAt":216,"category":217,"categories":222,"featuredImage":30,"bgImage":31,"posterImage":224,"relatedSolution":30},291,"deployer-netbird-controle-vpn-mesh-vps",{"fr":207,"en":209,"ar":210,"es":211},"netbird-self-hosted-wireguard-mesh-vpn-on-a-vps","netbird-شبكة-vpn-مشبكة-wireguard-باستضافة-ذاتية","desplegar-netbird-vpn-mesh-wireguard-en-vps","Netbird : réseau mesh WireGuard auto-hébergé sur VPS","Connectez plusieurs VPS clients sans ouvrir de ports : Netbird déploie un mesh WireGuard dont vous tenez le plan de contrôle — Management, Signal et relay COTURN inclus.",10,"2026-08-21T00:00:00+00:00","2026-09-21T15:22:03+00:00",{"id":218,"name":219,"slug":220,"color":221,"icon":220},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[223],{"id":218,"name":219,"slug":220,"color":221,"icon":220},"\u002Fblog\u002Fcovers\u002Fdeployer-netbird-controle-vpn-mesh-vps-poster.svg",{"id":226,"slug":227,"slugs":228,"title":232,"excerpt":233,"readTime":214,"views":192,"isPinned":19,"publishedAt":234,"updatedAt":194,"category":235,"categories":236,"featuredImage":30,"bgImage":31,"posterImage":238,"relatedSolution":30},248,"cloudflare-tunnel-exposer-application-vps",{"fr":227,"en":229,"ar":230,"es":231},"cloudflare-tunnel-expose-a-vps-app-without-opening-ports","نفق-كلاود-فلير-عرض-تطبيق-vps-بدون-فتح-منافذ","cloudflare-tunnel-exponer-app-vps-sin-abrir-puertos","Cloudflare Tunnel : exposer une app VPS sans ouvrir de port","Exposez une application sur votre VPS via un Cloudflare Tunnel sans ouvrir aucun port entrant. Guide complet avec cloudflared, Docker Compose et service systemd.","2026-08-12T00:00:00+00:00",{"id":218,"name":219,"slug":220,"color":221,"icon":220},[237],{"id":218,"name":219,"slug":220,"color":221,"icon":220},"\u002Fblog\u002Fcovers\u002Fcloudflare-tunnel-exposer-application-vps-poster.svg",1791669664957]