Inštalácia NetBox Docker

Na čo slúži NetBox
NetBox slúži ako centrálna evidencia IT infraštruktúry.
Je to miesto, kde si zapisujem, aké zariadenia mám v sieti, aké majú IP adresy, aký majú účel, kde sa nachádzajú a aké služby na nich bežia.
NetBox nie je monitoring. Nehovorí mi, či server práve spadol alebo či má vysoké CPU. Na to slúži Zabbix.
NetBox odpovedá na otázky typu:
Aké zariadenia mám v sieti?
Akú IP adresu má konkrétny server?
Na ktorom zariadení beží daná služba?
Aký model je dané zariadenie?
Aké má sériové číslo?
Ktorý server je DNS, mail alebo monitoring?
Aké porty/služby sú na serveri spustené?
| Typ inštalácie | Podporované OS | Minimálne požiadavky |
|---|---|---|
| NetBox cez Docker | Linux server, napr. Ubuntu, Debian, Rocky Linux, AlmaLinux, Fedora, Raspberry Pi OS | Docker min. 20.10.10, containerd min. 1.5.6, docker-compose min. 1.28.0 |
| NetBox manuálna inštalácia | Najčastejšie Ubuntu/Debian Linux | Python min. 3.10; podporované Python verzie sú 3.10, 3.11, 3.12 |
| NetBox na Raspberry Pi | Raspberry Pi OS / Debian-based Linux | Docker + docker-compose, ideálne Raspberry Pi 4/5, aspoň 2 GB RAM |
| NetBox na Windows | Windows 10/11 alebo Windows Server cez WSL2/Docker Desktop | Docker Desktop + WSL2 |
| NetBox na macOS | macOS cez Docker Desktop | Docker Desktop |
Odporúčané minimum pre malý lab
| Prostriedok | Minimum | Odporúčané |
|---|---|---|
| CPU | 1 vCPU | 2 vCPU |
| RAM | 2 GB | 4 GB |
| Disk | 10–20 GB | 30+ GB |
| OS | Linux | Ubuntu/Debian/Raspberry Pi OS |
| Docker | 20.10.10+ | aktuálna stabilná verzia |
| Docker Compose | 1.28.0+ | novší docker compose plugin alebo docker-compose |
Krátka poznámka
NetBox je najjednoduchšie prevádzkovať cez Docker na Linux serveri. Potrebuje funkčný Docker, Docker Compose, databázu PostgreSQL a Redis/Valkey, ktoré sú pri netbox-docker nasadení súčasťou docker-compose stacku.
Vytvorenie priečinka
mkdir -p ~/netbox
cd ~/netbox
Stiahnutie oficiálneho NetBox Docker repozitára
git clone -b release https://github.com/netbox-community/netbox-docker.git .
Potom skontrolujte obsah priečinka:
ls
Uvidíte niečo takéto
docker-compose.yml
docker-compose.override.yml.example
env
configuration
README.md
Vytvorte override súbor
cp docker-compose.override.yml.example docker-compose.override.yml
Nastavenie portu NetBoxu
Pôvodný port
services:
netbox:
ports:
- "8000:8080"
Ja som ho potreboval zmeniť na 4030
sed -i 's/"8000:8080"/"4030:8080"/' docker-compose.override.yml
a ešte pred „Spustenie kontajneru“. Presne tam sa rieši port 4030, takže tá poznámka tam bude logicky sedieť. Na stránke máš časť „Nastavenie portu NetBoxu“ na riadkoch, kde meníš 8000:8080 na 4030:8080, a hneď potom nasleduje „Spustenie kontajneru“.
## Poznámka k portu 4030 a službe netbox-worker
Pri úprave portu treba dať pozor, aby verejný port `4030` používala iba hlavná služba `netbox`.
V mojom prípade sa po reštarte servera objavila chyba:
Error response from daemon: failed to set up container networking:
Bind for 0.0.0.0:4030 failed: port is already allocated
Dôvod bol ten, že v `docker-compose.yml` je použitý YAML anchor:
netbox: &netbox
a služba `netbox-worker` dedí nastavenia z hlavnej služby `netbox` cez:
<<: *netbox
Ak hlavná služba `netbox` obsahuje:
ports:
- "4030:8080"
tak môže túto časť zdediť aj `netbox-worker`. Potom sa oba kontajnery pokúšajú použiť rovnaký port `4030`.
Riešenie je v časti `netbox-worker` zrušiť dedenie portov:
netbox-worker:
<<: *netbox
ports: []
Po úprave konfigurácie stačí stack reštartovať:
sudo docker-compose down
sudo docker-compose up -d
Kontrola:
sudo docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Správny stav je, že port `4030` má iba hlavný NetBox kontajner:
netbox-netbox-1 0.0.0.0:4030->8080/tcp
netbox-netbox-worker-1 bez verejného portu
Môžeme to skontrolovať
cat docker-compose.override.yml
Spustenie kontajneru
sudo docker-compose up -d
Prvý štart a stav unhealthy
Pri prvom spustení NetBoxu môže kontajner chvíľu svietiť ako:
unhealthy
alebo môže docker-compose up -d skončiť hláškou:
dependency failed to start: container netbox-netbox-1 is unhealthy
Môžeme overiť stav
sudo docker-compose ps
Ak je všetko v poriadku, kontajnery by mali mať stav healthy.
Môžeme sledovať logy
sudo docker-compose logs -f netbox
Treba počkať, kým sa objaví:
✅ Initialisation is done.
[INFO] Listening at: http://:::8080
sudo docker-compose ps

Ak je NetBox stále označený ako unhealthy, ale inicializácia už dobehla, pomôže reštart služby:
sudo docker-compose restart netbox
sudo docker-compose ps
Poznámka
Pri prvom štarte NetBox vykonáva databázové migrácie, preto môže byť kontajner niekoľko minút označený ako unhealthy. Po dokončení migrácií sa stav zmení na healthy.
Prístup k službe
http://IP_ADRESA_SERVERA:4030
Vytvorenie užívateľa
Pred prihlásením je potrebné vytvoriť užívateľa
sudo docker-compose exec netbox /opt/netbox/netbox/manage.py createsuperuser
Skript sa spýta nasledovné veci
Username:
Email address:
Password:
Password again: