Installation · 7 min read · Nov 19, 2025
Comment installer l'outil de documentation et de gestion de réseau NetBox sur Ubuntu 20.04 LTS

Netbox est un outil gratuit et puissant de gestion d’adresses IP (IPAM) et d’infrastructure de datacenter (DCIM). Il est utilisé pour stocker des informations sur vos réseaux, VMs, inventaires, et bien plus encore. Il a été initialement développé par l’équipe d’ingénierie réseau de DigitalOcean. Cet outil est écrit dans le framework Django Python et repose sur une base de données PostgreSQL. Son objectif est de fonctionner comme une source de vérité spécifique au domaine pour les opérations réseau.
Dans ce tutoriel, nous expliquerons comment installer Netbox avec Nginx comme proxy inverse sur Ubuntu 20.04.
Prérequis
- Un serveur exécutant Ubuntu 20.04.
- Un mot de passe root configuré sur votre serveur.
Prise en main
Avant de commencer, vous devrez installer certaines dépendances requises par Netbox. Vous pouvez les installer toutes en exécutant la commande suivante :
apt-get install nginx git gcc supervisor python3 python3-dev python3-pip python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev -yUne fois tous les paquets installés, vous pouvez passer à l’étape suivante.
Installer et configurer la base de données PostgreSQL
Netbox repose sur la base de données PostgreSQL pour le stockage des données. Vous pouvez l’installer avec la commande suivante :
apt-get install postgresql postgresql-contrib -yUne fois PostgreSQL installé, connectez-vous à PostgreSQL avec la commande suivante :
su - postgres
postgres@ubuntu2004:~$ psqlVous devriez obtenir la sortie suivante :
psql (12.2 (Ubuntu 12.2-4))
Type "help" for help.
Ensuite, créez une base de données et un utilisateur pour Netbox avec la commande suivante :
postgres=# CREATE DATABASE netbox;
postgres=# CREATE USER netbox WITH PASSWORD 'password';Ensuite, accordez tous les privilèges à la base de données Netbox avec la commande suivante :
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;Ensuite, quittez le shell PostgreSQL avec la commande suivante :
postgres=# exit
postgres@ubuntu2004:~$ exitInstaller et configurer NetBox
Tout d’abord, changez le répertoire vers /opt et téléchargez la dernière version de Netbox depuis le dépôt Git Hub en utilisant la commande suivante :
cd /opt/
git clone -b master https://github.com/digitalocean/netbox.gitEnsuite, créez un lien symbolique du binaire Python avec la commande suivante :
ln -s /usr/bin/python3 /usr/bin/pythonEnsuite, changez le répertoire vers /opt/netbox/netbox/ et générez la clé secrète Django en exécutant la commande suivante :
cd /opt/netbox/netbox/
./generate_secret_key.pyVous devriez obtenir la sortie suivante :
wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z
Ensuite, changez le répertoire vers netbox et renommez le fichier de configuration exemple :
cd netbox
mv configuration.example.py configuration.pyEnsuite, éditez le fichier de configuration de Netbox et définissez votre base de données, clé secrète et hôtes autorisés :
nano configuration.pyFaites les modifications suivantes :
ALLOWED_HOSTS = ['your-server-ip']
# Configuration de la base de données PostgreSQL. Consultez la documentation Django pour une liste complète des paramètres disponibles :
# https://docs.djangoproject.com/en/stable/ref/settings/#databases
DATABASE = {
'NAME': 'netbox', # Nom de la base de données
'USER': 'netbox', # Nom d'utilisateur PostgreSQL
'PASSWORD': 'password', # Mot de passe PostgreSQL
'HOST': 'localhost', # Serveur de base de données
'PORT': '', # Port de la base de données (laisser vide pour par défaut)
'CONN_MAX_AGE': 300, # Âge max de la connexion à la base de données
}
SECRET_KEY = 'wcq@L2)eTDpo(k^f4Sm9bariUnK0syCPMGEIjW6XV_8l5xhB7z'
Enregistrez et fermez le fichier, puis installez toutes les dépendances Python avec la commande suivante :
pip3 install -r /opt/netbox/requirements.txtEnsuite, migrez la base de données avec la commande suivante :
cd /opt/netbox/netbox/
python3 manage.py migrateEnsuite, créez un utilisateur administratif Netbox avec la commande suivante :
python3 manage.py createsuperuserOn vous demandera de fournir un nom d’utilisateur et un mot de passe comme indiqué ci-dessous :
Username (leave blank to use 'root'): netboxadmin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.
Ensuite, collectez le fichier statique avec la commande suivante :
python3 manage.py collectstaticVous devriez voir la sortie suivante :
976 static files copied to '/opt/netbox/netbox/static'.
Installer et configurer Gunicorn
Netbox est une application basée sur Django. Vous devrez donc installer Gunicorn sur votre système. Vous pouvez l’installer en exécutant la commande suivante :
pip3 install gunicornAprès avoir installé Gunicorn, créez un nouveau fichier de configuration Gunicorn pour Netbox avec la commande suivante :
nano /opt/netbox/gunicorn_config.pyAjoutez les lignes suivantes :
command = '/usr/local/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = 'your-server-ip:8001'
workers = 3
user = 'www-data'
Enregistrez et fermez le fichier lorsque vous avez terminé.
Installer et configurer Supervisor
Supervisor est un système client/serveur qui vous permet de surveiller et de contrôler le service NetBox. Vous pouvez créer un nouveau fichier de configuration Supervisor pour Netbox avec la commande suivante :
nano /etc/supervisor/conf.d/netbox.confAjoutez les lignes suivantes :
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Supervisor avec la commande suivante :
systemctl restart supervisorVous pouvez également vérifier l’état du service Supervisor en utilisant la commande suivante :
systemctl status supervisorVous devriez obtenir la sortie suivante :
? supervisor.service - Système de contrôle de processus Supervisor pour UNIX
Loaded: loaded (/lib/systemd/system/supervisor.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2020-05-30 05:49:08 UTC; 14s ago
Docs: http://supervisord.org
Main PID: 550606 (supervisord)
Tasks: 5 (limit: 4691)
Memory: 184.3M
CGroup: /system.slice/supervisor.service
??550606 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
??550626 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
??550628 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
??550629 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
??550630 /usr/bin/python3 /usr/local/bin/gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
May 30 05:49:08 ubuntu2004 systemd[1]: Started Supervisor process control system for UNIX.
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 CRIT Supervisor is running as root. Privileges were not dropped because>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,664 INFO Included extra file "/etc/supervisor/conf.d/netbox.conf" during p>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 INFO RPC interface 'supervisor' initialized
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,671 CRIT Server 'unix_http_server' running without any HTTP authentication>
May 30 05:49:08 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:08,672 INFO supervisord started with pid 550606
May 30 05:49:09 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:09,676 INFO spawned: 'netbox' with pid 550626
May 30 05:49:11 ubuntu2004 supervisord[550606]: 2020-05-30 05:49:11,060 INFO success: netbox entered RUNNING state, process has stayed up for
Configurer Nginx pour NetBox
Il est judicieux de configurer Nginx comme proxy inverse pour accéder à Netbox sur le port 80. Vous pouvez créer une nouvelle configuration d’hôte virtuel Nginx en utilisant la commande suivante :
nano /etc/nginx/sites-available/netbox.confAjoutez les lignes suivantes :
server {
listen 80;
server_name your-server-ip;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://your-server-ip:8001;
}
}
Enregistrez et fermez le fichier. Ensuite, créez un lien symbolique vers le répertoire /etc/nginx/sites-enabled/ :
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/Ensuite, vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :
ginx -tSi tout va bien, vous devriez obtenir la sortie suivante :
ginx: the configuration file /etc/nginx/nginx.conf syntax is ok
ginx: configuration file /etc/nginx/nginx.conf test is successful
Enfin, redémarrez le service Nginx pour appliquer les modifications.
systemctl restart nginxVous pouvez également vérifier Nginx avec la commande suivante :
systemctl status nginxVous devriez obtenir la sortie suivante :
? nginx.service - Le serveur HTTP et proxy inverse nginx
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Sat 2020-05-30 22:28:13 EST; 4min 14s ago
Process: 984 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 982 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 985 (nginx)
Tasks: 3 (limit: 25028)
Memory: 5.5M
CGroup: /system.slice/nginx.service
??985 nginx: master process /usr/sbin/nginx
??986 nginx: worker process
??987 nginx: worker process
May 30 21:28:12 ubuntu2004 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 30 21:28:12 ubuntu2004 nginx[982]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 30 21:28:13 ubuntu2004 systemd[1]: Started The nginx HTTP and reverse proxy server.
À ce stade, le serveur web Nginx est configuré pour servir Netbox sur le port 80. Vous pouvez maintenant accéder à l’interface web de Netbox.
Accéder à l’interface web de Netbox
Ouvrez votre navigateur web et visitez l’URL http://your-server-ip. Vous serez redirigé vers la page suivante :

Cliquez sur le bouton Se connecter. Vous devriez voir la page de connexion de Netbox à l’écran suivant :

Fournissez votre nom d’utilisateur admin Netbox, votre mot de passe, et cliquez sur le bouton connexion. Vous devriez voir le tableau de bord par défaut de Netbox à la page suivante :

Conclusion
Dans ce guide, vous avez appris comment installer Netbox sur Ubuntu 20.04 avec Nginx. Vous pouvez maintenant commencer à documenter votre infrastructure réseau. Pour plus d’informations, visitez la documentation officielle de Netbox. N’hésitez pas à me poser des questions si vous en avez.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.