Installazione software · 11 min read · Oct 31, 2025

Come installare NetBox IRM su Debian 12

NetBox è un Modello di Risorse Infrastrutturali (IRM) progettato per l’automazione della rete e l’ingegneria delle infrastrutture. Inizialmente, è stato creato dal team di DigitalOcean ed è ora diventato un progetto open-source rilasciato sotto la Licenza Apache 2. NetBox è stato creato nel framework web Python Django con PostgreSQL come database predefinito, e l’installazione di NetBox è abbastanza simile ad altre applicazioni web Python Django.

In questa guida, ti mostreremo come installare il software NetBox IRM su un server Debian 12 passo dopo passo. Ti mostreremo l’installazione di NetBox con PostgreSQL come server database e Apache2 come server web utilizzato come reverse proxy. Inoltre, proteggerai la tua installazione di NetBox con certificati SSl/TLS.

Prerequisiti

Prima di procedere, assicurati di avere quanto segue:

  • Un server Debian 12.
  • Un utente non root con privilegi di amministratore.
  • Un nome di dominio pubblico o locale puntato all’indirizzo IP del server.

Installazione delle dipendenze

NetBox è un’applicazione web basata sul framework web Python Django. Può essere installato con il server database PostgreSQL e il server Redis per la gestione della cache.

Nel passaggio seguente, installerai quelle dipendenze di cui NetBox ha bisogno, installerai anche il server web Apache2 che sarà utilizzato come reverse proxy per la tua installazione di NetBox.

Per iniziare, esegui il seguente comando apt per aggiornare il tuo repository Debian.

sudo apt update

update repo

Quindi, installa le dipendenze dei pacchetti per la tua installazione di NetBox IRM.

sudo apt install apache2 postgresql postgresql-common libpq-dev redis-server git python3 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev  libssl-dev zlib1g-dev

Digita y per procedere con l’installazione delle dipendenze come il server web Apache2, il server database PostgreSQL, Redis, Git, i pacchetti Python3 e alcune librerie di sistema aggiuntive.

install dependencies

Dopo che le dipendenze sono state installate, verifica ciascuna dipendenza eseguendo il comando qui sotto.

Verifica il servizio apache2 per assicurarti che il servizio sia abilitato e in esecuzione.

sudo systemctl is-enabled apache2  
sudo systemctl status apache2

Se apache2 è in esecuzione e abilitato, dovresti ottenere un output simile al seguente:

check apache2

Verifica il servizio PostgreSQL per assicurarti che il servizio sia in esecuzione e abilitato.

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

Il servizio PostgreSQL dovrebbe essere in esecuzione e abilitato in questo modo:

check postgresql

Ora verifica il servizio Redis per assicurarti che il servizio sia in esecuzione e abilitato.

sudo systemctl is-enabled redis  
sudo systemctl status redis

Il servizio Redis dovrebbe essere in esecuzione e abilitato come segue

check redis

Infine, verifica la versione di Python utilizzando il comando qui sotto. L’ultima versione di NetBox IRM supporta Python v3.9, 3.10 e 3.11.

python3 --version

Dovresti vedere Python 3.11 installato sulla tua macchina Debian.

Configurazione del server PostgreSQL

Dopo aver installato le dipendenze, creerai un nuovo database PostgreSQL e un utente che NetBox utilizzerà. Per fare ciò, devi accedere al server PostgreSQL tramite la riga di comando psql.

Accedi al server PostgreSQL eseguendo il comando qui sotto.

sudo -u postgres psql

Esegui le seguenti query per creare un nuovo utente netbox con password p4ssw0rd. Quindi, crea un nuovo database netboxdb con il proprietario netbox.

CREATE USER netbox LOGIN CREATEDB PASSWORD 'p4ssw0rd';  
CREATE DATABASE netboxdb OWNER netbox;

create database user

Dopo di che, verifica l’elenco degli utenti e dei database sul tuo PostgreSQL eseguendo il comando qui sotto.

\l  
\du

Dovresti vedere il database netboxdb e l’utente netbox creati sul tuo server PostgreSQL.

check database user

Digita quit per uscire dal server PostgreSQL.

Successivamente, accedi a PostgreSQL utilizzando il nuovo utente netbox al database netboxdb. Questo garantirà che l’utente netbox possa connettersi al database netboxdb.

sudo -u postgres psql --username netbox --password --host localhost netboxdb

Una volta connesso, verifica la tua connessione utilizzando la seguente query.

\conninfo

Nell’output seguente, dovresti vedere che ti sei connesso al database netboxdb tramite l’utente netbox.

verify connection

Digita di nuovo quit per uscire dal tuo server PostgreSQL.

Configurazione del server Redis

Con il database PostgreSQL e l’utente creati, il passaggio successivo è configurare il tuo server Redis che sarà utilizzato come gestione della cache per NetBox. Per fare ciò, modificherai la configurazione di Redis /etc/redis/redis.conf e verificherai le tue modifiche tramite redis-cli.

Apri la configurazione predefinita di Redis /etc/redis/redis.conf utilizzando il seguente comando dell’editor nano.

sudo nano /etc/redis/redis.conf

Decommenta l’opzione requirepass e inserisci la tua password che sarà utilizzata per proteggere il tuo server Redis.

requirepass p4ssw0rdNetBox

Quando hai finito, salva e esci dal file.

Ora esegui il seguente comando systemctl per riavviare il servizio redis e applicare le modifiche che hai effettuato.

sudo systemctl restart redis

Per assicurarti che tutto funzioni, puoi verificare Redis tramite redis-cli. Accedi al tuo server Redis utilizzando il comando redis-cli qui sotto.

redis-cli

Autenticati al server Redis utilizzando la seguente query AUTH e assicurati di cambiare la password.

AUTH p4ssw0rdNetBox

Una volta autenticato, dovresti ottenere l’output OK.

Ora esegui la query PING qui sotto per assicurarti che la tua connessione sia riuscita.

PING

Se ha successo, dovresti ottenere l’output PONG dal server Redis.

configure redis

Installazione di NetBox IRM

Nella sezione seguente, scaricherai e installerai NetBox IRM sul tuo sistema. Scaricherai il codice sorgente di NetBox tramite Git, quindi lo configurerai modificando la configurazione di NetBox, aggiungendo il server database PostgreSQL e Redis, e poi creerai anche un utente amministratore per NetBox.

Per prima cosa, esegui il comando qui sotto per creare un nuovo utente systemd netbox che sarà utilizzato per eseguire l’installazione di NetBox.

sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netbox

Scarica il codice sorgente di NetBox IRM tramite git e cambia la proprietà della directory /opt/netbox all’utente netbox.

cd /opt; sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git  
sudo chown -R netbox:netbox /opt/netbox

create user download netbox

Successivamente, sposta la tua directory di lavoro in /opt/netbox e genera la chiave segreta di NetBox tramite lo script generate_secret_key.py. Assicurati di copiare la chiave segreta generata che sarà utilizzata per la tua installazione di NetBox.

cd /opt/netbox/netbox/netbox  
sudo -u netbox python3 ../generate_secret_key.py

Copia la configurazione predefinita configuration_example.py in configuration.py, quindi apri il nuovo file configuration.py utilizzando il seguente comando dell’editor nano.

sudo -u netbox cp configuration_example.py configuration.py  
sudo -u netbox nano configuration.py

All’interno della sezione ALLOWED_HOSTS, aggiungi il tuo nome di dominio o l’indirizzo IP del tuo server.

ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.15']

Inserisci i dettagli del tuo database PostgreSQL nella sezione DATABASE, inclusi il nome del database, l’utente, la password, l’host e la porta.

# configurazione del database  
DATABASE = {  
    'NAME': 'netboxdb',               # Nome del database  
    'USER': 'netbox',               # Nome utente PostgreSQL  
    'PASSWORD': 'p4ssw0rd', # Password PostgreSQL  
    'HOST': 'localhost',            # Server database  
    'PORT': '',                     # Porta database (lascia vuoto per predefinito)  
    'CONN_MAX_AGE': 300,            # Massima età della connessione al database (secondi)  
}

All’interno della sezione REDIS, inserisci i dettagli del tuo server Redis sia per le attività che per le opzioni di caching.

# configurazione della cache Redis  
REDIS = {  
    'tasks': {  
        'HOST': 'localhost',      # Server Redis  
        'PORT': 6379,             # Porta Redis  
        'PASSWORD': 'p4ssw0rdNetBox',           # Password Redis (opzionale)  
        'DATABASE': 0,            # ID database  
        'SSL': False,             # Usa SSL (opzionale)  
    },  
    'caching': {  
        'HOST': 'localhost',  
        'PORT': 6379,  
        'PASSWORD': 'p4ssw0rdNetBox',  
        'DATABASE': 1,            # ID unico per il secondo database  
        'SSL': False,  
    }  
}

Infine, inserisci la tua chiave segreta nella sezione SECRET_KEY.

# Chiave segreta  
SECRET_KEY = 'ZjYbgz$)j!NnqJcZLR!NB2BCz4(Yyk=o^Xr(1sTIrM)ZyiE%nk'

Quando hai finito, salva e esci dal file.

Successivamente, esegui lo script /opt/netbox/upgrade.sh per avviare la tua installazione di NextBox. Questo creerà un nuovo ambiente virtuale Python, installerà alcuni pacchetti e librerie Python, eseguirà la migrazione del database al tuo server PostgreSQL, genererà anche file statici per NextBox.

sudo -u netbox /opt/netbox/upgrade.sh

Di seguito è riportato l’output simile che otterrai durante il processo.

netbox installation

Il processo di migrazione del database.

database migration

Generazione dei file statici.

generate static files

Di seguito è riportato l’output quando l’installazione è terminata.

installation finished

Dopo che NetBox è stato configurato, creerai un utente amministratore per NetBox. Per fare ciò, accedi all’ambiente virtuale Python che è stato creato utilizzando il seguente comando.

source /opt/netbox/venv/bin/activate

Spostati nella directory /opt/netbox/netbox ed esegui lo script manage.py per creare un utente amministratore di NetBox.

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

Quando richiesto, inserisci il tuo indirizzo email amministrativo, nome utente e dettagli della password.

create superuser

Successivamente, esegui di nuovo manage.py per verificare la tua installazione di NetBox. Con questo, eseguirai NetBox sul tuo indirizzo IP locale con la porta 8000.

python3 manage.py runserver 0.0.0.0:8000 --insecure

running netbox

Apri il tuo browser web e visita l’indirizzo IP del tuo server seguito dalla porta 8000, come http://192.168.10.15:8000/. Se la tua installazione ha avuto successo, dovresti ottenere la pagina indice di NetBox IRM, e da lì, fai clic sul pulsante Login in alto a destra.

NETBOX HOME

Inserisci il tuo utente amministratore e la password che hai creato, quindi fai clic su Sign In.

LOGIN NETBOX

Se tutto va bene, dovresti ottenere il dashboard di NetBox come segue:

netbox daSHBOARD

Torna al tuo terminale e premi Ctrl+c per terminare il processo.

Esecuzione di NetBox come servizio Systemd

A questo punto, hai installato NetBox IRM sulla tua macchina Debian. Per renderti più facile gestire NetBox, eseguirai NetBox come servizio systemd, che ti consente di controllare NetBox tramite l’utilità systemctl.

Copia il file /opt/netbox/contrib/gunicorn.py in /opt/netbox/gunicorn.py, quindi apri il file gunicorn.py utilizzando il comando dell’editor nano qui sotto.

sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py  
sudo -u netbox nano /opt/netbox/gunicorn.py

Cambia l’opzione bind in questo modo. Questo eseguirà la tua installazione di NetBox sulla porta 8001 di localhost tramite gunicorn.

bind = '127.0.0.1:8001'

Salva e chiudi il file quando hai finito.

Successivamente, copia i file di servizio systemd per NetBox nella directory /etc/systemd/system/. Questo copierà il file di servizio netbox, netbor-rq e netbook-housekeeping nella directory /etc/systemd/system/. Quindi, ricarica il gestore systemd per applicare le nuove modifiche al tuo sistema.

sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/  
sudo systemctl daemon-reload

Ora puoi avviare e abilitare sia il servizio netbox che il servizio netbox-rq utilizzando il comando systemctl qui sotto. Dopo aver eseguito il comando, la tua installazione di NetBox sarà in esecuzione in background come servizio systemd.

sudo systemctl start netbox netbox-rq netbox-housekeeping  
sudo systemctl enable netbox netbox-rq netbox-housekeeping

Infine, verifica entrambi i servizi netbox e netbox-rq utilizzando il seguente comando.

sudo systemctl status netbox  
sudo systemctl status netbox-rq

Il seguente output indica che il servizio netbox è in esecuzione e abilitato.

check netbox

L’output qui sotto conferma che il servizio netbox-rq è in esecuzione e abilitato.

netbox rq

Configurazione di Apache come reverse proxy

Nel passaggio seguente, configurerai Apache2 come reverse proxy. Prima di ciò, assicurati di avere un nome di dominio puntato al tuo indirizzo IP del server, puoi anche utilizzare un nome di dominio locale.

Se stai utilizzando un dominio locale, puoi eseguire il seguente comando openssl per generare certificati SSL. Se stai utilizzando il dominio pubblico, puoi utilizzare Certbot per generare certificati SSL da Letsencrypt.

openssl req -x509 -newkey rsa:4096 -sha256 -days 365 \  
  -nodes -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt -subj "/CN=netbox.howtoforge.local" \  
  -addext "subjectAltName=DNS:netbox.howtoforge.local,IP:192.168.10.15"

Ora copia l’esempio di configurazione del virtual host di Apache per NetBox in /etc/apache2/sites-available/netbox.conf. Quindi, modifica il file /etc/apache2/sites-available/netbox.conf utilizzando il seguente comando dell’editor nano.

sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf  
sudo nano /etc/apache2/sites-available/netbox.conf

Cambia il nome di dominio con il tuo dominio e cambia il percorso dei certificati SSL/TLS con il percorso del file corretto.

  
    # CAMBIA QUESTO CON IL NOME DEL TUO SERVER  
    ServerName netbox.howtoforge.local  
  
    ...  
  
  
  
    ProxyPreserveHost On  
  
    # CAMBIA QUESTO CON IL NOME DEL TUO SERVER  
    ServerName netbox.howtoforge.local  
  
    SSLEngine on  
    SSLCertificateFile /etc/ssl/certs/netbox.crt  
    SSLCertificateKeyFile /etc/ssl/private/netbox.key  
  
    ...  

Salva e chiudi il file quando hai finito.

Ora esegui il seguente comando per abilitare alcuni moduli Apache2 necessari per NetBox.

sudo a2enmod ssl proxy proxy_http headers rewrite

Dopo di che, esegui il seguente comando per attivare il file del virtual host netbox.conf e verifica le tue configurazioni Apache2 per assicurarti di avere una sintassi corretta.

sudo a2ensite netbox.conf  
sudo apachectl configtest

Se hai una sintassi Apache2 corretta, dovresti ottenere l’output Syntax OK.

apache2 netbox

Ora esegui il seguente comando per riavviare il servizio Apache2 e applicare le modifiche che hai effettuato.

sudo systemctl restart apache2

La tua installazione di NetBox dovrebbe essere accessibile tramite il nome di dominio.

Apri il tuo browser web e visita il nome di dominio della tua installazione di NetBox, come https://netbox.howtoforge.local/. Se tutto va bene, dovresti vedere la pagina indice di NetBox come segue:

netbox home

Dopo aver effettuato il login, dovresti vedere il dashboard di NetBox IRM in esecuzione con il nome di dominio sotto il reverse proxy Apache2.

netbox dashboard

Conclusione

In conclusione, hai ora installato NetBox IRM sul server Debian 12 con il server database PostgreSQL e il server web Apache2 utilizzato come reverse proxy. Hai anche protetto la tua installazione di NetBox tramite certificati SSL/TLS.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.