NetBox, c'est quatre pièces : une base PostgreSQL, un cache Redis, l'application Django servie par gunicorn, et un serveur web devant pour le HTTPS. On les installe dans cet ordre, en vérifiant chacune avant de passer à la suivante.
Avant de commencer
$sudo apt update && sudo apt upgrade -yPostgreSQL
$sudo apt install -y postgresql$psql --versionpsql (PostgreSQL) 16.x
Crée la base et son propriétaire :
$sudo -u postgres psql -c "CREATE DATABASE netbox;"$sudo -u postgres psql -c "CREATE USER netbox WITH PASSWORD '';"$sudo -u postgres psql -c "ALTER DATABASE netbox OWNER TO netbox;"$sudo -u postgres psql -d netbox -c "GRANT CREATE ON SCHEMA public TO netbox;"$psql --username netbox --password --host localhost netbox -c '\conninfo'You are connected to database "netbox" as user "netbox" on host "localhost"
Redis
$sudo apt install -y redis-server$redis-cli pingPONG
Installer NetBox
$sudo apt install -y git python3 python3-pip python3-venv python3-dev build-essential \$ libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev$python3 -VPython 3.12.x
$sudo mkdir -p $sudo git clone -b --depth 1 https://github.com/netbox-community/netbox.git $sudo adduser --system --group netbox$sudo chown --recursive netbox /netbox/media/ /netbox/reports/ /netbox/scripts/Configuration
$sudo cp /netbox/netbox/configuration_example.py /netbox/netbox/configuration.py$python3 /netbox/generate_secret_key.pyÉdite configuration.py et renseigne ces valeurs (colle la clé affichée ci-dessus dans SECRET_KEY) :
ALLOWED_HOSTS = ['']DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'netbox', 'USER': 'netbox', 'PASSWORD': '', 'HOST': 'localhost', 'PORT': '', 'CONN_MAX_AGE': 300, }}REDIS = { 'tasks': {'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 0, 'SSL': False}, 'caching': {'HOST': 'localhost', 'PORT': 6379, 'PASSWORD': '', 'DATABASE': 1, 'SSL': False},}SECRET_KEY = 'colle-la-cle-generee-ici'Lancer le script d'upgrade
$sudo /upgrade.sh$sudo /venv/bin/python /netbox/manage.py checkSystem check identified no issues
Crée le premier administrateur :
$sudo /venv/bin/python /netbox/manage.py createsuperuser$sudo ln -s /contrib/netbox-housekeeping.sh /etc/cron.daily/netbox-housekeepinggunicorn et systemd
$sudo cp /contrib/gunicorn.py /gunicorn.py$sudo cp -v /contrib/*.service /etc/systemd/system/$sudo systemctl daemon-reload$sudo systemctl enable --now netbox netbox-rq$systemctl is-active netbox netbox-rqactive active
$curl -sI http://127.0.0.1:8001/ | head -1HTTP/1.1 200 OK
Serveur web et HTTPS
$sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \$ -keyout /etc/ssl/private/netbox.key -out /etc/ssl/certs/netbox.crt \$ -subj "/CN="$sudo apt install -y nginx$sudo cp /contrib/nginx.conf /etc/nginx/sites-available/netbox$sudo sed -i 's/netbox.example.com//' /etc/nginx/sites-available/netbox$sudo rm -f /etc/nginx/sites-enabled/default$sudo ln -sf /etc/nginx/sites-available/netbox /etc/nginx/sites-enabled/netbox$sudo nginx -t && sudo systemctl restart nginx$curl -skI https:/// | head -1HTTP/2 200
Terminé
Ouvre https:/// et connecte-toi avec l'administrateur créé. La page suivante de cette série ajoute utilisateurs et permissions, plugins et les réglages que tu voudras avant d'ouvrir NetBox à ton équipe.