Instalar Pihole en Docker
Pihole en Docker para el filtrado de publicidad en las web visitadas.
Instalación Pihole
Una vez instalado Docker en el sistema, Pihole se puede instalar como un contenedor. Para ello según la página oficial en GitHub solo hace falta ejecutar un script en bash llamado docker_run.sh. cuyo contenido seria:
## ------------ inicio script ----------
#!/bin/bash
# https://github.com/pi-hole/docker-pi-hole/blob/master/README.md
docker run -d \
--name pihole \
-p 53:53/tcp -p 53:53/udp \
-p 80:80 \
-p 443:443 \
-e TZ="America/Chicago" \
-v "$(pwd)/etc-pihole/:/etc/pihole/" \
-v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" \
--dns=127.0.0.1 --dns=1.1.1.1 \
--restart=unless-stopped \
pihole/pihole:latest
printf 'Starting up pihole container '
for i in $(seq 1 20); do
if [ "$(docker inspect -f "{{.State.Health.Status}}" pihole)" == "healthy" ] ; then
printf ' OK'
echo -e "\n$(docker logs pihole 2> /dev/null | grep 'password:') for your pi-hole: https://${IP}/admin/"
exit 0
else
sleep 3
printf '.'
fi
if [ $i -eq 20 ] ; then
echo -e "\nTimed out waiting for Pi-hole start, consult check your container logs for more info (\`docker logs pihole\`)"
exit 1
fi
done;
Tras cambiar la las dns de tu dispositivo a la ip donde se encuentra corriendo Pihole, empieza a trabajar al momento ya que se encuentra pre-configurado. (viene configurado con las DNS de Google por defecto)
Para entrar a la web de Pihole, se debe de entrar en los logs del contenedor para ver la contraseña aleatoria que crea por defecto con el comando:
$ Docker logs pihole
¿Seria interesante, instalar Docker-compose en el servidor para manejar los reinicos de Pihole y poder cambiar la contraseña aleatoria?
Instalación ADDONS para Pihole
Filtrar publicidad de Youtube
Buscando, encontré una web donde comenta el problema, para lo que crea un script, que lo que hace es buscar un patrón en los logs de Pihole, de la publicidad de YouTube dentro de los videos, puesto que estos enlaces a la publicidad, van cambiando con el tiempo.
Para ello hay que descargar de GitHub el script o copiar el contenido a un archivo ejecutable. Al ejecutarlo con la orden: $ siendo el shebang del archivo sh nombrescript.sh #!/bin/bash o #!/usr/bin/bash me daba un error del tipo: syntax error ( unexpected puesto que lo estaba ejecutando con sh (que son para ejecuciones de codigo más livianas) en vez de con el interprete bash.
La solución correcta, como siempre, usar: $ chmod +x nombrescript.sh para añadir permisos de ejecución y luego ejecutar de la forma: $ ./nombrescript.sh o bien con: $ bash ./nombrescript.sh
Documentación utilizada
- Bibliografía