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.
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:
# 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:
sudo apt install docker.io docker-compose-v2# plik docker-compose.yml z obrazem nextcloud:stable + PostgreSQLNiezależ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:
docker run -d --name jellyfin \ -p 8096:8096 \ -v /srv/data/media:/media:ro \ -v /srv/data/jellyfin:/config \ jellyfin/jellyfinDo 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:
# 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 8Kopie 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:
sudo apt install unattended-upgradessudo dpkg-reconfigure -plow unattended-upgrades2. Firewall. ufw – domyślnie odmawiaj, otwieraj tylko to, czego potrzebujesz:
sudo apt install ufwsudo ufw default deny incomingsudo ufw allow 22/tcp # SSHsudo ufw allow 80,443/tcp # HTTP/HTTPS (reverse proxy)sudo ufw enable3. SSH. Tylko klucze, zero haseł, fail2ban na włamania:
sudo nano /etc/ssh/sshd_config# PasswordAuthentication no# PermitRootLogin nosudo systemctl restart sshsudo apt install fail2ban4. 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:
[Unit]Description=Kopia zapasowa danych na dysk USBAfter=network-online.target
[Service]Type=oneshotExecStart=/usr/local/bin/backup-danych.shStandardOutput=journal
[Install]WantedBy=multi-user.target[Unit]Description=Codzienny backup o 03:00
[Timer]OnCalendar=*-*-* 03:00:00Persistent=true
[Install]WantedBy=timers.targetWłączenie:
sudo systemctl daemon-reloadsudo systemctl enable --now backup-danych.timersystemctl list-timers # zobacz zaplanowane zadaniaPersistent=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.
Najczęściej zadawane pytania
Jaką dystrybucję wybrać na domowy serwer?
Jak zabezpieczyć domowy serwer przed atakami z internetu?
Czy domowy serwer zużywa dużo prądu?
Powiązane posty
- devops
Własny serwer mailowy: Postfix + Dovecot + SPF/DKIM/DMARC na Debianie 12
Pełny tutorial postawienia własnego serwera mailowego na Debian 12 z Postfix, Dovecot, OpenDKIM, SPF i DMARC. Konfiguracja krok po kroku, troubleshoot, realne pułapki.
6 min - linux
BTRFS + snapshoty na Arch Linux / CachyOS: poradnik krok po kroku
Pełny tutorial konfiguracji BTRFS z subvolume @ i @home, snapshotami Timeshift i Snapper, kompresją zstd. Dla Arch Linux, CachyOS i Manjaro. Działające komendy.
5 min