2
NPM
groales edited this page 2025-12-04 10:45:56 +01:00

Despliegue con Nginx Proxy Manager (NPM)

NetBox detrás de NPM con certificado SSL de Let's Encrypt.

Requisitos Previos

  • NPM desplegado y accesible
  • Red Docker proxy creada
  • DNS apuntando al servidor

Pasos de Configuración

1. Desplegar NetBox

En Portainer, crea el stack sin archivo override (solo docker-compose.yml):

Variables de entorno:

DB_PASSWORD=password_generado_1
REDIS_PASSWORD=password_generado_2
SUPERUSER_EMAIL=admin@example.com
SUPERUSER_PASSWORD=password_generado_3

⚠️ No añadas DOMAIN_HOST - Solo se usa con Traefik

2. Configurar Proxy Host en NPM

  1. Accede a NPM (ej: https://npm.tudominio.com)
  2. Ve a HostsProxy HostsAdd Proxy Host

Pestaña Details

  • Domain Names: netbox.tudominio.com
  • Scheme: http
  • Forward Hostname / IP: netbox
  • Forward Port: 8000
  • Cache Assets: Activado
  • Block Common Exploits: Activado
  • Websockets Support: Activado

Pestaña SSL

  • SSL Certificate: Request a new SSL Certificate
  • Email: tu@email.com
  • Force SSL: Activado
  • HTTP/2 Support: Activado
  • HSTS Enabled: Activado (opcional)
  • HSTS Subdomains: Activado (opcional)
  1. Save

3. Verificar

  • Accede a https://netbox.tudominio.com
  • Verifica el certificado SSL (candado verde)
  • Login con SUPERUSER_EMAIL y SUPERUSER_PASSWORD

Configuración Avanzada (Opcional)

Custom Nginx Configuration

Si necesitas ajustes específicos, ve a Advanced en el Proxy Host:

# Aumentar timeout para operaciones largas
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;

# Headers adicionales
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;

# Buffer size para uploads grandes
client_max_body_size 100M;

Solución de Problemas

502 Bad Gateway

Causa: NetBox no está accesible

Solución:

# Verificar que NetBox está corriendo
docker ps | grep netbox

# Ver logs
docker logs netbox

# Verificar conexión desde NPM
docker exec -it npm ping netbox

Certificado SSL no se genera

Soluciones:

  • Verificar que DNS apunta correctamente: nslookup netbox.tudominio.com
  • Verificar puertos 80/443 abiertos
  • Revisar logs de NPM
  • Intentar con Use a DNS Challenge si tienes firewall

Error de permisos

Si ves errores de permisos en NetBox:

docker exec -it netbox chown -R abc:abc /config
docker restart netbox

Comparación NPM vs Traefik

Característica NPM Traefik
Configuración GUI (más fácil) Código (más flexible)
SSL Automático Manual por host Automático
Múltiples servicios Requiere configurar cada uno Auto-discovery
Wildcards Requiere DNS Challenge Soportado
Middlewares Limitados Extensos

Recomendación:

  • NPM: Si tienes pocos servicios y prefieres GUI
  • Traefik: Si gestionas muchos servicios y quieres automatización

Próximos Pasos

  1. Configuración Inicial - Setup de NetBox
  2. Personalización - LDAP, plugins
  3. Backup - Protege tus datos