~/projects · INFRA

Homelab.

Szafa rack w domu: własny GitLab z CI/CD i registry, własne OIDC, bramka LLM i kilkanaście usług.

DockerGitLabProxmoxGrafanaVoidAuthNAS

Węzły fizyczne i wirtualizacja

  • Orzeł 1Orzeł 1: status
  • SingularitySingularity: status

TinyPack (Klaster mini PC)

  • JanuszJanusz: status
  • SebekSebek: status
  • Orzeł 2Orzeł 2: status
  • TytusTytus: status
  • Domino (Dell Wyse)Domino (Dell Wyse): status

Kluczowe usługi i aplikacje

  • NetworkNetwork: status
  • SDRSDR: status
  • MokreNoski-AlphaMokreNoski-Alpha: status
  • GitHubGitHub: status

Po co to wszystko?

Dla jednych to tylko hałasujące skrzynki schowane w meblach, dla mnie – serce domowej infrastruktury, warsztat i poligon doświadczalny w jednym. To tutaj testuję nowe narzędzia, symuluję awarie i uczę się radzić sobie z problemami, zanim podobny pożar wybuchnie w pracy na infrastrukturze wartej miliony.

To nie jest pasywna półka ze starym sprzętem zbierającym kurz. To żyjący, w pełni funkcjonalny ekosystem z metrykami, centralnym logowaniem, automatycznymi kopiami zapasowymi i potokami CI/CD. Nawet strona, którą właśnie czytasz, nie wisi na anonimowym shared hostingu – jest budowana i serwowana bezpośrednio z mojej domowej serwerowni.

Sprzęt: maszyna po maszynie

Fundamentem całości jest celowo dobrany, zróżnicowany hardware – od składanych pecetów, przez jednolitrowe terminale, aż po terminale cienkiego klienta zaadaptowane do bezawaryjnej pracy 24/7.

Orzeł 1 – główny host Proxmox VE

Główny wół roboczy klastra wirtualizacji. Bierze na siebie większość obciążenia obliczeniowego i usług bazowych.

  • CPU: Intel Core i5-10400F @ 2.90 GHz (6 rdzeni / 12 wątków)
  • RAM: 48 GB DDR4
  • GPU: NVIDIA GeForce GTX 1070
  • Magazyn danych:
    • 2x Samsung MZVLW256 NVMe 256 GB – dysk systemowy hypervisora
    • ADATA SU750 256 GB SSD + ADATA SU800 256 GB SSD – spięte w pulę LVM pod wirtualki
    • 2x V-Series SATA SSD 120 GB
    • 4× WD WD5000AAKS 500 GB HDD
    • HGST HTS541010 4 TB 2.5" HDD
  • Rola: 3 maszyny wirtualne (VM) oraz kilkanaście kontenerów LXC.

Singularity – zapasowy host Proxmox VE

Drugi węzeł wirtualizacji, zbudowany na bezgłośnym i niezawodnym poleasingowym biurowcu. Odciąża Orła i zapewnia redundancję.

  • Platforma: Dell OptiPlex 7020
  • Pamięć: 32 GB DDR3
  • Dysk: 256 GB SSD
  • Rola: własny zestaw 3 maszyn wirtualnych oraz kilkanaście kontenerów LXC.

TinyPack – jednolitrowa dywizja i cisi pomocnicy

Ekspedycja miniaturowych komputerów o minimalnym poborze prądu i zerowym hałasie – idealna baza pod architekturę rozproszoną i konteneryzację.

  • Janusz & Sebek (2× Lenovo ThinkCentre M715q): AMD, 16 GB DDR4, 256 GB SSD, 1 GbE
  • Orzeł 2 & Tytus (2× Lenovo ThinkCentre M910q): Intel, 16 GB DDR4, podwójny dysk 256 GB + 256 GB SSD
  • Domino (Dell Wyse): Cienki klient, o którym niemal zapomniałem – miniaturowy, energooszczędny strażnik do lekkich zadań pomocniczych.
  • Rola węzłów: Usługi kontenerowe Docker oraz Kubernetes (k8s), w tym instancje GitLab Runner kompilujące i testujące projekty w locie.

Core – lokalne AI i magazyn danych

Koń roboczy, a zarazem domowe centrum obliczeniowe dużej mocy.

  • CPU: AMD Ryzen 5 3600 (6 rdzeni / 12 wątków)
  • RAM: 64 GB DDR4
  • GPU: NVIDIA GeForce RTX 3090 (24 GB VRAM)
  • Przestrzeń dyskowa: 298 GB, 2× 223,5 GB, 931,5 GB oraz 1863 GB (fizycznie ok. 320 GB, 2× 240 GB, 1 TB oraz 2 TB)
  • Przeznaczenie: Codzienna praca inżynierska, lokalne środowisko uruchomieniowe LLM (llama.cpp, LM Studio czerpiące z 24 GB pamięci karty) oraz lokalny magazyn danych (storage).

Sieć i łączność

Nawet najlepszy serwer jest bezużyteczny bez deterministycznej sieci. Moja domowa „szafa serwerowa” to w rzeczywistości zaadaptowana szafka meblowa – ale pod względem topologii nie ustępuje standardom biurowym.

  • Brzeg sieci i Wi-Fi: Brama sieciowa UniFi Gateway odpowiadająca za routing, firewall i separację segmentów, połączona z punktem dostępowym UniFi AP.
  • Szybki szkielet (Backbone): Dedykowany przełącznik 2.5 GbE (oznaczony jako „B25”) stanowiący szybką magistralę danych dla najbardziej obciążonych maszyn.
  • Dystrybucja w „racku”: Zarządzalny przełącznik D-Link DGS-1510 umieszczony w szafce, spięty ze switchem B25 łączem o przepustowości 2.5 GbE, odpowiadający za dystrybucję ruchu, trunking i VLAN-y dla pozostałych urządzeń.

Homelab w liczbach

  • 8 fizycznych maszyn (5 w TinyPack + Orzeł 1 + Singularity + stacja Core)
  • 2 hiperwizory Proxmox VE spięte w jeden organizm
  • 6 maszyn wirtualnych i ponad kilkanaście odizolowanych kontenerów LXC
  • 208+ GB pamięci RAM w całym labie
  • 2 akceleratory graficzne NVIDIA pracujące na rzecz wirtualizacji, transkodowania i wnioskowania AI
  • 120+ aktywnych dekoderów SDR przetwarzających sygnały radiowe
  • 12 kluczowych serwisów infrastrukturalnych pod stałym nadzorem monitoringu

Co tutaj działa?

Każda usługa w labie ma swoje uzasadnienie. Zamiast stawiać kontenery dla samej sztuki, buduję środowisko, które realnie wspiera moją pracę i projekty.

  • Własna instancja GitLab (g.gut.red): Prywatne repozytorium kodu z rozbudowanym CI/CD. To tutaj zaczyna się każdy commit – w tym zmiany na stronie bartosik.run, która po przejściu testów na runnerach jest automatycznie wdrażana na środowisko za pomocą webhooka Dockhanda.
  • Uptime Kuma (uptime.bartosik.run): Silnik zasilający widoczne wyżej wskaźniki dostępności. Sprawdza stan maszyn i usług co minutę, monitorując endpointy HTTP, porty TCP i czasy odpowiedzi.
  • Aplikacje autorskie i serwisy: W tym instancja MokreNoski-Alpha oraz pulpit Horizon.
  • Węzeł Matrix (gut.red): Własny, sfederowany serwer komunikacyjny zapewniający bezpieczną i niezależną łączność.
  • Flota dekoderów SDR: Ponad 120 pracujących instancji dekodujących sygnały radiowe w czasie rzeczywistym.
  • Lokalne modele LLM: Środowisko wnioskowania oparte o llama.cpp i LM Studio, wykorzystujące pełne 24 GB VRAM karty RTX 3090 do lokalnej pracy z modelami językowymi bez wysyłania danych do chmury.
  • Orkiestracja kontenerów: Klastry Docker oraz Kubernetes na węzłach TinyPack, dźwigające m.in. GitLab Runnery i aplikacje pomocnicze.
  • [Lista usług w trakcie uzupełniania]

Zasady gry (Homelab philosophy)

  1. Monitoring jest pierwszy. Usługa, która nie posiada metryk, healthchecka ani alertu w razie awarii, formalnie nie istnieje.
  2. Kopia zapasowa, której nigdy nie odtworzyłeś, to tylko plotka. Prawdziwy backup to ten, z którego potrafisz postawić system na czystym dysku w środku nocy.
  3. Każda zmiana przechodzi przez Git i pipeline. Żadnych chaotycznych modyfikacji plików konfiguracyjnych bezpośrednio przez SSH na żywym organizmie.
  4. Psuj na poligonie, nigdy na produkcji. Lepiej położyć własny domowy klaster w sobotę rano niż infrastrukturę klienta w poniedziałkowe popołudnie.