# Réseau & Accès ## Tailscale VPN Tailscale remplace ZeroTier depuis décembre 2025 pour le mesh VPN. ### Configuration | Machine | IP Tailscale | Hostname | |---------|--------------|----------| | Talloires (RPi5) | 10.171.171.1 | talloires.tailfd281f.ts.net | | Annecy (Synology) | 10.171.171.50 | annecy.tailfd281f.ts.net | | Mac Lionel | 100.x.x.x | (dynamique) | ### DNS MagicDNS Tailscale fournit la résolution DNS automatique : ``` *.talloires.tailfd281f.ts.net → Services Talloires ``` ### Accès aux services Tous les services sont accessibles via deux domaines : | Type | Domaine | Exemple | |------|---------|---------| | LAN | `*.talloires.local` | `jellyfin.talloires.local` | | Tailscale | `*.talloires.tailfd281f.ts.net` | `jellyfin.talloires.tailfd281f.ts.net` | ## Accès LAN ### Prérequis 1. **Certificat CA Caddy** installé sur le client 2. **DNS local** configuré (dnsmasq ou /etc/hosts) ### Installation du certificat ```bash # Sur Talloires docker exec caddy cat /data/caddy/pki/authorities/local/root.crt > caddy-root.crt # Sur Mac sudo security add-trusted-cert -d -r trustRoot \ -k /Library/Keychains/System.keychain caddy-root.crt ``` ### Configuration DNS Option 1 : **dnsmasq** sur le routeur ``` address=/talloires.local/10.171.171.7 ``` Option 2 : **/etc/hosts** sur chaque client ``` 10.171.171.7 jellyfin.talloires.local 10.171.171.7 git.talloires.local 10.171.171.7 homeassistant.talloires.local # etc. ``` ## Ports exposés | Port | Service | Protocole | |------|---------|-----------| | 443 | Caddy (HTTPS) | TCP | | 80 | Caddy (HTTP → HTTPS) | TCP | | 2222 | Gitea SSH | TCP | | 8123 | Home Assistant (interne) | TCP | ## Sécurité ### Authelia SSO La plupart des services sont protégés par Authelia : ``` Client → Caddy → Authelia → Service ``` Services protégés par Authelia : - Transmission - Netdata - Dozzle - Cockpit Services avec auth propre (bypass Authelia) : - Jellyfin (auth interne) - Gitea (OIDC via Authelia) - Home Assistant (auth interne) - Arcane (désactivé temporairement) ### ProtonVPN (WireGuard) Transmission utilise un tunnel WireGuard vers ProtonVPN : ``` Transmission → WireGuard container → ProtonVPN → Internet ↓ Kill switch intégré (network_mode: service:wireguard) ``` Vérification IP : ```bash # IP Transmission (doit être ProtonVPN) docker exec transmission curl -s ifconfig.me # IP locale curl -s ifconfig.me ```