Installazione software · 7 min read · Nov 17, 2025

Come installare NetBox, strumento di documentazione e gestione della rete su Ubuntu 18.04 LTS

NetBox è un software web gratuito e open source che può essere utilizzato per gestire e documentare reti informatiche. È progettato specificamente per gestire indirizzi IP e infrastrutture di data center tramite un browser web. NetBox è scritto nel framework Django Python e utilizza PostgreSQL per il database. Con NetBox, puoi facilmente gestire e documentare macchine virtuali e cluster, circuiti dati, connessioni di rete, console e alimentazione da una posizione centrale.

In questo tutorial, spiegheremo come installare NetBox su un server Ubuntu 18.04.

Requisiti

  • Un server che esegue Ubuntu 18.04.
  • Una password di root impostata sul tuo server.

Iniziare

Per prima cosa, aggiorna il pacchetto del tuo sistema all’ultima versione con il seguente comando:

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

Una volta aggiornati tutti i pacchetti, riavvia il sistema per applicare tutte le modifiche di configurazione.

Successivamente, dovrai installare le dipendenze necessarie per eseguire NetBox. Puoi installarle tutte con il seguente 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 volta installate tutte le dipendenze, puoi procedere al passaggio successivo.

Installa e configura PostgreSQL

Successivamente, dovrai installare PostgreSQL sul tuo server. Per impostazione predefinita, l’ultima versione di PostgreSQL non è disponibile nel repository predefinito di Ubuntu 18.04. Quindi, dovrai aggiungere il repository di PostgreSQL al tuo sistema.

Per prima cosa, scarica e aggiungi la chiave GPG con il seguente comando:

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

Successivamente, aggiungi il repository con il seguente comando:

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

Aggiungi la seguente riga:

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

Salva e chiudi il file. Quindi, aggiorna il repository e installa PostgreSQL con il seguente comando:

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

Una volta installato, controlla lo stato di PostgreSQL con il seguente comando:

systemctl status postgresql

Dovresti vedere il seguente output:

? 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.

Successivamente, dovrai creare un database e un utente per NetBox. Prima, accedi alla shell di PostgreSQL con il seguente comando:

su - postgres  
postgres@hitesh:~$ psql

Output:

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

Successivamente, crea un database e un utente per NetBox con il seguente comando:

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

Successivamente, concedi tutti i privilegi a NetBox con il seguente comando:

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

Infine, esci dalla shell di PostgreSQL con il seguente comando:

postgres=#exit

Una volta completato, puoi procedere al passaggio successivo.

Installa e configura NetBox

Puoi scaricare l’ultima versione di NetBox nella directory /opt con il seguente comando:

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

Successivamente, cambia la directory in netbox e genera la chiave segreta di Django:

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

Dovresti vedere la chiave generata nel seguente output:

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

Successivamente, rinomina il file di configurazione predefinito con il seguente comando:

mv configuration.example.py configuration.py

Successivamente, apri il file di configurazione e definisci i dettagli del tuo database e la chiave segreta:

nano configuration.py

Apporta le seguenti modifiche:

#Sostituisci your-server-ip con l'indirizzo IP del tuo server:
# Esempio: ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['your-server-ip']

# Configurazione del database PostgreSQL.
DATABASE = {
    'NAME': 'netbox',         # Nome del database
    'USER': 'netbox',               # Nome utente PostgreSQL
    'PASSWORD': 'password',           # Password PostgreSQL
    'HOST': 'localhost',      # Server del database
    'PORT': '',               # Porta del database (lascia vuoto per predefinito)
}
SECRET_KEY = '+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$'

Salva e chiudi il file quando hai finito.

Successivamente, installa tutte le dipendenze richieste da NetBox con il seguente comando:

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

Una volta installato, migra il database con il seguente comando:

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

Una volta migrato con successo, dovresti vedere il seguente output:

  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

Successivamente, dovrai creare un account amministratore per NetBox. Puoi farlo con il seguente comando:

python3 manage.py createsuperuser

Fornisci il tuo nome utente e password di amministratore e premi Invio, dovresti vedere il seguente output:

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

Successivamente, sposta i file statici e carica i dati iniziali con il seguente comando:

python3 manage.py collectstatic  
python3 manage.py loaddata initial_data

Installa e configura Gunicorn per NetBox

Successivamente, dovrai installare Gunicorn per NetBox. Puoi installarlo con il comando pip come mostrato di seguito:

pip3 install gunicorn

Successivamente, crea un file di configurazione di Gunicorn per NetBox con il seguente comando:

nano /opt/netbox/gunicorn_config.py

Aggiungi le seguenti righe:

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

Salva e chiudi il file quando hai finito.

Configura Supervisor per NetBox

Successivamente, dovrai configurare Supervisor per gestire il servizio NetBox. Puoi farlo con il seguente comando:

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

Aggiungi le seguenti righe:

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

Salva e chiudi il file, quindi riavvia il servizio supervisor e abilitalo per avviarsi dopo il riavvio del sistema con il seguente comando:

systemctl restart supervisor  
systemctl enable supervisor

Puoi anche verificare il servizio Supervisor con il seguente comando:

systemctl status supervisor

Output:

? 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

Configura Nginx per NetBox

Successivamente, dovrai configurare Nginx per accedere a NetBox utilizzando la porta 80. Per farlo, crea un file di configurazione del virtual host con il seguente comando:

nano /etc/nginx/sites-available/netbox

Aggiungi le seguenti righe:

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;
    }
}

Salva e chiudi il file. Quindi, abilita il virtual host con il seguente comando:

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

Infine, riavvia il servizio Nginx per applicare tutte le modifiche di configurazione con il seguente comando:

systemctl restart nginx

Accedi all’interfaccia web di NetBox

NetBox è ora installato e configurato, è tempo di accedere all’interfaccia web di NetBox.

Apri il tuo browser web e digita l’URL http://your-domain.com. Verrai reindirizzato alla seguente pagina:

Interfaccia Netbox

Ora, fai clic sul pulsante Accedi nell’angolo in alto a destra. Dovresti vedere la seguente pagina:

Accesso Netbox

Ora, fornisci il tuo nome utente e password di amministratore, quindi fai clic sul pulsante Accedi. Dovresti vedere il dashboard predefinito di NetBox nella seguente pagina:

Dashboard NetBox

Congratulazioni! hai installato e configurato con successo NetBox sul server Ubuntu 18.04. Ora puoi gestire e documentare la tua rete e gli indirizzi IP da una posizione centrale. Sentiti libero di chiedermi se hai domande.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.