Tailscale - connecter HA via un mesh VPN network

Pas de soucis, je suis dans ce cas également : tout sous Docker.
Voici un docker-compose.yml qui fonctionne sous Debian 13.

J’ai installéTailscale de cette manière sur mon R720XD sous Debian pour le relier à mon tailnet.

Il faut avoir un compte Tailscale (compte gratuit jusqu’à 100 machines) :
https://login.tailscale.com/admin

Sur la machine Docker, créer le dossier tailscale :
nano /home/docker/tailscale/docker-compose.yml

services:
  tailscale:
    image: tailscale/tailscale:latest
    container_name: tailscale
    hostname: ${TS_HOSTNAME}          # apparaît dans le tailnet
    network_mode: host              # accès réseau complet de l'hôte
    cap_add:
      - NET_ADMIN
      - NET_RAW
    volumes:
      - ./tailscale-state:/var/lib/tailscale
      - /dev/net/tun:/dev/net/tun
    environment:
      - TS_STATE_DIR=/var/lib/tailscale
      - TS_AUTHKEY=${TS_AUTHKEY}
      - TS_HOSTNAME=${TS_HOSTNAME}
      - TS_EXTRA_ARGS=${TS_EXTRA_ARGS}
      - TS_ACCEPT_DNS=${TS_ACCEPT_DNS}
      - TS_USERSPACE=${TS_USERSPACE}
    restart: unless-stopped

Persistance d’état : le dossier ./tailscale-state conserve les clés de la machine entre les redémarrages. Sans ça, la machine réapparaît comme nouveau nœud à chaque up. Le dossier est créé automatiquement.

Auth key : à générer à l’adresse indiquée plus bas → Keys → Generate auth key. Pour une machine permanente, cocher Reusable et Pre-authorized

https://login.tailscale.com/admin/settings/keys

Le fichier .env stocke les données secrètes :

nano /home/docker/tailscale/.env

TS_AUTHKEY=tskey-auth-XXXXXXXXXXXX
TS_HOSTNAME=homeassistant
TS_EXTRA_ARGS=–advertise-routes=10.90.80.0/24
TS_ACCEPT_DNS=false
TS_USERSPACE=false

chmod 600 .env

Il ne faut indiquer TS_EXTRA_ARGS= que si l’on pas veut donner accès à tout son réseau local.

Ensuite lancer Tailscale avec la commande :
sudo docker compose up -d tailscale

Vérifier que tout fonctionne en lisant les logs:
sudo docker logs tailscale

La machine est automatiquement ajoutée au tailnet. Dans l’interface admin de Tailscale, il faut penser à cliquer sur le nom de la machine et à désactiver l’expiration de la clé, sans quoi il faudra se reconnecter :

https://login.tailscale.com/admin

Pour mettre à jour Tailscale automatiquement à intervalle régulier, on peut utiliser le fichier Docker Watchtower (bien documenté sur Internet).