Naciśnij ESC, aby zamknąć

Netbox: Przewodnik instalacji na Synology w Docker Compose

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, ikonaNetbox 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, Logo

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: PortainerAdGuard 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
Synology File Station, Netbox folders

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.

Przewodnik instalacji Traccar na Synology w Dockerze

  • Z prawego górnego rogu (pod twoim loginem) wybierz Add stack.

Przewodnik instalacji Traccar na Synology w Dockerze

  • 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,

Pulpit Nginx Proxy Manager

  • W prawym górnym rogu kliknij Add Proxy Hosts.

Add Proxy Host w Nginx Proxy Manager

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

Edit Proxy Host w Nginx Proxy Manager

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

Edit Proxy Host, SSL w Nginx Proxy Manager

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.

AdGuard Home Pulpit

  • Zaloguj się do panelu administracyjnego AdGuard Home.
  • Przejdź do zakładki Filtry, a następnie z menu wybierz opcję Przepisywanie DNS.

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,

Netbox, ekran logowania

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

Przeczytaj także:

Filip Chochół

Filip Chochol runs two blogs: personal “chochol.io” and together with his girlfriend “Warsaw Travelers” about travel. He specializes in IT resource management and technical support, and has been active in the field of cyber security awareness for almost two years. A proponent of open-source technologies, he previously worked in the film and television industry in the camera division (2013-2021). After hours, he develops interests in smart homes and networking.

Komentarze (2)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *


This site uses Akismet to reduce spam. Learn how your comment data is processed.