Aplikacje Docker – Home Lab Hub

Informacje o aplikacji Home Lab Hub

Strona projektu https://github.com/RaidOwl/homelab-hub

Samodzielnie hostowana aplikacja internetowa do zarządzania i wizualizacji infrastruktury domowego laboratorium. Śledenie sprzęt, maszyny wirtualne, aplikacje, pamięć masową, sieci i wiele więcej — wszystko w jednym miejscu. Zrzut ekranu Home Lab Hub Funkcje Zarządzanie inwentarzem — Pełne CRUD dla sprzętu, maszyn wirtualnych, aplikacji/usług, pamięci masowej, sieci, udziałów i innych elementów Zarządzanie udziałami — Śledź udziały sieciowe (NFS, SMB, iSCSI, FTP, SFTP, WebDAV) w urządzeniach pamięci masowej z automatycznym uzupełnianiem szczegółów połączenia Eksport/Import — Twórz kopie zapasowe i przywracaj cały inwentarz za pomocą eksportu/importu JSON jednym kliknięciem Wizualizacja sieci — Interaktywna mapa grafów z układem w głąb, pokazująca relacje między komponentami infrastruktury (obsługiwana przez Cytoscape.js) Widok drzewa — Hierarchiczny widok infrastruktury ze zwijanymi węzłami Dokumentacja — Hierarchiczna dokumentacja oparta na Markdown z podglądem na żywo i automatycznym zapisywaniem Sortowalne tabele — Kliknij nagłówki kolumn, aby posortować dane inwentarza rosnąco lub malejąco Wyszukiwanie między jednostkami — Filtruj i przeszukuj wszystkie typy inwentarza z poziomu jednego interfejsu Okna modalne — Przejrzyste, dostępne formularze modalne do tworzenia i edycja encji Śledzenie relacji — automatyczne i ręczne mapowanie relacji między encjami.

Instalacja aplikacji Home Lab Hub

W moim homelab wszystkie dane kontenerów są widoczne na maszynie wirtualnej docker poprzez zamontowany katalog /mnt/data

mkdir -p /mnt/data/homelab-hub/data

Docker

docker run -d -e TZ=Europe/Warsaw \
  --name homelab-hub \
  -p 8500:8000 \
  -v ./data:/mnt/data/homelab-hub/data \
  --restart unless-stopped \
  raidowl/homelab-hub:latest

Docker-compose

services:
  homelab-hub:
    image: raidowl/homelab-hub:latest
    container_name: homelab-hub
    ports:
      - "8000:8000"
    volumes:
      - ./data:/data
    restart: unless-stopped
cd /mnt/data/homelab-hub/
docker compose up -d

Ochrona dostępu do aplikacji Home Lab Hub przez hasło Nginx Proxy Manager

# standardowo w moim homelab kontenery są podpięty razem NPM do wspólnej sieci o nazwie docker-compose_default

docker network ls
NETWORK ID     NAME                     DRIVER    SCOPE
4c338082e50b   bridge                   bridge    local
e22a04f84bdc   docker-compose_default   bridge    local
c625145d10f5   host                     host      local
ce4af61c8cb6   none                     null      local

# tworzymy nowa sieć dockera
docker network create npm-proxy
0ec2e4eb638394deca306a9fc4be6e843f6f5a67bd5b694bf01201c5a08f30ff

# podepnij kontener z nginxproxymanager dodatkowo do drugiej sieci o nazwie npm-proxy
docker network connect npm-proxy nginxproxymanager

# Sprawdzenie, czy NPM ma dwie sieci:
docker inspect <NAZWA_KONTENERA_NPM> --format '{{json .NetworkSettings.Networks}}' | jq
services:
  homelab-hub:
    image: raidowl/homelab-hub:latest
    container_name: homelab-hub
    environment:
      - TZ=Europe/Warsaw
    volumes:
      - ./data:/mnt/data/homelab-hub/data
    restart: unless-stopped
    networks:
      - npm-proxy
    expose:
      - "8000"

networks:
  npm-proxy:
    external: true

W konfiguracji Nginx Proxy Manager należy utworzyć nową pozycję w menu Access List. W zakładce Authorization podać login i hasło jakie chcemy mieć do aplikacji pod adresem https://lab.home.lan

W konfiguracji Nginx Proxy Manager należy utworzyć teraz nowy Proxy Host gdzie

  • Forward Hostname: to nazwa naszego kontenera np. homelab-hub
  • Forward Port: port wewnętrzny podany w docker-compose.yml
  • Wybrać Access List: np. utworzony wcześnie homelab-hub

Od tej pory przy wejściu na stronę https://lab.home.lan będzie nas pytało o login i hasło. Nie da się wejść przez adres i port maszyny z dockerem np. http://192.168.10.25:8500/