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

update repo

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

Tapez 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.

install dependencies

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 apache2

Si apache2 est en cours d’exécution et activé, vous devriez obtenir une sortie comme suit :

check apache2

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 postgresql

Le service PostgreSQL devrait être en cours d’exécution et activé comme ceci :

check postgresql

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 redis

Le service Redis devrait être en cours d’exécution et activé comme suit

check redis

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

Vous 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 psql

Exé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;

create database user

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  
\du

Vous devriez voir la base de données netboxdb et l’utilisateur netbox créés sur votre serveur PostgreSQL.

check database user

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 netboxdb

Une fois connecté, vérifiez votre connexion en utilisant la requête suivante.

\conninfo

Dans la sortie suivante, vous devriez voir que vous êtes connecté à la base de données netboxdb via l’utilisateur netbox.

verify connection

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

Décommentez l’option requirepass et saisissez votre mot de passe qui sera utilisé pour sécuriser votre serveur Redis.

requirepass p4ssw0rdNetBox

Lorsque 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 redis

Pour 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-cli

Authentifiez-vous auprès du serveur Redis en utilisant la requête AUTH suivante et assurez-vous de changer le mot de passe.

AUTH p4ssw0rdNetBox

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

PING

Si cela réussit, vous devriez obtenir la sortie PONG du serveur Redis.

configure 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 netbox

Té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

create user download 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.py

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

Dans 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.sh

Voici la sortie similaire que vous obtiendrez pendant le processus.

netbox installation

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

database migration

Génération des fichiers statiques.

generate static files

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

installation finished

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/activate

Dé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 createsuperuser

Lorsque vous y êtes invité, saisissez votre adresse e-mail d’administrateur, votre nom d’utilisateur et vos détails de mot de passe.

create superuser

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

running netbox

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.

NETBOX HOME

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

LOGIN NETBOX

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

netbox daSHBOARD

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

Changez 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-reload

Maintenant, 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-housekeeping

Enfin, vérifiez les services netbox et netbox-rq en utilisant la commande suivante.

sudo systemctl status netbox  
sudo systemctl status netbox-rq

La sortie suivante indique que le service netbox est en cours d’exécution et activé.

check netbox

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

netbox rq

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

Changez 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 rewrite

Aprè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 configtest

Si vous avez une syntaxe Apache2 correcte, vous devriez obtenir la sortie Syntax OK.

apache2 netbox

Maintenant, exécutez la commande suivante pour redémarrer le service Apache2 et appliquer les modifications que vous avez effectuées.

sudo systemctl restart apache2

Votre 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 :

netbox home

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.

netbox dashboard

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.

Share: X/Twitter LinkedIn

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

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