
Spis treści
Cześć!
Dziś pokażę Ci, jak zainstalować Netbox na serwerze Synology, wykorzystując konteneryzację w Dockerze. Całą instalację przeprowadzimy przy użyciu Docker Compose za pośrednictwem narzędzia Portainer. Następnie skonfigurujemy odwrotne proxy przy użyciu już zainstalowanego Nginx Proxy Manager. Abyśmy uzyskać dostęp do Traccara po nazwie domeny w sieci lokalnej, skonfigurujemy przepisywanie DNS przy użyciu AdGuard Home.
Wstęp do naszego projektu
Czym jest Netbox?
Netbox to aplikacja webowa służąca do zarządzania i dokumentacji infrastruktury sieciowej. Pozwala na efektywne zarządzanie adresami IP, sprzętem sieciowym, serwerami, oraz miejscami ich umiejscowienia. Aplikacja zapewnia także funkcje takie jak śledzenie połączeń kablowych, zarządzanie przestrzenią w szafach typu rack, oraz wizualizację danych.
Stworzony z myślą o potrzebach administratorów sieci, ułatwia zarządzanie złożonymi sieciami i wspomaga proces planowania zmian. Jest rozwiązaniem open-source, co oznacza, że jego kod źródłowy jest dostępny dla wszystkich i może być modyfikowany według indywidualnych potrzeb.
Czym jest Portainer?
Portainer to otwarte narzędzie służące do zarządzania i monitorowania kontenerami w środowisku Docker. Jest to graficzny interfejs użytkownika (GUI), który ułatwia konfigurację, zarządzanie i monitorowanie kontenerów, jak również innych zasobów związanych z Dockerem.
Do czego służy Docker Compose?
Docker Compose stanowi narzędzie umożliwiające definicję oraz zarządzanie wieloma kontenerami Docker jednocześnie. Poprzez opisanie konfiguracji aplikacji, usług i zależności w pliku YAML, Docker Compose ułatwia jednolite tworzenie, uruchamianie i skalowanie aplikacji złożonych z wielu kontenerów. To narzędzie upraszcza proces konfiguracji środowiska deweloperskiego, testowego lub produkcyjnego, gwarantując jednocześnie spójność w zarządzaniu kontenerami i ich parametrami. Dzięki Docker Compose możliwe jest zdefiniowanie kompleksowej infrastruktury aplikacji w jednym pliku, co z kolei ułatwia współpracę i replikację środowisk w różnych scenariuszach.
Przygotowanie
W celu przygotowania poradnika, przyjmiemy ustaloną nazwę domeny oraz określone nazwy konfiguracyjne, przedstawione poniżej. Dla dostosowania konfiguracji do własnych potrzeb, należy zastosować ustawienia według indywidualnych wymagań.
- Pełna nazwa domeny (FQDN) Synology DSM: https://dsm.xyz.com,
- Pełna nazwa domeny (FQDN) Netbox: https://netbox.xyz.com,
- Zainstalowany na Synology poprzez Docker: Portainer, AdGuard Home,
- Zainstalowany na Synology poprzez Centrum pakietów: Container Manager,
- Na serwerze DHCP routera, wskazany adres IP serwera DNS (AdGuard Home) zainstalowanego na Synology.
Hardware
Nginx Proxy Manager (opcjonalnie)
Na moim Synology skonfigurowałem reverse proxy przy użyciu Nginx Proxy Manager, co umożliwia dostęp do panelu Netbox za pomocą adresu URL (https://netbox.xyz.com) zamiast standardowego adresu IP. Jest to rozwiązanie zwiększające wygodę zarządzania urządzeniami UniFi, oferując łatwiejszy do zapamiętania i bardziej intuicyjny adres dostępny w sieci LAN. Jesteś zainteresowany tym jak to zrobić? Zajrzyj tutaj.
Dodatkowo, lokalne przekierowanie DNS realizowane jest przez serwer DNS AdGuard, również działający na serwerze Synology w wersji kontenerowej.
Kontener od LinuxServer.io
Repozytorium kontenerowej wersji Netbox stworzonej przez LinuxServer.io jest dostępne tutaj. W oparciu o te dane będziemy tworzyć nowy Stack w Portainerze.
Krok 1 – Konfiguracja w Synology DSM
Jeśli korzystasz z systemu jednokrotnego logowania Authentik, możesz ułatwić sobie proces logowania, integrując system operacyjny od Synology DSM z Authentikiem. Instrukcje dotyczące integracji znajdziesz w dedykowanym poradniku.
- Zaloguj się na swoim serwerze plików Synology i uruchom aplikację File Station.
- Następnie, przejdź do wcześniej utworzonego folderu współdzielonego o nazwie docker. Wewnątrz tego folderu utwórz folder netbox.
- Kolejnym krokiem jest utworzenie podfolderów wewnątrz folderu netbox: config, postgres i redis.

Krok 2 – Konfiguracja Docker Compose w Portainerze
Zaloguj się do Portainera, aby rozpocząć proces tworzenia nowego stosu (Stack), który będzie potrzebny do utworzenia kodu Docker Compose. W tej konfiguracji, uwzględnij oddzielne usługi dla bazy danych, cache oraz serwera aplikacji. Pozwoli to na zintegrowanie zarówno bazy danych, jak i aplikacji w ramach jednego kompleksowego rozwiązania kontenerowego.
- Zaloguj się na swoje konto i przejdź do interfejsu administracyjnego Portainera.
- Jeżeli korzystasz z systemu jednokrotnego logowania Authentik, możesz ułatwić sobie proces logowania, integrując Portainer z Authentikiem. Instrukcje dotyczące integracji znajdziesz w dedykowanym poradniku.
- Wybierz swoje środowisko (eng: Environments) w którym będziesz edytować konfigurację utworzonego Docker Compose. Następnie przejdź do Stacks.
- Z prawego górnego rogu (pod twoim loginem) wybierz Add stack.
- Wypełnij tworzenie pliku Docker Compose przy użyciu następujących wartości:
- Name: netbox
- Build method: Web editor
- Web editor: skopiuj zawartość opisaną poniżej i wklej
version: "3.7"
services:
netbox-postgres:
image: postgres:15-alpine
container_name: netbox_postgres
hostname: netbox-postgres
restart: unless-stopped
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "netbox", "-U", "netbox"]
timeout: 45s
interval: 10s
retries: 10
volumes:
- /volume2/docker/netbox/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=netboxpass
- POSTGRES_DB=netbox
- POSTGRES_USER=netbox
netbox-redis:
image: redis:7-alpine
user: 1026:100
command: redis-server
container_name: netbox_redis
hostname: netbox-redis
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
restart: always
volumes:
- /volume2/docker/netbox/redis:/data
netbox-server:
image: lscr.io/linuxserver/netbox:latest
container_name: netbox_server
hostname: netbox-server
environment:
- PUID=1026
- PGID=100
- TZ=Europe/Warsaw
- [email protected]
- SUPERUSER_PASSWORD=yourpasstomail
- ALLOWED_HOST=netbox.xyz.com
- DB_NAME=netbox
- DB_USER=netbox
- DB_PASSWORD=netboxpass
- DB_HOST=netbox-postgres
- DB_PORT=5432
- REDIS_HOST=netbox-redis
- REDIS_PORT=6379
- REDIS_DB_TASK=0
- REDIS_DB_CACHE=1
volumes:
- /volume2/docker/netbox/config:/config
ports:
- 13031:8000
depends_on:
- netbox-postgres
- netbox-redis
restart: unless-stopped
Parametry
Podczas uruchamiania możemy określić parametry konfigurujące kontenery (takie jak te zawarte powyżej). Parametry te są rozdzielane dwukropkiem i wskazują kolejno <zewnętrzny>:<wewnętrzny>. Na przykład, -p 8080:80 sprawi, że port 80 wewnątrz kontenera będzie dostępny z zewnątrz kontenera, z IP hosta, na porcie 8080.
- Wykaz wszystkich parametrów do tego Stacku jest dostępna pod tym linkiem.
Time Zone
- Po wklejeniu kodu w edytorze, zmień wartość dla strefy czasowej (TZ), wybierając odpowiednią strefę czasową z tej listy.
PUID i PGID
Gdy używasz woluminów (parametru -v), mogą wystąpić kwestie związane z uprawnieniami pomiędzy systemem operacyjnym gospodarza a kontenerem. Aby obejść te problemy, dajemy możliwość wyboru identyfikatora użytkownika (PUID) oraz grupy użytkownika (PGID).
- Przed wklejeniem powyższego kodu w obszar edytora, zmień wartości numerów dla PUID i PGID na swoje własne wartości PUID i PGID. Wartości PUID i PGID odnoszą się do danego konta istniejącego na Synology. Musisz wpisać swoje własne wartości.
- Aby sprawdzić swoje wartości PUID i PGID na systemie Linux, możesz użyć terminala. Wpisz komendę id nazwa_użytkownika (zastępując nazwa_użytkownika własną nazwą użytkownika na komputerze). Wynik tej komendy pokaże Twoje identyfikatory PUID (UID) i PGID (GID). Te wartości są niezbędne do prawidłowej konfiguracji kontenerów Docker, gdyż pozwalają na dopasowanie uprawnień plików i katalogów w kontenerze do Twojego systemu.
id jkowalski
uid=1026(jkowalski) gid=100(users) groups=100(users),101(administrators)
- Kliknij przycisk Deploy the stack, a następnie poczekaj, dopóki Portainer nie pobierze zawartości i nie utworzy kontenera.
- Gdy proces przebiegnie pomyślnie, w prawym górnym rogu ekranu pojawi się komunikat Success: Stack successfully deployed. Wówczas, w liście kontenerów ukaże się nowo utworzony stos kontenerów.
- zaleca się odczekanie około 5 do 10 minut, aby instalacja została w pełni ukończona. W tym czasie, próbując zalogować się do aplikacji poprzez adres IP, możesz napotkać na pustą stronę internetową (bez żadnej zawartości).
Krok 3 – Konfiguracja w Nginx Proxy Manager
Web access po HTTPS (Certyfikat SSL)
Jeżeli posiadasz wgrany certyfikat SSL dla swojej domeny obsługujący subdomeny (certyfikat typu Wildcard):
- Zaloguj się do konta administratora w Nginx Proxy Manager.
- Kliknij w Hosts, a następnie z menu wybierz Proxy Hosts,
- W prawym górnym rogu kliknij Add Proxy Hosts.
- Uzupełnij parametry następującymi wartościami:
- Domain Names: netbox.xyz.com
- Scheme: http
- Forward Hostname/IP: IP-ADRES-SYNOLOGY
- Forward Port: 13031
- W oknie Edit Proxy Host na zakładce Details zaznacz:
- Cache Assets,
- Websockets Support,
- oraz Block Common Exploits.
- Następnie przejdź do zakładki SSL, wybierz swój certyfikat SSL i zaznacz wszystkie dostępne opcje dodatkowe:
- Force SSL,
- HTTP/2 Support,
- HSTS Enabled,
- oraz HSTS Subdomains.
Krok 4 – Konfiguracja w AdGuard Home
Aby uzyskać dostęp z naszego komputera do Netboxa poprzez zdefiniowaną w Proxy Managerze nazwę domeny (np. netbox.xyz.com) w naszej sieci lokalnej, konieczne jest skonfigurowanie serwera DNS, aby wskazywał na lokalizację tej strony.
- Zaloguj się do panelu administracyjnego AdGuard Home.
- Przejdź do zakładki Filtry, a następnie z menu wybierz opcję Przepisywanie DNS.
- Kliknij Dodaj przepisywanie DNS, a następnie wypełnij pola z następującymi wartościami:
- Wpisz nazwę domeny, który chcesz przepisać: netbox.xyz.com
- Adres IP: IP-ADRES-SYNOLOGY
- Gotowe! Poczekaj chwilę, aż konfiguracja zostanie zapisana. Po zakończeniu procesu, dostęp do serwera będzie możliwy pod adresem netbox.xyz.com. 🚀
Krok 5 – Zaloguj się do Netbox
Końcowym etapem naszej instalacji jest zalogowanie się na prawach administratora do wdrożonej przed chwilą aplikacji.
- Otwórz interfejs webowy Netbox: Po pomyślnej instalacji i uruchomieniu kontenera, otwórz przeglądarkę internetową i wpisz https://netbox.xyz.com,
- Następnie na ekranie logowania wprowadź admin jako nazwę użytkownika, a w polu hasła wpisz hasło, które ustawiłeś podczas instalacji aplikacji w Docker Compose, znajdującej się w sekcji:
- [email protected]
- SUPERUSER_PASSWORD=yourpasstomail
Dodatkowe źródła i informacje:
- Netbox on Github: https://github.com/netbox-community/netbox
Przeczytaj także:
- TVHeadend: Przewodnik instalacji na Synology w Docker Compose / Jak zainstalować TVHeadend na Synology z Docker Compose. Praktyczny przewodnik krok po kroku dla zaawansowanych użytkowników.
- UniFi Network Application: Podłączenie Access Point z innej sieci / Odkryj jak podłączyć urządzenie od Ubiquiti UniFi z innej sieci do Network Application – na przykładzie tunelu IPSec w Mikrotiku.
- UniFi Controller w Dockerze: Migracja do UniFi Network Application / UniFi Controller: Odkryj krok po kroku, jak skutecznie przeprowadzić migrację do Network Application, wykorzystując Docker Compose.
- ADS-B: Instalacja i konfiguracja odbiornika na Raspberry Pi / Odkryj tajniki instalacji i konfiguracji własnej anteny ADS-B na Raspberry Pi. Rozwijaj umiejętności i śledź samoloty w czasie rzeczywistym.
- Traccar: Przewodnik instalacji na Synology w Dockerze / Przewodnik krok po kroku: Instalacja Traccar na Synology za pomocą Docker. Skuteczne śledzenie pojazdów na własnym serwerze.
Komentarze (2)
SpeXsays:
21/10/2024 at 02:28A coś więcej o konfiguracji Netbox?
Filip Chochółsays:
21/10/2024 at 13:18Hej 😉 Dużo by opowiadać, na chwilę obecną nie miałem w planach opisywać poszczególnie każdej rzeczy. Jest parę zagranicznych poradników o kolejności dodawania rzeczy w Netboxie, mi chwilę samoukowi też zajęło aby rozkminić każdą z rzeczy. Trochę wspierałem się jeszcze rozmową z ChatemGPT.