Este repositorio de GitHub contiene un archivo de variables de entorno y un archivo de Docker Compose para usar Pihole, Wireguard y DuckDNS juntos. Esta configuración permite crear una VPN segura y privada, bloquear anuncios y rastreadores en todos los dispositivos conectados y tener una dirección IP pública en constante actualización mediante DuckDNS.
- Docker y Docker Compose deben estar instalados en el host.
- Una cuenta de DuckDNS.
Antes de usar Docker Compose, debes editar el archivo .env
en la raíz del directorio del proyecto y configurar las siguientes variables de entorno:
WG_HOST= # Dirección IP/DNS del servidor de Wireguard
WG_PASSWORD= # Contraseña del servidor de Wireguard
PH_WEBPASSWORD= # Contraseña para acceder a la interfaz web de Pihole
DD_SUBDOMAINS= # Subdominios de DuckDNS separados por coma
DD_TOKEN= # Token de DuckDNS
- Registra una cuenta en DuckDNS si aún no tienes una.
- Obtén tu token de DuckDNS siguiendo las instrucciones de la documentación de DuckDNS.
- Decide en qué subdominios de DuckDNS deseas usar y configura la variable
DD_SUBDOMAINS
en el archivo.env
con una lista de ellos separados por comas. Por ejemplo:DD_SUBDOMAINS=subdominio1,subdominio2,subdominio3
. - Configura la variable
DD_TOKEN
en el archivo.env
con tu token de DuckDNS. Por ejemplo:DD_TOKEN=abcdefgh-1234-5678-90ab-cdef01234567
. - Ejecuta
docker-compose up -d
para iniciar los servicios de DuckDNS.
Una vez que hayas completado estos pasos, DuckDNS actualizará automáticamente tu dirección IP pública en los subdominios especificados en DD_SUBDOMAINS
. Puedes acceder a tu subdominio a través de un navegador web para confirmar que está funcionando correctamente.
El archivo de Docker Compose incluye los siguientes servicios:
- wg-easy: servicio de Wireguard.
- pihole: servicio de Pihole.
- nginx-proxy-manager: servicio de Nginx Proxy Manager.
- duckdns: servicio de DuckDNS.
Puede editar el archivo de Docker Compose según sus necesidades. Por ejemplo, si desea habilitar el servicio de monitoreo de Uptime Kuma, puede descomentar las líneas correspondientes.
Después de configurar las variables de entorno, puede ejecutar los servicios utilizando el siguiente comando:
docker-compose up -d
Este comando creará y ejecutará todos los contenedores necesarios en segundo plano. Puede detener los contenedores utilizando el siguiente comando:
docker-compose down
Este repositorio también incluye nginx-proxy-manager, una herramienta para gestionar fácilmente proxies inversos y certificados SSL.
Para utilizarlo, se debe acceder a la interfaz web de nginx-proxy-manager en https://<tu-dominio>:81
(reemplaza <tu-dominio>
con tu dominio real). Es necesario tener el puerto 80, 81 y 443 abiertos en el router para que la conexión pueda ser establecida.
Una vez dentro de la interfaz de usuario, sigue las instrucciones para agregar tus dominios y configurar los proxies inversos y certificados SSL. La documentación oficial de nginx-proxy-manager tiene toda la información necesaria para llevar a cabo estas tareas.
Para más información, consulta la documentación oficial de nginx-proxy-manager.
En ningún caso expongas los puertos DNS de pi-hole a internet, estos deben ser accesibles solo desde la maquina de docker o la red local. Configura tu firewall para bloquear estos puertos.
- Sustituir nginx-proxy-manager por un servicio más ligero y simple.
- Agregar un asistente de instalación y configuración.
Este proyecto se distribuye bajo la licencia MIT. Consulte el archivo LICENSE para obtener más información.