Długi korytarz między rzędami szaf z serwerami w centrum obliczeniowym CERN, odgrodzony niebieską taśmą

Web i serwery

Homelab: własna chmura w domu

Poczta, zdjęcia, pliki, hasła, VPN i automatyka domu na własnych serwerach zamiast w chmurze gigantów. Jak zbudowałem homelab w warstwach: sieć z VLAN-ami, jedno wejście przez reverse proxy, kontenery, dwie nocne kopie i monitoring z alarmem SMS, oraz czego mnie to nauczyło.

26.10.2026

Homelab zaczął się u mnie od jednego domowego serwera. Dziś to cztery maszyny, około 125 kontenerów i usługi, z których codziennie korzysta cała rodzina, często nie wiedząc, że stoją w piwnicy.

Cel jest prosty: odciąć się, na tyle, na ile to rozsądne, od wielkich dostawców chmury. Poczta, zdjęcia, pliki, hasła i automatyka domu mają działać na sprzęcie, który mam pod kontrolą.

Długi korytarz między rzędami szaf z serwerami w centrum obliczeniowym CERN, odgrodzony niebieską taśmą(powiększ)
Centrum obliczeniowe CERN. Mój homelab jest skromniejszy, ale zasada ta sama. Zdjęcie: SimonWaldherr, Wikimedia Commons, CC BY-SA 4.0

Co zastąpiłem

Najlepiej widać to na liście. Każda pozycja to usługa, za którą wcześniej płaciłem albo którą „płaciłem” swoimi danymi.

Co zastąpiłem: Gmail na Mailcow, Dysk Google na Nextcloud, Zdjęcia Google na Immich, LastPass na Vaultwarden, komercyjny VPN na WireGuard, reklamy i śledzenie na AdGuard Home, GitHub na OneDev, Zapier na n8n, Notion na Docmost, Google Analytics na Matomo, chmury producentów IoT na Home Assistant, bramki SMS w chmurze na własny modem GSM, hosting serwerów gier na PufferPanel, Netflix częściowo na Plex(powiększ)
Usługi komercyjne i ich zamienniki w homelabie

Kilka z nich zasługuje na komentarz:

  • Mailcow obsługuje pocztę dla kilku domen, z poprawnymi rekordami SPF, DKIM i DMARC w trybie reject. Bez tego poczta z domowego IP ląduje w spamie.
  • Immich robi to samo co Zdjęcia Google, łącznie z rozpoznawaniem twarzy i wyszukiwaniem po treści zdjęć, ale model uczenia maszynowego liczy lokalnie.
  • OneDev to serce wszystkich moich projektów: repozytoria i CI, z których wdrażam portale, tablice informacyjne i tę stronę.
  • Własna bramka SMS na modemie GSM wysyła alarmy z systemów, które opisywałem wcześniej, od transmisji w kościele po tablicę na przystanku.

Architektura w warstwach

Homelab łatwo zamienić w stos przypadkowych kontenerów. Pomaga myślenie warstwami: każda ma jedno zadanie i nie zna szczegółów pozostałych.

Homelab w warstwach. Brzeg: router z regułami, DNS w Cloudflare, wildcard, poczta z SPF, DKIM i DMARC. Sieć: Omada, VLAN serwerów i zarządzania, AdGuard Home. Dostęp: reverse proxy, CrowdSec, WireGuard, panele tylko z domu i przez VPN, Authentik. Aplikacje: około 125 kontenerów na Xeonie z 94 GB RAM. Dane: NAS z RAID5, nocne obrazy i kopia plików na dysk 12 TB. Nadzór: Uptime Kuma, kontrola RAID i SMART, alarm SMS(powiększ)
Warstwy homelaba od brzegu sieci do kopii zapasowych

Brzeg i DNS

Domeny mają DNS w Cloudflare, a domena usług ma rekord wildcard, więc nowa usługa nie wymaga zmian w DNS. Z zewnątrz jest jedno wejście: router z regułami ACL przekazuje ruch HTTP i HTTPS do reverse proxy, a pocztę do serwera pocztowego.

Sieć i segmentacja

Sieć stoi na sprzęcie TP-Link Omada, ale kontroler działa u mnie, a nie w chmurze producenta. Serwery i zarządzanie switchami oraz punktami dostępowymi mają osobne VLAN-y. Następny krok to wydzielenie urządzeń IoT, kamer i sieci dla dzieci, z kontrolą rodzicielską opartą na harmonogramach ACL.

DNS w sieci obsługują AdGuard Home i Technitium. Reklamy i śledzenie znikają na wszystkich urządzeniach naraz, także na telewizorze i konsoli.

Dostęp i ochrona

  • jedno reverse proxy z certyfikatami Let’s Encrypt dla wszystkich usług publicznych,
  • CrowdSec analizuje logi proxy i blokuje adresy na zaporze, korzystając też ze wspólnej listy zgłaszanych adresów,
  • usługi administracyjne są dostępne tylko z sieci domowej albo przez WireGuard,
  • każdą usługę co minutę lub dwie sprawdza osobny, mały komputer, a awarię zgłasza SMS-em z własnej bramki.

Aplikacje

Główny serwer to poczciwy Xeon z 10 rdzeniami i 20 wątkami oraz 94 GB RAM. Na nim działa większość kontenerów. Mniejsza maszyna obsługuje usługi sieciowe: kontroler, proxy, VPN, DNS i bramkę SMS. Dzięki temu restart serwera aplikacji nie odcina domu od internetu.

Każda usługa ma swój katalog z docker-compose i prostym skryptem wdrożenia, a całość widać w Portainerze. Beszel pokazuje obciążenie i zajętość dysków wszystkich maszyn w jednym miejscu.

Serwery w szafie z równo poprowadzonymi niebieskimi i zielonymi kablami sieciowymi w serwerowni Wikimedii(powiększ)
Tak wygląda porządne okablowanie: serwerownia Wikimedii w Tampie. Zdjęcie: Midom, Wikimedia Commons, CC BY 2.0

Dane i kopie

Dane trzyma NAS z macierzą RAID5 na czterech dyskach i cache na dwóch dyskach NVMe w RAID1. Co noc w dni robocze robi pełne obrazy serwerów, a retencję ustawiam osobno dla każdej maszyny.

Od listopada działa druga, niezależna kopia: codziennie zwykłe pliki trafiają na osobny dysk 12 TB, w wersjach z ostatnich dni, tygodni i miesięcy. Taki dysk da się podłączyć do dowolnego komputera z Linuksem i odzyskać dane bez żadnego specjalnego oprogramowania.

Do tego zasada, której pilnuję najbardziej: przed każdą ingerencją ręczna kopia konfiguracji i danych usługi. Tę samą zasadę stosuję zresztą przy każdej zmianie na produkcji tej strony.

Czego mnie to nauczyło

Homelab to najlepsza szkoła administracji, bo każdy błąd boli osobiście. Kilka lekcji, które zostały ze mną na dłużej:

  • monitoring bez alarmów to tylko ładny wykres. Raz poczta nie działała kilka dni, zanim ktokolwiek zauważył. Dziś alarm przychodzi SMS-em po minucie lub dwóch,
  • dwie kopie zapasowe nie mogą czytać serwera w tym samym czasie. Jednej nocy zawiesiły go na pięć godzin, więc dziś jedna sama ustępuje drugiej,
  • backup, którego nikt nie odtworzył, jest tylko nadzieją. Próbne odtwarzanie to stały punkt planu,
  • dokumentacja ma być w repozytorium, obok konfiguracji, i ma mówić, jak jest dziś, a nie jak było pół roku temu,
  • nazwa maszyny to nie sprzęt. Po wymianie komputera pod tą samą nazwą łatwo pomylić, o którą fizyczną maszynę chodzi,
  • mniej znaczy lepiej. Usunięcie zbędnej nakładki na Dockera, która kilka razy dziennie się wywracała, dało więcej stabilności niż niejedna nowa usługa.
Szafa krosowa z plątaniną niebieskich kabli sieciowych(powiększ)
Tak homelab wyglądać nie powinien. Zdjęcie: Wikimedia Commons, domena publiczna

Strona serwera: my78.pl

Serwer ma swoją stronę. Na wejściu kręci się płyta 78 obrotów na minutę, którą można złapać i zakręcić. Pod spodem jest spis usług dla rodziny z krótkim opisem każdej z nich.

Panele administracyjne pokazują się na tej samej stronie tylko w domowej sieci i przez VPN. Serwer sprawdza adres odwiedzającego, więc z internetu nie widać nawet ich nazw. Strona powstała w Astro, a nowa wersja wdraża się sama po oznaczeniu jej w repozytorium.

Czarna płyta gramofonowa z pomarańczową etykietą my78 obok napisu: Tu się kręci domowy serwer(powiększ)
Strona serwera: my78.pl

Homelab nie jest po to, żeby było taniej. Jest po to, żeby wiedzieć, gdzie są moje dane, i umieć to naprawić, gdy przestanie działać.

- Aleksander Kowal

Co dalej

  • pełna segmentacja sieci: IoT, kamery i osobna sieć dla dzieci z limitem czasu,
  • jedno konto dla każdego domownika we wszystkich usługach (SSO),
  • próbne odtwarzanie kopii jako cykliczne zadanie, a nie jednorazowa akcja,
  • integracja alarmu, licznika energii i gniazdek w Home Assistant bez chmur producentów.

Każdą warstwę i aplikację opisuję osobno w serii wpisów na blogu. Zaczyna ją wpis Zbudowałem serwer domowy. Po co mi własna chmura.

Stack

  • Ubuntu Server, Docker, Portainer, Beszel,
  • TP-Link Omada z lokalnym kontrolerem, VLAN-y,
  • AdGuard Home, Technitium DNS, Cloudflare DNS,
  • reverse proxy z Let’s Encrypt, CrowdSec, WireGuard,
  • NAS z RAID5 i cache NVMe, nocne obrazy serwerów,
  • Uptime Kuma z alarmami SMS, kopia plików na dysk USB,
  • Mailcow, Nextcloud, Immich, Vaultwarden, OneDev, n8n, Home Assistant,
  • Astro (strona my78.pl).

Kliknij albo przewiń, żeby przybliżyć. Przeciągnij, żeby przesunąć.Stuknij dwa razy albo rozsuń palce, żeby przybliżyć.

Przydał się ten tekst?

Nowe teksty na maila

Raz na jakiś czas, gdy pojawi się nowy wpis albo projekt. Bez reklam.

Masz pomysł, pytanie albo uwagę? Napisz do mnie:Włącz JavaScript, żeby zobaczyć adres e-mail