5
Home
groales edited this page 2025-12-04 11:28:13 +01:00

NetBox Wiki

Documentación completa para el despliegue y gestión de NetBox con Docker.

📑 Índice

Inicio Rápido

Modos de Despliegue

  • Traefik - Proxy inverso con SSL automático
  • NPM - Nginx Proxy Manager

Configuración y Uso


¿Qué es NetBox?

NetBox es una solución IPAM (IP Address Management) y DCIM (Data Center Infrastructure Management) de código abierto diseñada específicamente para equipos de red y data centers.

Características Principales

  • 📊 IPAM Completo: Gestión de IPs, VLANs, VRFs, prefijos
  • 🖥️ DCIM: Inventario de racks, dispositivos, cables, conexiones
  • 🔌 Gestión de Circuitos: Proveedores, circuitos, conexiones WAN
  • 📝 Documentación Rica: Custom fields, tags, journaling
  • 🔗 API REST Completa: Integración con sistemas externos
  • 🔐 Multi-tenancy: Soporte para múltiples organizaciones
  • 📈 Reportes: Visualización y exportación de datos
  • 🔄 Webhooks: Automatización y notificaciones en tiempo real

Casos de Uso

  • Gestión de IPs: Planificación y asignación de direcciones IPv4/IPv6
  • Inventario de Red: Documentar switches, routers, firewalls
  • Gestión de Data Center: Racks, PDUs, cables, patch panels
  • Documentación: Single source of truth para infraestructura
  • Automatización: Integración con Ansible, Terraform, scripts

Inicio Rápido

Requisitos

  • Docker Engine
  • Portainer (recomendado)
  • Red proxy creada
  • PostgreSQL 18 y Redis (incluidos en el compose)

Generar Contraseñas

ANTES de desplegar, genera 3 contraseñas seguras:

# DB_PASSWORD (PostgreSQL)
openssl rand -base64 32

# REDIS_PASSWORD
openssl rand -base64 32

# SUPERUSER_PASSWORD (admin de NetBox)
openssl rand -base64 32

⚠️ Importante: Si las contraseñas contienen caracteres especiales ($, !, etc.), usa comillas simples en el .env:

DB_PASSWORD='tu_password_con_$_especiales'

Despliegue Básico

  1. Crea el stack en Portainer con Git Repository:

    • URL: https://git.ictiberia.com/groales/netbox
    • Compose path: docker-compose.yml
  2. Añade variables de entorno:

    DB_PASSWORD=password_generado_1
    REDIS_PASSWORD=password_generado_2
    SUPERUSER_EMAIL=admin@example.com
    SUPERUSER_PASSWORD=password_generado_3
    
  3. Deploy y espera 1-2 minutos (NetBox inicializa la BD)

  4. Accede y configura según tu proxy inverso:

    • Traefik: https://netbox.tudominio.com
    • NPM: Configura Proxy Host primero
    • Login: Username admin + password de SUPERUSER_PASSWORD

Arquitectura

┌─────────────────────────────────────────────────┐
│          Traefik / NPM (Proxy)                  │
│              HTTPS / SSL                        │
└────────────────┬────────────────────────────────┘
                 │
       ┌─────────▼──────────┐
       │      NetBox        │  Puerto 8000
       │  (LinuxServer)     │
       └─┬────────────────┬─┘
         │                │
    ┌────▼─────┐    ┌────▼──────┐
    │PostgreSQL│    │   Redis   │
    │    18    │    │     7     │
    └──────────┘    └───────────┘
     (Base Datos)     (Caché)

Componentes

  • NetBox: Aplicación Django (puerto 8000)
  • PostgreSQL 18: Base de datos principal
  • Redis 7: Caché y mensajería
  • Proxy: Traefik o NPM para HTTPS

Volúmenes

  • netbox_config: Configuración, media, scripts
  • netbox_db: Base de datos PostgreSQL

Redis (Caché en tmpfs)

Redis utiliza tmpfs (RAM) en lugar de volumen persistente:

  • Más rápido: Acceso directo a RAM
  • 🔒 Contraseña requerida: Seguridad defense-in-depth
  • No persistente: Caché se regenera automáticamente
  • 💾 No requiere backup: Solo almacena sesiones y tareas temporales

Próximos Pasos

  1. Elige tu modo de despliegue:

    • Traefik - Recomendado para múltiples servicios
    • NPM - Más simple para configurar
  2. Configura NetBox:

  3. Protege tus datos:

  4. Mantén actualizado:


Recursos Oficiales