Plataforma de control parental en red: Pi-hole + OpenVPN + Adminer en Docker Compose

Plataforma de control parental en red: Pi-hole + OpenVPN + Adminer con Docker Compose

¿Te gustaría controlar la navegación de tu red y además poder acceder de forma segura desde fuera?
Hoy traemos un proyecto que combina Pi-hole (bloqueador de publicidad y contenidos), un servidor OpenVPN para acceso seguro remoto y Adminer para gestionar las consultas DNS en su base de datos, ¡todo orquestado en tu VPS o servidor mediante Docker Compose!

¿Para qué sirve esta plataforma?

  • Filtrado de contenidos y publicidad en toda la red usando Pi-hole, con posibilidad de listas blancas/negras personalizadas.
  • Acceso remoto seguro vía OpenVPN: navega con tus reglas de filtrado estés donde estés, incluso en redes públicas.
  • Control y auditoría de las peticiones DNS mediante una base de datos SQLite visualizable fácilmente con Adminer.
  • Ideal para familias, pequeños negocios o usuarios conscientes de la privacidad que quieran un entorno de red controlado y auditable.

Estructura de servicios

  • Pi-hole: bloqueador de publicidad y tracker que se sitúa como servidor DNS de tu red. Utiliza una base de datos para logs y configuración.
  • OpenVPN: servidor VPN para acceso remoto seguro. ¡Conéctate desde cualquier lugar y navega bajo la protección de Pi-hole!
  • Adminer: gestor web universal para consultar la base de datos de Pi-hole y auditar peticiones DNS, fácil, práctico y seguro.

Todos los servicios están aislados, se comunican por red interna y sólo exponen lo necesario. La gestión de persistencia también viene preparada.

El docker-compose.yml completo

version: '3.8'

services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    environment:
      TZ: 'Europe/Madrid'
      WEBPASSWORD: 'CambialoPorUnaClaveSegura'
      DNSMASQ_USER: 'root'
    volumes:
      - ./pihole/etc-pihole:/etc/pihole
      - ./pihole/etc-dnsmasq.d:/etc/dnsmasq.d
    networks:
      - inside
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "8080:80"
    restart: unless-stopped

  openvpn:
    image: kylemanna/openvpn
    container_name: openvpn
    volumes:
      - ./openvpn-data/conf:/etc/openvpn
    cap_add:
      - NET_ADMIN
    ports:
      - "1194:1194/udp"
    restart: unless-stopped
    networks:
      - inside

  adminer:
    image: adminer:latest
    container_name: adminer
    ports:
      - "8081:8080"
    restart: unless-stopped
    networks:
      - inside

networks:
  inside:
    driver: bridge
  • Los datos de Pi-hole y OpenVPN se montan en volúmenes locales para que no pierdas logs y configuración tras reinicios.
  • Pi-hole expone el DNS y el panel (puertos 53 y 8080), Adminer queda disponible en el 8081 para tu uso privado, y OpenVPN en el 1194 UDP.
  • Todos los servicios comparten la red bridge “inside” para mayor seguridad y control.

Cómo ponerlo en marcha

  1. Guarda el fichero docker-compose.yml en una carpeta de tu VPS o servidor.
  2. Ejecuta docker compose up -d para iniciar los servicios.
  3. Accede al panel de Pi-hole en http://TU_IP_PUBLICA:8080/admin con la contraseña que pusiste.
  4. Accede a Adminer en http://TU_IP_PUBLICA:8081. Elige tipo: SQLite, servidor: pihole/etc-pihole/pihole-FTL.db si sientes curiosidad.
  5. Para configurar OpenVPN, sigue las instrucciones de la imagen oficial y genera los perfiles cliente con los comandos en consola.
  6. ¡Pon Pi-hole como DNS de tus dispositivos o de tu router doméstico y empieza a disfrutar del filtrado inteligente!
  7. Si conectas por VPN, toda tu navegación irá por Pi-hole aunque estés en otra red, ¡ideal para móviles o portátiles!

Consejos y troubleshooting

  • Pi-hole utiliza por defecto la base SQLite pihole-FTL.db, pero puedes configurarlo para usar otras opciones si eres avanzado.
  • Si algún servicio no inicia, comprueba los volúmenes (permisos de carpetas), y pon alguna contraseña segura de entorno (>10 caracteres).
  • Abre los puertos correctos en el firewall de tu VPS para 53 (UDP/TCP), 8080 (TCP), 8081 (TCP) y 1194 (UDP).
  • Consulta los logs de un servicio con docker compose logs NOMBRE_SERVICIO para depurar problemas.
  • Para máxima seguridad, expón Adminer solo a localhost si lo usas sólo remotamente por SSH.

¿Quieres más ideas o mejoras en este stack? ¡Cuéntamelo en comentarios! Próximamente más entornos útiles y sencillos para transformar tu servidor en una herramienta poderosa.

Avatar

Por Mid