Pourquoi tu as besoin de cela#
Il y a quelques mois, j’ai fait face à un problème courant : je voulais accéder à mes services internes (Jellyfin, Home Assistant, etc.) de l’extérieur de la maison, mais je ne voulais pas les exposer directement sur internet. Ouvrir des ports est un risque inutile. La solution a été de mettre en place un VPN avec Wireguard dans Docker. C’était la meilleure décision que j’ai prise pour mon infrastructure domestique.
Avantages de Wireguard#
- Léger : consomme moins de ressources qu’OpenVPN
- Rapide : protocole moderne et efficace
- Facile à configurer : comparé à d’autres alternatives
- Sécurisé : cryptographie de dernière génération
- Docker-friendly : il existe d’excellentes images officielles
Préparation#
Tu as besoin de :
- Un serveur avec Docker installé
- Le fichier
docker-compose.yml - Un domaine ou une adresse IP publique (pour te connecter de l’extérieur)
- Les clients Wireguard sur tes appareils
Installation étape par étape#
1. Créer le répertoire de configuration#
mkdir -p ~/wireguard/config
cd ~/wireguard2. Docker Compose#
Crée le fichier docker-compose.yml :
version: '3.8'
services:
wireguard:
image: linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid
- SERVERURL=tu-dominio-o-ip-publica.com
- SERVERPORT=51820
- PEERS=telefono,laptop,tablet
- PEERDNS=auto
ports:
- "51820:51820/udp"
volumes:
- ./config:/config
- /lib/modules:/lib/modules:ro
networks:
- mi-red
restart: unless-stopped
networks:
mi-red:
driver: bridge
ipam:
config:
- subnet: 10.0.0.0/24Remplace :
tu-dominio-o-ip-publica.compar ton adresse réelle- Les PEERS par les noms de tes appareils
- Le fuseau horaire selon ta localisation
3. Démarrer le conteneur#
docker-compose up -dLes fichiers de configuration seront générés automatiquement dans ./config. Attends quelques secondes et vérifie :
ls -la config/peer_*/4. Obtenir les codes QR#
Pour connecter tes appareils :
docker exec wireguard cat /config/peer_telefono/peer_telefono.confOu directement les QR :
docker exec wireguard qrencode -t ansiutf8 < /config/peer_telefono/peer_telefono.confScanne avec ton client Wireguard sur chaque appareil.
Connecter les services internes#
C’est ici que ça devient important. Je veux accéder à des services sur mon réseau interne. Pour cela, je modifie le docker-compose.yml et j’ajoute des routes :
environment:
- ALLOWEDIPS=10.0.0.0/24,192.168.1.0/24Cela te permet d’accéder de la VPN au réseau 192.168.1.0/24 (ton réseau local).
Sur le serveur, active le forwarding :
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -pAccès depuis les clients#
Une fois connecté au VPN, tu accèdes à tes services en utilisant leurs adresses IP internes :
http://192.168.1.100:8096pour Jellyfinhttp://192.168.1.50:8123pour Home Assistant- Ce dont tu as besoin sur ton réseau
Maintenance#
Renouveler les certificats (tous les 6 mois environ) :
docker exec wireguard /app/wireguard-tools/show-peer peer_nombreAjouter un nouvel appareil :
docker-compose down
# Edita PEERS en docker-compose.yml
docker-compose up -dNotes finales#
- Ouvre seulement le port 51820/UDP sur ton routeur
- Utilise un pare-feu sur le serveur pour bloquer l’accès inutile
- Vérifie que le forwarding d’IP est actif
- Surveille régulièrement le trafic du VPN
Depuis plusieurs mois avec cette configuration et elle est totalement stable. J’accède à mes services de n’importe où sans soucis de sécurité. Je recommande définitivement cette configuration à quiconque veut maintenir son infrastructure domestique privée mais accessible.
Équipement recommandé#
- Raspberry Pi 3 B+ — Serveur léger à faible consommation pour démarrer ton homelab
- Raspberry Pi 4 (4GB) — La base parfaite pour homelab, Docker et surveillance
- TECLAST T65 Tablet 13.4" Android 16 avec clavier et stylet — Client WireGuard portable : gère tes services de n’importe où
Liens d’affiliation. Aucun coût supplémentaire pour toi.