Script de instalación automatizado para Pi-hole con Cloudflared DNS over HTTPS (DoH).
Creado por Kombi 🛠️
- ✅ Instalación interactiva paso a paso con confirmación en cada etapa
- ✅ Instalación automática de Docker y Docker Compose
- ✅ Actualización del sistema (apt update && upgrade)
- ✅ Configuración personalizada:
- IP del servidor
- Contraseña de interfaz web
- Zona horaria
- 6 opciones de servidores DNS upstream
- ✅ Validación de entradas para evitar errores
- ✅ Interfaz colorida y fácil de usar
- ✅ Modo demo incluido para probar sin instalar
# Clonar el repositorio
git clone https://github.com/kombicl/pi.git
# Entrar al directorio
cd pi
# Dar permisos de ejecución
chmod +x install.sh
# Ejecutar con sudo
sudo ./install.sh# Descargar el script
wget https://raw.githubusercontent.com/kombicl/pi/main/install.sh
# Dar permisos de ejecución
chmod +x install.sh
# Ejecutar con sudo
sudo ./install.sh# Prueba el instalador sin hacer cambios reales
./demo.shEl script te guiará paso a paso con confirmaciones en cada etapa:
¿Deseas actualizar el sistema (apt update && upgrade)? (s/N):
- Actualiza todos los paquetes del sistema
- Opcional, puedes omitirlo si ya está actualizado
¿Deseas instalar Docker? (s/N):
- Instala Docker automáticamente
- Requerido para continuar
¿Deseas instalar Docker Compose? (s/N):
- Instala la última versión de Docker Compose
- Requerido para continuar
¿Deseas continuar con la configuración? (s/N):
Si aceptas, configurarás:
- IP del servidor: Ingresa la IP local (ej:
192.168.1.174) - Contraseña: Define la contraseña para Pi-hole web UI
- Zona horaria: Cambia opcionalmente (default:
America/Santiago) - Servidores DNS upstream: Selecciona entre 6 opciones:
| Opción | Descripción | Uso |
|---|---|---|
| 1 | Cloudflared (DoH) + Google DNS | ⭐ Recomendado - Privacidad + velocidad |
| 2 | Cloudflared (DoH) + Cloudflare DNS | Máxima privacidad |
| 3 | Solo Google DNS (8.8.8.8, 8.8.4.4) | Rápido y confiable |
| 4 | Solo Cloudflare DNS (1.1.1.1, 1.0.0.1) | Privacidad sin DoH |
| 5 | OpenDNS (208.67.222.222) | Control parental integrado |
| 6 | Personalizado | Define tus propios servidores |
¿Deseas crear los directorios en /opt/pihole-dns? (s/N):
- Crea estructura de carpetas en
/opt/pihole-dns - Genera el archivo
docker-compose.yaml
¿Deseas iniciar los contenedores ahora? (s/N):
- Inicia Pi-hole y Cloudflared (si seleccionaste)
- Opcional, puedes iniciarlo manualmente después
http://TU_IP/admin
Usa la contraseña que configuraste durante la instalación.
Opción A: Configurar el router (recomendado)
- Configura el DNS primario de tu router a la IP del servidor
- Todos los dispositivos usarán automáticamente Pi-hole
Opción B: Configurar dispositivo individual
- Ve a configuración de red
- Cambia el DNS a la IP de tu servidor Pi-hole
# Ir al directorio de instalación
cd /opt/pihole-dns
# Ver logs en tiempo real
docker-compose logs -f
# Ver logs de Pi-hole solamente
docker-compose logs -f pi-hole
# Detener servicios
docker-compose down
# Iniciar servicios
docker-compose up -d
# Reiniciar servicios
docker-compose restart
# Actualizar imágenes
docker-compose pull && docker-compose up -d
# Ver estado de contenedores
docker-compose pspi/
├── install.sh # Script principal de instalación
├── demo.sh # Modo demo (sin cambios reales)
├── docker-compose.yaml.template # Plantilla de referencia
├── README.md # Este archivo
└── CHANGELOG.md # Historial de cambios
- Sistema operativo: Linux (Debian/Ubuntu/Raspberry Pi OS)
- Acceso: root o sudo
- Conexión: Internet activa
- Arquitectura: x86_64, ARM, ARM64
- Pi-hole - Bloqueador de anuncios a nivel de red
- Cloudflared - DNS over HTTPS (DoH)
- Red interna Docker (10.0.0.0/29)
- Volúmenes persistentes para configuración
- Pi-hole - Bloqueador de anuncios a nivel de red
- DNS upstream directo a los servidores elegidos
- Volúmenes persistentes para configuración
- Debes aceptar instalar Docker para continuar
- Si ya lo tienes instalado, el script lo detectará automáticamente
# Verificar que los contenedores estén corriendo
docker ps
# Ver logs de Pi-hole
docker logs pi-hole
# Reiniciar contenedor
docker restart pi-hole- Verifica que tu dispositivo esté usando la IP correcta como DNS
- Puede tomar unos minutos hasta que los cambios surtan efecto
- Limpia la caché DNS del dispositivo
Las contribuciones son bienvenidas! Si tienes ideas para mejorar este instalador:
- Haz fork del repositorio
- Crea una rama para tu feature (
git checkout -b feature/mejora) - Commit tus cambios (
git commit -m 'Añade nueva característica') - Push a la rama (
git push origin feature/mejora) - Abre un Pull Request
Este proyecto está bajo la licencia MIT. Ver archivo LICENSE para más detalles.
Kombi 🚐
- Pi-hole - Por el increíble bloqueador de anuncios
- Cloudflare - Por cloudflared y DNS over HTTPS
- Comunidad de código abierto
¿Te gusta este proyecto? Dale una ⭐ en GitHub!