Skip to content

Aerya/HomeGuard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

WireGuard VPN — Docker + iOS / Android

Serveur WireGuard en Docker pour utiliser son propre serveur DNS (AdGuard Home, Pi-hole…) depuis un smartphone, même en dehors du réseau local.

Principe

Smartphone (4G / WiFi externe)
    │  tunnel WireGuard chiffré
    ▼
Serveur WireGuard (chez soi)
    │  requête DNS interne
    ▼
Serveur DNS local (AdGuard Home, Pi-hole…)
  • Hors du réseau : le VPN s'active, tout le DNS passe par le serveur maison
  • Sur le WiFi maison : le VPN se désactive automatiquement, le DNS local est joignable directement

Prérequis

  • Docker + Docker Compose sur le serveur
  • Un nom de domaine ou une IP publique pointant vers la box (DynDNS recommandé si IP variable)
  • Port UDP 51820 ouvert et forwardé vers le serveur sur la box
  • Le DHCP du réseau local doit pousser l'IP du serveur DNS aux clients (pour que le smartphone l'utilise directement quand il est à la maison)

Configuration

Éditer docker-compose.yml et remplacer les deux valeurs suivantes :

Variable Description Exemple
SERVERURL Domaine ou IP publique du serveur VPN vpn.mondomaine.com
PEERDNS DNS principal + fallback 192.168.1.1,9.9.9.9

Démarrage

docker compose up -d

Ajouter un peer (appareil)

Les peers sont définis dans la variable PEERS du docker-compose.yml (noms séparés par des virgules) :

- PEERS=iphone,laptop,tablet

Après modification, relancer les conteneurs :

docker compose up -d --force-recreate wireguard peer-notify

Supprimer un peer (appareil)

  1. Retirer le nom du peer de PEERS dans le service wireguard
  2. Renseigner son nom dans REMOVE_PEERS dans le service peer-notify :
    - REMOVE_PEERS=laptop
  3. Relancer la stack — le dossier de config du peer est supprimé, WireGuard se régénère sans lui
  4. Vider REMOVE_PEERS= et relancer une dernière fois

Récupérer la config d'un peer (QR code)

Au démarrage, le service peer-notify génère automatiquement les QR codes. Pour les afficher :

docker logs homeguard-notify

Envoyer le QR code sur Discord (optionnel)

Créer un webhook sur ton serveur Discord (Paramètres du salon → Intégrations → Webhooks), puis renseigner l'URL dans le docker-compose.yml :

- DISCORD_WEBHOOK=https://discord.com/api/webhooks/XXXXXX/XXXXXX

Le QR code sera envoyé en image dans le salon Discord à chaque démarrage du conteneur.

Pour forcer un renvoi sans redémarrer wireguard :

docker compose restart peer-notify

Configuration iOS (iPhone / iPad)

  1. Installer WireGuard depuis l'App Store
  2. Ouvrir l'app → + (en haut à droite) → Créer depuis un QR code
  3. Scanner le QR code (depuis docker logs homeguard-notify ou le salon Discord)
  4. Donner un nom (ex : Maison) → Ajouter la configuration VPN → Autoriser

Activer le VPN automatiquement (sauf sur le WiFi maison)

Dans l'app WireGuard, appuyer sur le tunnel puis On-Demand Activation :

  1. Activer Wi-Fi et Cellular
  2. Add ruleSSID → saisir le nom exact du WiFi maison → action Disconnect
  3. Sauvegarder

Le VPN s'activera automatiquement sur tous les réseaux sauf le WiFi maison. Dès que vous rentrez, il se coupe tout seul.

Configuration Android

  1. Installer WireGuard depuis le Play Store
  2. +Scanner depuis QR code
  3. Scanner le QR code (depuis docker logs homeguard-notify ou le salon Discord)
  4. Donner un nom → Autoriser l'ajout du VPN

Activer le VPN automatiquement (sauf sur le WiFi maison)

L'app WireGuard Android ne gère pas nativement les règles par SSID. Deux options :

  • Manuellement : activer/désactiver le tunnel dans l'app selon le réseau
  • Automatiquement avec Tasker (payant) ou MacroDroid (gratuit) : créer un profil qui désactive le VPN quand le SSID maison est détecté, et le réactive sinon

About

Serveur WireGuard en Docker pour utiliser son propre serveur DNS (AdGuard Home, Pi-hole…) depuis un smartphone, même en dehors du réseau local.

Resources

License

Stars

Watchers

Forks

Contributors