Installation NetBox · 12 min read · Oct 31, 2025
Comment installer NetBox IRM sur Debian 12

NetBox est un Modèle de Ressources d’Infrastructure (IRM) conçu pour l’automatisation des réseaux et l’ingénierie des infrastructures. Initialement, il a été créé par l’équipe de DigitalOcean, et est maintenant devenu un projet open-source publié sous la licence Apache 2. NetBox a été créé dans le cadre du framework web Python Django avec PostgreSQL comme base de données par défaut, et l’installation de NetBox est assez similaire à d’autres applications web Python Django.
Dans ce guide, nous allons vous montrer comment installer le logiciel NetBox IRM sur un serveur Debian 12 étape par étape. Nous vous montrerons l’installation de NetBox avec PostgreSQL comme serveur de base de données et Apache2 comme serveur web utilisé comme proxy inverse. Vous sécuriserez également votre installation de NetBox avec des certificats SSL/TLS.
Prérequis
Avant de procéder, assurez-vous d’avoir les éléments suivants :
- Un serveur Debian 12.
- Un utilisateur non-root avec des privilèges d’administrateur.
- Un nom de domaine public ou local pointant vers l’adresse IP du serveur.
Installation des dépendances
NetBox est une application web basée sur le framework web Python Django. Elle peut être installée avec le serveur de base de données PostgreSQL et le serveur Redis pour la gestion du cache.
Dans l’étape suivante, vous installerez les dépendances dont NetBox a besoin, vous installerez également le serveur web Apache2 qui sera utilisé comme proxy inverse pour votre installation de NetBox.
Pour commencer, exécutez la commande apt suivante pour mettre à jour votre dépôt Debian.
sudo apt update
Ensuite, installez les dépendances de package pour votre installation de 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-devTapez y pour procéder à l’installation des dépendances telles que le serveur web Apache2, le serveur de base de données PostgreSQL, Redis, Git, les packages Python3, et quelques bibliothèques système supplémentaires.

Après l’installation des dépendances, vérifiez chaque dépendance en exécutant la commande ci-dessous.
Vérifiez le service apache2 pour vous assurer que le service est activé et en cours d’exécution.
sudo systemctl is-enabled apache2
sudo systemctl status apache2Si apache2 est en cours d’exécution et activé, vous devriez obtenir une sortie comme suit :

Vérifiez le service PostgreSQL pour vous assurer que le service est en cours d’exécution et activé.
sudo systemctl is-enabled postgresql
sudo systemctl status postgresqlLe service PostgreSQL devrait être en cours d’exécution et activé comme ceci :

Maintenant, vérifiez le service Redis pour vous assurer que le service est en cours d’exécution et activé.
sudo systemctl is-enabled redis
sudo systemctl status redisLe service Redis devrait être en cours d’exécution et activé comme suit

Enfin, vérifiez la version de Python en utilisant la commande ci-dessous. La dernière version de NetBox IRM prend en charge Python v3.9, 3.10 et 3.11.
python3 --versionVous devriez voir Python 3.11 installé sur votre machine Debian.
Configuration du serveur PostgreSQL
Après avoir installé les dépendances, vous allez créer une nouvelle base de données PostgreSQL et un utilisateur que NetBox utilisera. Pour ce faire, vous devez vous connecter au serveur PostgreSQL via la ligne de commande psql.
Connectez-vous au serveur PostgreSQL en exécutant la commande ci-dessous.
sudo -u postgres psqlExécutez les requêtes suivantes pour créer un nouvel utilisateur netbox avec le mot de passe p4ssw0rd. Ensuite, créez une nouvelle base de données netboxdb avec le propriétaire netbox.
CREATE USER netbox LOGIN CREATEDB PASSWORD 'p4ssw0rd';
CREATE DATABASE netboxdb OWNER netbox;
Après cela, vérifiez la liste des utilisateurs et des bases de données sur votre PostgreSQL en exécutant la commande ci-dessous.
\l
\duVous devriez voir la base de données netboxdb et l’utilisateur netbox créés sur votre serveur PostgreSQL.

Tapez quit pour quitter le serveur PostgreSQL.
Ensuite, connectez-vous à PostgreSQL en utilisant le nouvel utilisateur netbox à la base de données netboxdb. Cela garantira que l’utilisateur netbox peut se connecter à la base de données netboxdb.
sudo -u postgres psql --username netbox --password --host localhost netboxdbUne fois connecté, vérifiez votre connexion en utilisant la requête suivante.
\conninfoDans la sortie suivante, vous devriez voir que vous êtes connecté à la base de données netboxdb via l’utilisateur netbox.

Tapez encore une fois quit pour quitter votre serveur PostgreSQL.
Configuration du serveur Redis
Avec la base de données PostgreSQL et l’utilisateur créés, l’étape suivante consiste à configurer votre serveur Redis qui sera utilisé comme gestion du cache pour NetBox. Pour ce faire, vous allez modifier la configuration de Redis /etc/redis/redis.conf et vérifier vos modifications via redis-cli.
Ouvrez la configuration par défaut de Redis /etc/redis/redis.conf en utilisant la commande de l’éditeur nano suivante.
sudo nano /etc/redis/redis.confDécommentez l’option requirepass et saisissez votre mot de passe qui sera utilisé pour sécuriser votre serveur Redis.
requirepass p4ssw0rdNetBoxLorsque vous avez terminé, enregistrez et quittez le fichier.
Maintenant, exécutez la commande systemctl suivante pour redémarrer le service redis et appliquer les modifications que vous avez effectuées.
sudo systemctl restart redisPour vous assurer que tout fonctionne, vous pouvez vérifier Redis via redis-cli. Accédez à votre serveur Redis en utilisant la commande redis-cli ci-dessous.
redis-cliAuthentifiez-vous auprès du serveur Redis en utilisant la requête AUTH suivante et assurez-vous de changer le mot de passe.
AUTH p4ssw0rdNetBoxUne fois authentifié, vous devriez obtenir la sortie OK.
Maintenant, exécutez la requête PING ci-dessous pour vous assurer que votre connexion est réussie.
PINGSi cela réussit, vous devriez obtenir la sortie PONG du serveur Redis.

Installation de NetBox IRM
Dans la section suivante, vous allez télécharger et installer NetBox IRM sur votre système. Vous téléchargerez le code source de NetBox via Git, puis le configurerez en modifiant la configuration de NetBox, en ajoutant le serveur de base de données PostgreSQL et Redis, et vous créerez également un utilisateur administrateur pour NetBox.
Tout d’abord, exécutez la commande ci-dessous pour créer un nouvel utilisateur systemd netbox qui sera utilisé pour exécuter l’installation de NetBox.
sudo useradd -r -d /opt/netbox -s /usr/sbin/nologin netboxTéléchargez le code source de NetBox IRM via git et changez la propriété du répertoire /opt/netbox à l’utilisateur netbox.
cd /opt; sudo git clone -b master --depth 1 https://github.com/netbox-community/netbox.git
sudo chown -R netbox:netbox /opt/netbox
Ensuite, déplacez votre répertoire de travail vers /opt/netbox et générez la clé secrète de NetBox via le script generate_secret_key.py. Assurez-vous de copier la clé secrète générée qui sera utilisée pour votre installation de NetBox.
cd /opt/netbox/netbox/netbox
sudo -u netbox python3 ../generate_secret_key.pyCopiez la configuration par défaut configuration_example.py vers configuration.py, puis ouvrez le nouveau fichier configuration.py en utilisant la commande de l’éditeur nano suivante.
sudo -u netbox cp configuration_example.py configuration.py
sudo -u netbox nano configuration.pyDans la section ALLOWED_HOSTS, ajoutez votre nom de domaine ou l’adresse IP de votre serveur.
ALLOWED_HOSTS = ['netbox.howtoforge.local', '192.168.10.15']Saisissez les détails de votre base de données PostgreSQL dans la section DATABASE, y compris le nom de la base de données, l’utilisateur, le mot de passe, l’hôte et le port.
# configuration de la base de données
DATABASE = {
'NAME': 'netboxdb', # Nom de la base de données
'USER': 'netbox', # Nom d'utilisateur PostgreSQL
'PASSWORD': 'p4ssw0rd', # 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, # Durée maximale de connexion à la base de données (secondes)
}Dans la section REDIS, saisissez les détails de votre serveur Redis pour les tâches et les options de mise en cache.
# configuration du cache Redis
REDIS = {
'tasks': {
'HOST': 'localhost', # Serveur Redis
'PORT': 6379, # Port Redis
'PASSWORD': 'p4ssw0rdNetBox', # Mot de passe Redis (optionnel)
'DATABASE': 0, # ID de la base de données
'SSL': False, # Utiliser SSL (optionnel)
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': 'p4ssw0rdNetBox',
'DATABASE': 1, # ID unique pour la deuxième base de données
'SSL': False,
}
}Enfin, saisissez votre clé secrète dans la section SECRET_KEY.
# Clé secrète
SECRET_KEY = 'ZjYbgz$)j!NnqJcZLR!NB2BCz4(Yyk=o^Xr(1sTIrM)ZyiE%nk'Lorsque vous avez terminé, enregistrez et quittez le fichier.
Ensuite, exécutez le script /opt/netbox/upgrade.sh pour démarrer votre installation de NextBox. Cela créera un nouvel environnement virtuel Python, installera certains packages et bibliothèques Python, exécutera la migration de la base de données vers votre serveur PostgreSQL, et générera également des fichiers statiques pour NextBox.
sudo -u netbox /opt/netbox/upgrade.shVoici la sortie similaire que vous obtiendrez pendant le processus.

Le processus de migration de la base de données.

Génération des fichiers statiques.

Voici la sortie lorsque l’installation est terminée.

Après que NetBox soit configuré, vous allez créer un utilisateur administrateur pour NetBox. Pour ce faire, connectez-vous à l’environnement virtuel Python qui a été créé en utilisant la commande suivante.
source /opt/netbox/venv/bin/activateDéplacez-vous dans le répertoire /opt/netbox/netbox et exécutez le script manage.py pour créer un utilisateur administrateur NetBox.
cd /opt/netbox/netbox
python3 manage.py createsuperuserLorsque vous y êtes invité, saisissez votre adresse e-mail d’administrateur, votre nom d’utilisateur et vos détails de mot de passe.

Ensuite, exécutez à nouveau manage.py pour vérifier votre installation de NetBox. Avec cela, vous exécuterez NetBox sur votre adresse IP locale avec le port 8000.
python3 manage.py runserver 0.0.0.0:8000 --insecure
Ouvrez votre navigateur web et visitez l’adresse IP de votre serveur suivie du port 8000, comme http://192.168.10.15:8000/. Si votre installation est réussie, vous devriez obtenir la page d’index de NetBox IRM, et à partir de là, cliquez sur le bouton Login en haut à droite.

Saisissez votre utilisateur administrateur et le mot de passe que vous avez créés, puis cliquez sur Sign In.

Si tout se passe bien, vous devriez obtenir le tableau de bord NetBox comme suit :

Retournez à votre terminal et appuyez sur Ctrl+c pour terminer le processus.
Exécution de NetBox en tant que service Systemd
À ce stade, vous avez installé NetBox IRM sur votre machine Debian. Pour vous faciliter la gestion de NetBox, vous allez exécuter NetBox en tant que service systemd, ce qui vous permet de contrôler NetBox via l’utilitaire systemctl.
Copiez le fichier /opt/netbox/contrib/gunicorn.py vers /opt/netbox/gunicorn.py, puis ouvrez le fichier gunicorn.py en utilisant la commande de l’éditeur nano ci-dessous.
sudo -u netbox cp /opt/netbox/contrib/gunicorn.py /opt/netbox/gunicorn.py
sudo -u netbox nano /opt/netbox/gunicorn.pyChangez l’option bind comme suit. Cela exécutera votre installation de NetBox sur le port 8001 de localhost via gunicorn.
bind = '127.0.0.1:8001'Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, copiez les fichiers de service systemd pour NetBox vers le répertoire /etc/systemd/system/. Cela copiera le fichier de service netbox, netbox-rq, et netbox-housekeeping vers le répertoire /etc/systemd/system/. Ensuite, rechargez le gestionnaire systemd pour appliquer les nouvelles modifications sur votre système.
sudo cp -v /opt/netbox/contrib/*.service /etc/systemd/system/
sudo systemctl daemon-reloadMaintenant, vous pouvez démarrer et activer les services netbox et netbox-rq en utilisant la commande systemctl ci-dessous. Après avoir exécuté la commande, votre installation de NetBox sera en cours d’exécution en arrière-plan en tant que service systemd.
sudo systemctl start netbox netbox-rq netbox-housekeeping
sudo systemctl enable netbox netbox-rq netbox-housekeepingEnfin, vérifiez les services netbox et netbox-rq en utilisant la commande suivante.
sudo systemctl status netbox
sudo systemctl status netbox-rqLa sortie suivante indique que le service netbox est en cours d’exécution et activé.

La sortie ci-dessous confirme que le service netbox-rq est en cours d’exécution et activé.

Configuration d’Apache en tant que proxy inverse
Dans l’étape suivante, vous allez configurer Apache2 en tant que proxy inverse. Avant cela, assurez-vous d’avoir un nom de domaine pointant vers l’adresse IP de votre serveur, vous pouvez également utiliser un nom de domaine local.
Si vous utilisez un domaine local, vous pouvez exécuter la commande openssl suivante pour générer des certificats SSL. Si vous utilisez le domaine public, vous pouvez utiliser Certbot pour générer des certificats SSL de 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"Maintenant, copiez l’exemple de configuration de l’hôte virtuel Apache pour NetBox vers /etc/apache2/sites-available/netbox.conf. Ensuite, modifiez le fichier /etc/apache2/sites-available/netbox.conf en utilisant la commande de l’éditeur nano suivante.
sudo cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
sudo nano /etc/apache2/sites-available/netbox.confChangez le nom de domaine avec votre domaine et changez le chemin des certificats SSL/TLS avec le chemin de fichier approprié.
# CHANGEZ CECI AVEC LE NOM DE VOTRE SERVEUR
ServerName netbox.howtoforge.local
...
ProxyPreserveHost On
# CHANGEZ CECI AVEC LE NOM DE VOTRE SERVEUR
ServerName netbox.howtoforge.local
SSLEngine on
SSLCertificateFile /etc/ssl/certs/netbox.crt
SSLCertificateKeyFile /etc/ssl/private/netbox.key
...
Enregistrez et quittez le fichier lorsque vous avez terminé.
Maintenant, exécutez la commande suivante pour activer certains modules Apache2 nécessaires pour NetBox.
sudo a2enmod ssl proxy proxy_http headers rewriteAprès cela, exécutez la commande suivante pour activer le fichier d’hôte virtuel netbox.conf et vérifiez vos configurations Apache2 pour vous assurer que vous avez une syntaxe correcte.
sudo a2ensite netbox.conf
sudo apachectl configtestSi vous avez une syntaxe Apache2 correcte, vous devriez obtenir la sortie Syntax OK.

Maintenant, exécutez la commande suivante pour redémarrer le service Apache2 et appliquer les modifications que vous avez effectuées.
sudo systemctl restart apache2Votre installation de NetBox devrait être accessible via le nom de domaine.
Ouvrez votre navigateur web et visitez le nom de domaine de votre installation NetBox, tel que https://netbox.howtoforge.local/. Si tout se passe bien, vous devriez voir la page d’index de NetBox comme suit :

Après vous être connecté, vous devriez voir le tableau de bord NetBox IRM fonctionnant avec le nom de domaine sous le proxy inverse Apache2.

Conclusion
En conclusion, vous avez maintenant installé NetBox IRM sur le serveur Debian 12 avec le serveur de base de données PostgreSQL et le serveur web Apache2 utilisé comme proxy inverse. Vous avez également sécurisé votre installation de NetBox via des certificats SSL/TLS.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.