PlugNPiN
PlugNPiN es una herramienta en Go que automatiza la integración de contenedores Docker con Pi-Hole, AdGuard Home y Nginx Proxy Manager. Detecta servicios mediante etiquetas específicas (plugNPiN.ip, plugNPiN.url) y actualiza registros DNS (CNAME/A) y hosts proxy automáticamente.
Ficha actualizada 18 sept 2026, 21:06 · upstream 9 jul 2026, 14:17 · release v1.0.0
Qué es PlugNPiN
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
PlugNPiN es una solución de automatización diseñada para orquestar la configuración de red y proxy en entornos Docker. Escrita en Go, esta herramienta escanea contenedores activos buscando etiquetas predefinidas que contienen la dirección IP del servicio y los dominios deseados. Su objetivo principal es mantener sincronizados los registros DNS en Pi-Hole o AdGuard Home (mediante reescrituras) y crear entradas de host proxy correspondientes en Nginx Proxy Manager, asegurando que el tráfico llegue correctamente a los servicios internos.
La aplicación opera mediante dos mecanismos complementarios para garantizar la fiabilidad. En primer lugar, monitorea eventos del daemon Docker en tiempo real; cuando un contenedor con las etiquetas correctas se inicia o detiene, PlugNPiN actualiza inmediatamente la configuración de DNS y proxy. En segundo lugar, ejecuta una sincronización periódica definida por la variable de entorno RUN_INTERVAL, lo que actúa como mecanismo de autocorrección para reparar cualquier inconsistencia entre el estado real de los contenedores y las entradas configuradas en los servidores de red.
Para garantizar la seguridad, se recomienda encarecidamente utilizar un proxy de socket Docker (como linuxserver/socket-proxy) en lugar de montar directamente /var/run/docker.sock dentro del contenedor de PlugNPiN. Esto limita los privilegios del daemon y reduce el riesgo de exposición directa. La herramienta permite habilitar o deshabilitar individualmente las integraciones con Pi-Hole y AdGuard Home, ofreciendo flexibilidad para adaptar la configuración a las necesidades específicas de cada red local sin requerir intervención manual constante.
- Automatizar la creación de registros DNS y hosts proxy al lanzar nuevos contenedores en un servidor doméstico o autoalojado.
- Mantener Nginx Proxy Manager actualizado dinámicamente para servicios que cambian de estado (start/stop) sin editar manualmente el panel web.
- Implementar una solución de red local donde los servicios internos sean accesibles mediante nombres personalizados gestionados automáticamente por etiquetas Docker.
- Reducir la carga administrativa en entornos con múltiples hosts Docker, permitiendo la monitorización centralizada de servicios distribuidos.
- Asegurar que las reglas de firewall o DNS locales reflejen el estado actual de los contenedores activos mediante sincronización periódica.
- Escrita en Go, lo que garantiza una ejecución eficiente y bajo consumo de recursos en comparación con scripts basados en Python o Node.js.
- Soporte nativo para escucha de eventos del daemon Docker en tiempo real, minimizando la latencia entre el estado del contenedor y la configuración de red.
- Mecanismo híbrido que combina detección por eventos con sincronización periódica (RUN_INTERVAL) para asegurar la consistencia ante fallos de conexión o eventos perdidos.
- Arquitectura segura que fomenta el uso de proxies de socket Docker para evitar dar permisos directos al daemon a los contenedores de gestión.
- Requiere acceso de red y credenciales válidas a las instancias de Nginx Proxy Manager, Pi-Hole y AdGuard Home para funcionar correctamente.
- Depende de la correcta implementación de etiquetas plugNPiN.ip y plugNPiN.url en los contenedores objetivo; sin ellas, no se detectan automáticamente.
- No incluye un script de instalación one-click nativo, requiriendo configuración manual de variables de entorno y dependencias del sistema anfitrión si no se usa Docker Compose.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Utilizar siempre un proxy de socket Docker (ej. linuxserver/socket-proxy) para evitar montar el socket directamente en el host. Configurar las variables de entorno NGINX_PROXY_MANAGER_* y PIHOLE_* con credenciales seguras. Ajustar RUN_INTERVAL según la frecuencia de cambios esperada en los contenedores. Verificar que los dominios definidos en plugNPiN.url sean compatibles con el DNS local (ej. .local o IP pública).
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.