
WireHole est une combinaison de WireGuard, Pi-hole et Unbound dans un projet docker-compose, visant à permettre aux utilisateurs de créer rapidement et facilement un VPN WireGuard géré personnellement, en tunnel complet ou fractionné, avec des capacités de blocage de publicités grâce à Pi-hole, ainsi que la mise en cache DNS, des options de confidentialité supplémentaires et des fournisseurs en amont via Unbound.
WireHole est un projet docker-compose qui combine WireGuard, PiHole et Unbound pour créer un VPN en tunnel complet ou fractionné facile à déployer et à gérer. Cette configuration permet d'obtenir un VPN avec blocage des publicités via PiHole et une confidentialité DNS renforcée ainsi qu'un cache via Unbound.
👤 Devin Stokes
Les contributions, les problèmes et les demandes de fonctionnalités sont les bienvenus ! N'hésitez pas à consulter la page des problèmes.
Donnez une ⭐ si ce projet vous a aidé !
L'image prend en charge plusieurs architectures telles que x86-64, arm64 et armhf. L'image linuxserver/wireguard sélectionne automatiquement l'image correcte pour votre architecture.
Les architectures supportées par cette image sont :
| Architecture | Tag |
|---|---|
| x86-64 | amd64-latest |
| arm64 | arm64v8-latest |
| armhf | arm32v7-latest |
Pour commencer à utiliser WireHole, clonez le dépôt et démarrez les conteneurs :
#!/bin/bash
# Clone the WireHole repository from GitHub
git clone https://github.com/IAmStoxe/wirehole.git
# Change directory to the cloned repository
cd wirehole
# Update the .env file with your configuration
cp .env.example .env
nano .env # Or use any text editor of your choice to edit the .env file
# Replace the public IP placeholder in the docker-compose.yml
sed -i "s/REPLACE_ME_WITH_YOUR_PUBLIC_IP/$(curl -s ifconfig.me)/g" docker-compose.yml
# Start the Docker containers
docker compose up
N'oubliez pas de définir des mots de passe sécurisés pour WGUI_SESSION_SECRET, WGUI_PASSWORD et WEBPASSWORD dans votre fichier .env.
Le fichier .env contient une série de variables d'environnement essentielles pour configurer les services WireHole dans les conteneurs Docker. Voici une explication détaillée de chaque variable :
TIMEZONE : Définit le fuseau horaire pour tous les services. Il est important pour la journalisation et les opérations basées sur le temps. Exemple : America/Los_Angeles.PUID et PGID : Ces variables garantissent que les services disposent des bonnes permissions pour accéder et modifier les fichiers sur le système hôte. Elles doivent correspondre à l'ID utilisateur et à l'ID groupe de l'utilisateur hôte.UNBOUND_IPV4_ADDRESS : L'adresse IP statique attribuée à Unbound, garantissant qu'elle est accessible par Pi-hole.PIHOLE_IPV4_ADDRESS : L'adresse IP statique attribuée à Pi-hole, lui permettant de répondre aux requêtes DNS du réseau.WIREGUARD_SERVER_PORT : Le port sur lequel le serveur WireGuard écoutera les connexions.WIREGUARD_PEER_DNS : Le serveur DNS que les clients WireGuard utiliseront, généralement défini sur l'adresse de Pi-hole.WIREGUARD_PEERS : Spécifie le nombre de configurations pair/client à générer pour WireGuard.WGUI_SESSION_SECRET : Une clé secrète utilisée pour chiffrer les données de session de WireGuard-UI. Elle doit être définie sur une valeur aléatoire et sécurisée.WGUI_USERNAME et WGUI_PASSWORD : Identifiants pour accéder à l'interface WireGuard-UI.WGUI_MANAGE_START : Lorsqu'elle est définie sur true, WireGuard-UI gère le démarrage du service WireGuard.WGUI_MANAGE_RESTART : Lorsqu'elle est définie sur true, WireGuard-UI gère le redémarrage du service WireGuard.WEBPASSWORD : Le mot de passe pour accéder à l'interface web de Pi-hole. Il doit être défini sur une valeur sécurisée pour empêcher tout accès non autorisé.PIHOLE_DNS : L'adresse IP du serveur Unbound utilisé par Pi-hole pour résoudre les requêtes DNS.N'oubliez pas de remplacer toutes les valeurs par défaut ou factices par des valeurs uniques et sécurisées avant de déployer vos services.
Pour un VPN en tunnel fractionné, configurez AllowedIps de votre client WireGuard sur 10.2.0.0/24, ce qui acheminera uniquement le trafic du panneau web et DNS via le VPN.
Gérez votre VPN WireGuard via WireGuard-UI à l'adresse :
http://{YOUR_SERVER_IP}:5000
Connectez-vous avec le WGUI_USERNAME et le WGUI_PASSWORD que vous avez définis dans votre fichier .env.
Connectez-vous à WireGuard et accédez au panneau d'administration Pi-hole à l'adresse http://10.2.0.100/admin. Le mot de passe de connexion est celui défini comme WEBPASSWORD dans votre fichier .env.
Configurez le DDNS en définissant WG_HOST dans votre fichier .env sur votre URL DDNS.
wireguard:
environment:
- WG_HOST=my.ddns.net
Expliquez ici toutes les variables d'environnement de votre fichier .env. (Référez-vous à la section précédente où nous avons fourni un tableau d'explications pour chaque variable.)
Discutez des paramètres supplémentaires tels que les secrets Docker, les paramètres umask, les identifiants utilisateur/groupe, l'ajout de clients, la modification des fournisseurs DNS et les considérations réseau. Assurez-vous de mettre à jour toutes les instructions pour correspondre à la configuration actuelle.
Fournissez des informations sur la façon d'accéder au shell pendant que le conteneur est en cours d'exécution, de consulter les journaux, de mettre à jour les conteneurs et de traiter les questions fréquentes. Assurez-vous que toutes les commandes et étapes sont mises à jour pour refléter les versions et pratiques actuelles.
Remerciements à LinuxServer.io pour la maintenance de l'image Wireguard et d'autres contributions au projet.