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 -y

Une 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 -y

Une 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.list

Ajoutez la ligne suivante :

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

Enregistrez 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 -y

Une fois installé, vérifiez l’état de PostgreSQL avec la commande suivante :

systemctl status postgresql

Vous 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:~$ psql

Sortie :

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=#exit

Une 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.git

Ensuite, changez de répertoire pour netbox et générez la clé secrète Django :

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

Vous 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.py

Ensuite, ouvrez le fichier de configuration et définissez les détails de votre base de données et la clé secrète :

nano configuration.py

Apportez 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.txt

Une fois installé, migrez la base de données avec la commande suivante :

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

Une 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... OK

Ensuite, vous devrez créer un compte administrateur pour NetBox. Vous pouvez le faire avec la commande suivante :

python3 manage.py createsuperuser

Fournissez 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_data

Installer 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 gunicorn

Ensuite, créez un fichier de configuration Gunicorn pour NetBox avec la commande suivante :

nano /opt/netbox/gunicorn_config.py

Ajoutez 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.conf

Ajoutez 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, 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 supervisor

Vous pouvez également vérifier le service Supervisor avec la commande suivante :

systemctl status supervisor

Sortie :

? 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/netbox

Ajoutez 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 nginx

Accé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 :

Interface Netbox

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

Connexion Netbox

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 :

Tableau de bord NetBox

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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.