Instalación NetBox · 7 min read · Nov 17, 2025

Cómo instalar NetBox, herramienta de documentación y gestión de redes en Ubuntu 18.04 LTS

NetBox es un software de aplicación web gratuito y de código abierto que se puede utilizar para gestionar y documentar redes informáticas. Está diseñado especialmente para gestionar direcciones IP e infraestructura de centros de datos a través de un navegador web. NetBox está escrito en el marco de trabajo Django de Python y utiliza PostgreSQL para la base de datos. Con NetBox, puedes gestionar y documentar fácilmente máquinas virtuales y clústeres, circuitos de datos, conexiones de red, consola y alimentación desde una ubicación central.

En este tutorial, explicaremos cómo instalar NetBox en un servidor Ubuntu 18.04.

Requisitos

  • Un servidor que ejecute Ubuntu 18.04.
  • Una contraseña de root configurada en tu servidor.

Comenzando

Primero, actualiza el paquete de tu sistema a la última versión con el siguiente comando:

apt-get update -y  
apt-get upgrade -y

Una vez que todos los paquetes estén actualizados, reinicia tu sistema para aplicar todos los cambios de configuración.

A continuación, necesitarás instalar las dependencias requeridas para ejecutar NetBox. Puedes instalar todas ellas con el siguiente comando:

apt-get install wget ca-certificates nginx supervisor git gcc python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev unzip -y

Una vez que todas las dependencias estén instaladas, puedes proceder al siguiente paso.

Instalar y configurar PostgreSQL

A continuación, necesitarás instalar PostgreSQL en tu servidor. Por defecto, la última versión de PostgreSQL no está disponible en el repositorio predeterminado de Ubuntu 18.04. Por lo tanto, necesitarás agregar el repositorio de PostgreSQL a tu sistema.

Primero, descarga y agrega la clave GPG con el siguiente comando:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

A continuación, agrega el repositorio con el siguiente comando:

nano /etc/apt/sources.list.d/postgres.list

Agrega la siguiente línea:

deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg main

Guarda y cierra el archivo. Luego, actualiza el repositorio e instala PostgreSQL con el siguiente comando:

apt-get update -y  
apt-get install postgresql postgresql-contrib -y

Una vez instalado, verifica el estado de PostgreSQL con el siguiente comando:

systemctl status postgresql

Deberías ver la siguiente salida:

? postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Wed 2019-08-07 07:00:51 UTC; 23s ago
 Main PID: 13552 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 1098)
   CGroup: /system.slice/postgresql.service

Aug 07 07:00:50 hitesh systemd[1]: Starting PostgreSQL RDBMS...
Aug 07 07:00:51 hitesh systemd[1]: Started PostgreSQL RDBMS.

A continuación, necesitarás crear una base de datos y un usuario para NetBox. Primero, inicia sesión en el shell de PostgreSQL con el siguiente comando:

su - postgres  
postgres@hitesh:~$ psql

Salida:

psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1))
Type "help" for help.

A continuación, crea una base de datos y un usuario para NetBox con el siguiente comando:

postgres=# CREATE DATABASE netbox;  
postgres=# CREATE USER netbox WITH PASSWORD 'password';

A continuación, otorga todos los privilegios a NetBox con el siguiente comando:

postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;

Finalmente, sal del shell de PostgreSQL con el siguiente comando:

postgres=#exit

Una vez que hayas terminado, puedes proceder al siguiente paso.

Instalar y configurar NetBox

Puedes descargar la última versión de NetBox en el directorio /opt con el siguiente comando:

cd /opt  
git clone -b master https://github.com/digitalocean/netbox.git

A continuación, cambia el directorio a netbox y genera la clave SECRETA de Django:

cd /opt/netbox/netbox/netbox/  
./generate_secret_key.py

Deberías ver la clave generada en la siguiente salida:

+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$

A continuación, renombra el archivo de configuración predeterminado con el siguiente comando:

mv configuration.example.py configuration.py

A continuación, abre el archivo de configuración y define los detalles de tu base de datos y la clave secreta:

nano configuration.py

Realiza los siguientes cambios:

#Reemplaza your-server-ip con la dirección IP de tu servidor:
# Ejemplo: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['your-server-ip']

# Configuración de la base de datos PostgreSQL.
DATABASE = {
    'NAME': 'netbox',         # Nombre de la base de datos
    'USER': 'netbox',               # Nombre de usuario de PostgreSQL
    'PASSWORD': 'password',           # Contraseña de PostgreSQL
    'HOST': 'localhost',      # Servidor de la base de datos
    'PORT': '',               # Puerto de la base de datos (dejar en blanco para predeterminado)
}
SECRET_KEY = '+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$'

Guarda y cierra el archivo cuando hayas terminado.

A continuación, instala todas las dependencias requeridas por NetBox con el siguiente comando:

pip3 install -r /opt/netbox/requirements.txt

Una vez instalado, migra la base de datos con el siguiente comando:

cd /opt/netbox/netbox/  
python3 manage.py migrate

Una vez migrado con éxito, deberías ver la siguiente salida:

  Applying secrets.0004_tags... OK
  Applying secrets.0005_change_logging... OK
  Applying secrets.0006_custom_tag_models... OK
  Applying ipam.0021_vrf_ordering... OK
  Applying ipam.0022_tags... OK
  Applying ipam.0023_change_logging... OK
  Applying ipam.0024_vrf_allow_null_rd... OK
  Applying ipam.0025_custom_tag_models... OK
  Applying dcim.0067_device_type_remove_qualifiers... OK
  Applying dcim.0068_rack_new_fields... OK
  Applying dcim.0069_deprecate_nullablecharfield... OK
  Applying dcim.0070_custom_tag_models... OK
  Applying extras.0020_tag_data... OK
  Applying extras.0021_add_color_comments_changelog_to_tag... OK
  Applying dcim.0071_device_components_add_description... OK
  Applying dcim.0072_powerfeeds... OK
  Applying dcim.0073_interface_form_factor_to_type... OK
  Applying extras.0022_custom_links... OK
  Applying extras.0023_fix_tag_sequences... OK
  Applying ipam.0026_prefix_ordering_vrf_nulls_first... OK
  Applying ipam.0027_ipaddress_add_dns_name... OK
  Applying sessions.0001_initial... OK
  Applying taggit.0003_taggeditem_add_unique_index... OK
  Applying users.0001_api_tokens_squashed_0002_unicode_literals... OK
  Applying users.0003_token_permissions... OK

A continuación, necesitarás crear una cuenta de administrador para NetBox. Puedes hacerlo con el siguiente comando:

python3 manage.py createsuperuser

Proporciona tu nombre de usuario y contraseña de administrador y presiona Enter, deberías ver la siguiente salida:

Username (leave blank to use 'root'): netboxadmin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

A continuación, mueve los archivos estáticos y carga los datos iniciales con el siguiente comando:

python3 manage.py collectstatic  
python3 manage.py loaddata initial_data

Instalar y configurar Gunicorn para NetBox

A continuación, necesitarás instalar Gunicorn para NetBox. Puedes instalarlo con el comando pip como se muestra a continuación:

pip3 install gunicorn

A continuación, crea un archivo de configuración de Gunicorn para NetBox con el siguiente comando:

nano /opt/netbox/gunicorn_config.py

Agrega las siguientes líneas:

command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'

Guarda y cierra el archivo cuando hayas terminado.

Configurar Supervisor para NetBox

A continuación, necesitarás configurar Supervisor para gestionar el servicio de NetBox. Puedes hacerlo con el siguiente comando:

nano /etc/supervisor/conf.d/netbox.conf

Agrega las siguientes líneas:

[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data

Guarda y cierra el archivo, luego reinicia el servicio de supervisor y habilítalo para que se inicie después del reinicio del sistema con el siguiente comando:

systemctl restart supervisor  
systemctl enable supervisor

También puedes verificar el servicio de Supervisor con el siguiente comando:

systemctl status supervisor

Salida:

? supervisor.service - Supervisor process control system for UNIX
   Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-08-07 07:13:26 UTC; 8s ago
     Docs: http://supervisord.org
  Process: 15013 ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown (code=exited, status=0/SUCCESS)
 Main PID: 15015 (supervisord)
    Tasks: 5 (limit: 1098)
   CGroup: /system.slice/supervisor.service
           ??15015 /usr/bin/python /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
           ??15037 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
           ??15042 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
           ??15043 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
           ??15044 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi

Aug 07 07:13:26 hitesh systemd[1]: Started Supervisor process control system for UNIX.
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,087 CRIT Supervisor running as root (no user in config file)
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,089 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during parsing
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 INFO RPC interface 'supervisor' initialized
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,117 CRIT Server 'unix_http_server' running without any HTTP authentication check
Aug 07 07:13:27 hitesh supervisord[15015]: 2019-08-07 07:13:27,118 INFO supervisord started with pid 15015
Aug 07 07:13:28 hitesh supervisord[15015]: 2019-08-07 07:13:28,123 INFO spawned: 'netbox' with pid 15037
Aug 07 07:13:29 hitesh supervisord[15015]: 2019-08-07 07:13:29,610 INFO success: netbox entered RUNNING state, process has st

Configurar Nginx para NetBox

A continuación, necesitarás configurar Nginx para acceder a NetBox utilizando el puerto 80. Para hacerlo, crea un archivo de configuración de host virtual con el siguiente comando:

nano /etc/nginx/sites-available/netbox

Agrega las siguientes líneas:

server {
    listen 80;
    server_name your-domain-name;
    client_max_body_size 25m;

    location /static/ {
        alias /opt/netbox/netbox/static/;
    }

    location / {
        proxy_pass http://your-server-ip:8001;
    }
}

Guarda y cierra el archivo. Luego, habilita el host virtual con el siguiente comando:

ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/

Finalmente, reinicia el servicio de Nginx para aplicar todos los cambios de configuración con el siguiente comando:

systemctl restart nginx

Acceder a la interfaz web de NetBox

NetBox ya está instalado y configurado, es hora de acceder a la interfaz web de NetBox.

Abre tu navegador web y escribe la URL http://your-domain.com. Serás redirigido a la siguiente página:

Interfaz de Netbox

Ahora, haz clic en el botón Iniciar sesión en la esquina superior derecha. Deberías ver la siguiente página:

Inicio de sesión de Netbox

Ahora, proporciona tu nombre de usuario y contraseña de administrador, luego haz clic en el botón Iniciar sesión. Deberías ver el panel de control predeterminado de NetBox en la siguiente página:

Panel de control de NetBox

¡Felicidades! has instalado y configurado con éxito NetBox en el servidor Ubuntu 18.04. Ahora puedes gestionar y documentar tu red y direcciones IP desde una ubicación central. No dudes en preguntarme si tienes alguna pregunta.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.