Wszystkie posty
linux

Domowy serwer Linux: wybór dystrybucji, usługi i bezpieczeństwo

Jak zbudować domowy serwer: wybór dystrybucji, usługi (Nextcloud, media, backup), bezpieczeństwo i zarządzanie systemd. Konkretna konfiguracja z jednostkami systemd.

4 min czytaniaAktualizacja: 12 lipca 2026

Domowy serwer to jedno z tych przedsięwzięć, które dają najwięcej satysfakcji przy najmniejszych kosztach: własny dysk sieciowy, własna chmura, własne kopie zapasowe, dostęp do mediów z każdego urządzenia. Ale to też projekt, w którym źle podjęte decyzje zemścią się po miesiącach – dlatego w tym artykule opisuję sprawdzoną konfigurację: wybór dystrybucji, usługi, które warto postawić, oraz zasady bezpieczeństwa, których nie pomijam na żadnym z moich serwerów.

Wybór sprzętu i dystrybucji

Sprzęt: mini-PC z procesorem Intel N100/N150 albo stary laptop – 8-16 GB RAM, dysk SSD na system (250 GB wystarczy) i ewentualnie HDD na dane. Pobór mocy takiej konfiguracji to 8-15 W, czyli 20-40 zł miesięcznie. Unikaj starych desktopów z wydajnymi GPU – zapłacisz za prąd więcej niż za sprzęt.

Dystrybucja: Debian 13 (Trixie) albo Ubuntu Server LTS. Powody: stabilność, długie wsparcie, pakiety bez niespodzianek. Na serwerze nie chcesz najnowszych wersji oprogramowania, tylko przewidywalność. Jeśli masz doświadczenie z Arch i lubisz świeże pakiety – na stacji roboczej, nie na serwerze, na którym trzymasz dane rodzinne.

Fundament: dyski i system plików

Zanim zainstalujesz cokolwiek, zaplanuj dyski. Moja konfiguracja:

Terminal window
# System: 1x SSD (sda) — / na BTRFS z subvolume @ i @home
# Dane: 1x HDD albo większy SSD (sdb) — /srv/data na BTRFS (albo ext4, jeśli nie chcesz snapshotów)
# Montowanie dysku danych w /etc/fstab:
# /dev/sdb1 /srv/data btrfs defaults,noatime,compress=zstd 0 0
# Snapshot przed aktualizacją — to standard, nie opcja:
sudo snapper -c root create --description "before-upgrade"

Na BTRFS używam snappera (konfiguracja opisana w artykule o snapshotach BTRFS); na ext4 po prostu robię kopie konfiguracji. Dysk danych montuję osobno – to ułatwia reinstalację systemu bez ruszania danych.

Usługa 1: Nextcloud – własna chmura

Nextcloud to serce domowego serwera: synchronizacja plików, kalendarz, kontakty, galeria. Instalacja najprostsza na Debianie przez snapy albo w kontenerze Docker:

Terminal window
sudo apt install docker.io docker-compose-v2
# plik docker-compose.yml z obrazem nextcloud:stable + PostgreSQL

Niezależnie od metody: postaw Nextclouda za odwrotnym proxy (Caddy albo Nginx) z HTTPS. Caddy robi to za darmo i automatycznie:

cloud.example.com {
reverse_proxy localhost:8080
}

Po wystawieniu na internet konfiguruję tylko niezbędne rzeczy: dostęp przez https://, konta tylko dla domowników, limit rozmiaru uploadu przez Nginx, a na koniec włączam w Nextcloudzie “Background jobs” przez cron – inaczej synchronizacja potrafi się wieszać.

Usługa 2: Media – Jellyfin zamiast komercyjnych serwisów

Do biblioteki filmów, seriali i muzyki używam Jellyfina – w pełni otwarty, bez subskrypcji, z aplikacjami na telewizor i telefon:

Terminal window
docker run -d --name jellyfin \
-p 8096:8096 \
-v /srv/data/media:/media:ro \
-v /srv/data/jellyfin:/config \
jellyfin/jellyfin

Do pobierania treści legalnych (np. podcasty, materiały z licencją CC) możesz dodać kontener z narzędziem do pobierania, ale pamiętaj o prawie autorskim. Jellyfin transkoduje wideo na bieżąco – na N100 spokojnie obsłuży 2-3 strumienie Full HD.

Usługa 3: Backup – 3-2-1 bez kompromisów

Najważniejsza usługa na serwerze to ta, która chroni pozostałe. Reguła 3-2-1: 3 kopie danych, 2 różne nośniki, 1 kopia poza domem. U mnie:

Terminal window
# Kopia dzienna na zewnętrzny dysk USB (rsync z wersjami)
rsync -a --delete --link-dest=/mnt/usb/backup-$(date -d yesterday +%Y%m%d) \
/srv/data/ /mnt/usb/backup-$(date +%Y%m%d)/
# Kopia tygodniowa do chmury (rclone do S3/B2)
rclone sync /srv/data ważne:backup-domowy --transfers 8

Kopie robi cron, a ja dostaję e-mail z raportem. Backup bez testu odzyskiwania to nie backup – raz na kwartał przywracam próbkę danych na czystą maszynę.

Bezpieczeństwo – cztery filary

1. Aktualizacje. Na Debianie włączam automatyczne aktualizacje bezpieczeństwa:

Terminal window
sudo apt install unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

2. Firewall. ufw – domyślnie odmawiaj, otwieraj tylko to, czego potrzebujesz:

Terminal window
sudo apt install ufw
sudo ufw default deny incoming
sudo ufw allow 22/tcp # SSH
sudo ufw allow 80,443/tcp # HTTP/HTTPS (reverse proxy)
sudo ufw enable

3. SSH. Tylko klucze, zero haseł, fail2ban na włamania:

Terminal window
sudo nano /etc/ssh/sshd_config
# PasswordAuthentication no
# PermitRootLogin no
sudo systemctl restart ssh
sudo apt install fail2ban

4. VPN zamiast portów. Jeśli chcesz sięgać do serwera z zewnątrz, nie otwieraj portów dla każdej usługi. Postaw WireGuard i wystaw na świat tylko jeden port VPN – reszta usług działa tylko w sieci lokalnej. To domyka temat dostępu zdalnego bez dziurawienia firewalla.

Zarządzanie usługami przez systemd

Systemd zarządza wszystkim – od usług systemowych po Twoje własne. Oto przykład jednostki dla skryptu backupu, który ma działać codziennie:

/etc/systemd/system/backup-danych.service
[Unit]
Description=Kopia zapasowa danych na dysk USB
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup-danych.sh
StandardOutput=journal
[Install]
WantedBy=multi-user.target
/etc/systemd/system/backup-danych.timer
[Unit]
Description=Codzienny backup o 03:00
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target

Włączenie:

Terminal window
sudo systemctl daemon-reload
sudo systemctl enable --now backup-danych.timer
systemctl list-timers # zobacz zaplanowane zadania

Persistent=true oznacza, że jeśli serwer spał o 3:00, zadanie wykona się przy najbliższym włączeniu – to chroni przed przegapionymi backupami. Diagnostyka to journalctl -u backup-danych.service -f – systemd loguje wszystko, bez osobnych plików logów.

Co dalej?

Domowy serwer rośnie razem z Tobą: najpierw chmura i media, potem backup, później monitoring (netdata), menedżer haseł (Vaultwarden) albo własny e-mail – o tym ostatnim pisałem osobno w artykule o własnym serwerze mailowym. Organizacje non-profit znajdą też sporo inspiracji w zestawieniu open-source’owych narzędzi do zarządzania.

Najważniejsza zasada na koniec: zacznij mało, rozwijaj stopniowo. Serwer, który działa stabilnie od dwóch lat, jest wart więcej niż taki z dwudziestoma usługami, który padł po tygodniu.

Tagi:#linux#serwer-domowy#nextcloud#systemd#nas

Najczęściej zadawane pytania

Jaką dystrybucję wybrać na domowy serwer?
Dla większości osób najlepsza jest Debian albo Ubuntu Server LTS – stabilne pakiety, ogromna dokumentacja, łatwe aktualizacje. Jeśli masz doświadczenie z Arch lub CachyOS, możesz użyć ich na stacji, ale na serwerze cenisz przewidywalność. Wszystkie moje serwery domowe działają na Debianie; wirtualne eksperymenty robię w kontenerach, a nie na systemie bazowym.
Jak zabezpieczyć domowy serwer przed atakami z internetu?
Cztery fundamenty: (1) aktualizacje – włącz automatyczne bezpieczne aktualizacje, (2) firewall – ufw i zezwalaj tylko na potrzebne porty, (3) logowanie – wyłącz logowanie hasłem, używaj kluczy SSH z fail2banem, (4) nie wystawiaj wszystkiego na świat – VPN (WireGuard) do dostępu z zewnątrz zamiast portów dla każdej usługi. Do tego regularne snapshoty BTRFS przed każdą aktualizacją.
Czy domowy serwer zużywa dużo prądu?
Mini-PC (np. Intel N100) z kilkoma dyskami SSD zużywa 8-15 W w spoczynku, czyli 20-40 zł miesięcznie. Stary desktop z procesorem gamingowym potrafi ciągnąć 60-100 W – to 80-150 zł miesięcznie. Przy wyborze sprzętu licz koszt energii na 3 lata, a nie tylko cenę zakupu. SSD zamiast HDD to również niższy pobór i brak hałasu.

Powiązane posty

MAHAWIR IWANOWSKI · WROCŁAW

Przyszłość organizacji — budowana tam, gdzie psychologia spotyka inżynierię, renderowana w kodzie, dostarczana z intencją.

Przyszłość Organizacji w Kodzie

AI · Fullstack · Psychology

© 2026 Mahawir Iwanowski · Wszystkie prawa zastrzeżone.