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

NetBox est un logiciel d’application web gratuit et open source qui peut être utilisé pour gérer et documenter des réseaux informatiques. Il est spécialement conçu pour gérer les adresses IP et l’infrastructure des centres de données via un navigateur web. NetBox est écrit dans le framework Python Django et utilise PostgreSQL pour la base de données. Avec NetBox, vous pouvez facilement gérer et documenter des machines virtuelles et des clusters, des circuits de données, des connexions réseau, de console et d’alimentation depuis un emplacement central.
Dans ce tutoriel, nous allons expliquer comment installer NetBox sur un serveur Ubuntu 18.04.
Exigences
- Un serveur exécutant Ubuntu 18.04.
- Un mot de passe root configuré sur votre serveur.
Prise en main
Tout d’abord, mettez à jour le package de votre système à la dernière version avec la commande suivante :
apt-get update -y
apt-get upgrade -yUne fois tous les packages mis à jour, redémarrez votre système pour appliquer tous les changements de configuration.
Ensuite, vous devrez installer les dépendances requises pour exécuter NetBox. Vous pouvez toutes les installer avec la commande suivante :
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 -yUne fois toutes les dépendances installées, vous pouvez passer à l’étape suivante.
Installer et configurer PostgreSQL
Ensuite, vous devrez installer PostgreSQL sur votre serveur. Par défaut, la dernière version de PostgreSQL n’est pas disponible dans le dépôt par défaut d’Ubuntu 18.04. Vous devrez donc ajouter le dépôt PostgreSQL à votre système.
Tout d’abord, téléchargez et ajoutez la clé GPG avec la commande suivante :
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -Ensuite, ajoutez le dépôt avec la commande suivante :
nano /etc/apt/sources.list.d/postgres.listAjoutez la ligne suivante :
deb http://apt.postgresql.org/pub/repos/apt/ xanial-pgdg mainEnregistrez et fermez le fichier. Ensuite, mettez à jour le dépôt et installez PostgreSQL avec la commande suivante :
apt-get update -y
apt-get install postgresql postgresql-contrib -yUne fois installé, vérifiez l’état de PostgreSQL avec la commande suivante :
systemctl status postgresqlVous devriez voir la sortie suivante :
? 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.
Ensuite, vous devrez créer une base de données et un utilisateur pour NetBox. Tout d’abord, connectez-vous à l’interface en ligne de commande de PostgreSQL avec la commande suivante :
su - postgres
postgres@hitesh:~$ psqlSortie :
psql (11.4 (Ubuntu 11.4-1.pgdg18.04+1))
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 à NetBox avec la commande suivante :
postgres=# GRANT ALL PRIVILEGES ON DATABASE netbox TO netbox;Enfin, quittez l’interface en ligne de commande de PostgreSQL avec la commande suivante :
postgres=#exitUne fois que vous avez terminé, vous pouvez passer à l’étape suivante.
Installer et configurer NetBox
Vous pouvez télécharger la dernière version de NetBox dans le répertoire /opt avec la commande suivante :
cd /opt
git clone -b master https://github.com/digitalocean/netbox.gitEnsuite, changez de répertoire pour netbox et générez la clé secrète Django :
cd /opt/netbox/netbox/netbox/
./generate_secret_key.pyVous devriez voir la clé générée dans la sortie suivante :
+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$Ensuite, renommez le fichier de configuration par défaut avec la commande suivante :
mv configuration.example.py configuration.pyEnsuite, ouvrez le fichier de configuration et définissez les détails de votre base de données et la clé secrète :
nano configuration.pyApportez les modifications suivantes :
#Remplacez your-server-ip par l'adresse IP de votre serveur :
# Exemple : ALLOWED_HOSTS = ['netbox.example.com', 'netbox.internal.local']
ALLOWED_HOSTS = ['your-server-ip']
# Configuration de la base de données PostgreSQL.
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)
}
SECRET_KEY = '+XHR3o&7K6isFk^DLc2%rIqCanlE@zTB(jwN#tfGbV=O1hgMU$'Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, installez toutes les dépendances requises par NetBox avec la commande suivante :
pip3 install -r /opt/netbox/requirements.txtUne fois installé, migrez la base de données avec la commande suivante :
cd /opt/netbox/netbox/
python3 manage.py migrateUne fois la migration réussie, vous devriez voir la sortie suivante :
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... OKEnsuite, vous devrez créer un compte administrateur pour NetBox. Vous pouvez le faire avec la commande suivante :
python3 manage.py createsuperuserFournissez votre nom d’utilisateur et votre mot de passe administrateur et appuyez sur Entrée, vous devriez voir la sortie suivante :
Username (leave blank to use 'root'): netboxadmin
Email address: [email protected]
Password:
Password (again):
Superuser created successfully.Ensuite, déplacez les fichiers statiques et chargez les données initiales avec la commande suivante :
python3 manage.py collectstatic
python3 manage.py loaddata initial_dataInstaller et configurer Gunicorn pour NetBox
Ensuite, vous devrez installer Gunicorn pour NetBox. Vous pouvez l’installer avec la commande pip comme indiqué ci-dessous :
pip3 install gunicornEnsuite, créez un 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é.
Configurer Supervisor pour NetBox
Ensuite, vous devrez configurer Supervisor pour gérer le service NetBox. Vous pouvez le faire 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-dataEnregistrez et fermez le fichier, puis redémarrez le service supervisor et activez-le pour qu’il démarre après le redémarrage du système avec la commande suivante :
systemctl restart supervisor
systemctl enable supervisorVous pouvez également vérifier le service Supervisor avec la commande suivante :
systemctl status supervisorSortie :
? 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
Configurer Nginx pour NetBox
Ensuite, vous devrez configurer Nginx pour accéder à NetBox en utilisant le port 80. Pour ce faire, créez un fichier de configuration d’hôte virtuel avec la commande suivante :
nano /etc/nginx/sites-available/netboxAjoutez les lignes suivantes :
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;
}
}Enregistrez et fermez le fichier. Ensuite, activez l’hôte virtuel avec la commande suivante :
ln -s /etc/nginx/sites-available/netbox.conf /etc/nginx/sites-enabled/Enfin, redémarrez le service Nginx pour appliquer tous les changements de configuration avec la commande suivante :
systemctl restart nginxAccéder à l’interface Web de NetBox
NetBox est maintenant installé et configuré, il est temps d’accéder à l’interface Web de NetBox.
Ouvrez votre navigateur web et tapez l’URL http://your-domain.com. Vous serez redirigé vers la page suivante :

Maintenant, cliquez sur le bouton Se connecter dans le coin supérieur droit. Vous devriez voir la page suivante :

Maintenant, fournissez votre nom d’utilisateur et votre mot de passe administrateur, puis cliquez sur le bouton Se connecter. Vous devriez voir le tableau de bord par défaut de NetBox sur la page suivante :

Félicitations ! Vous avez réussi à installer et configurer NetBox sur un serveur Ubuntu 18.04. Vous pouvez maintenant gérer et documenter votre réseau et vos adresses IP depuis un emplacement central. 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.