Najlepsze aplikacje do self-hostingu w 2026 roku
Zestawienie 25 sprawdzonych aplikacji do samodzielnego hostowania na VPS. Każdy opis zawiera realne zużycie RAM, wymagania dyskowe oraz kluczowe problemy przy konfiguracji.
Co budujesz
To nie jest pojedyncza aplikacja, lecz zestawienie. Stanowi ono centrum dla pozostałych treści w witrynie: dwudziestu pięciu aplikacji, które w 2026 roku faktycznie warto uruchomić na własnym VPS, pogrupowanych według ich przeznaczenia. Dla każdej z nich wskazano usługę, którą zastępuje, realne zapotrzebowanie na pamięć RAM i miejsce na dysku oraz jeden kluczowy aspekt, którego pominięcie spowoduje problemy. Linki prowadzą do pełnych przewodników krok po kroku, jeśli zostały przygotowane.
Zarządzam serwerami VPS od piętnastu lat i większość z tych aplikacji uruchamiam na własnych maszynach. Dlatego podane poniżej wartości zużycia zasobów odzwierciedlają faktyczne zapotrzebowanie aplikacji przy niewielkim, rzeczywistym obciążeniu, a nie "minimalne wymagania" z materiałów marketingowych. Traktuj te liczby jako budżet, do którego należy dodać margines bezpieczeństwa.
Wymagania wstępne i rzeczywistość
Każda z wymienionych aplikacji działa na świeżej instalacji Ubuntu 24.04 na VPS typu KVM z dostępem root lub sudo. Ta sama lista sprawdzi się na serwerze w domu, a jeśli rozważasz koszt wynajmu w porównaniu z jednorazowym zakupem pamięci RAM, Proxmox w domu kontra wynajęty VPS przedstawia obliczenia dotyczące sprzętu i zużycia energii. Prawie wszystkie aplikacje są dostarczane jako kontenery Docker, więc wystarczy zainstalować Docker raz, aby obsłużyć niemal całą listę (dwa wyjątki, Cloudron i CasaOS, instalują się bezpośrednio na hoście za pomocą własnych skryptów instalacyjnych, patrz sekcja paneli sterowania):
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-worldJeśli polecenia docker kończą się błędem permission denied while trying to connect to the Docker daemon socket, oznacza to pominięcie kroku dodania do grupy lub brak otwarcia nowej powłoki; należy wylogować się i zalogować ponownie. Jeśli docker compose zwraca docker: 'compose' is not a docker command, oznacza to posiadanie starego, samodzielnego pliku binarnego; powyższy skrypt instaluje nowoczesną wtyczkę Compose, którą wywołuje się jako docker compose (ze spacją, nie z myślnikiem).
Trzy fakty determinują kształt wszystkiego, co opisano poniżej. Po pierwsze, ograniczeniem jest pamięć RAM, a nie dysk czy procesor. VPS z 1 GB RAM obsłuży jedną małą aplikację i nic więcej. 4 GB to optymalny punkt dla serwera z kilkoma usługami. 2 GB to kłopotliwy przedział, w którym początkujący użytkownik uruchamia trzecią usługę, trafia na ciche zakończenie procesu przez mechanizm Out-Of-Memory i nie może ustalić, dlaczego kontener zniknął; sudo dmesg pokazuje linię Out of memory: Killed process, którą przechwycił demon. Po drugie, każda usługa publiczna wymaga nazwy domenowej i certyfikatu; goły adres IP sprawdza się w testach, ale zawodzi w momencie, gdy aplikacja mobilna lub przeglądarka mają zaufać połączeniu. Po trzecie, dwa porty decydują o połowie możliwości: przychodzący ruch na porcie 80 musi docierać do serwera w celu przejścia standardowej weryfikacji certyfikatu HTTP-01 (weryfikacja DNS-01 pozwala tego uniknąć, potwierdzając kontrolę nad domeną za pomocą rekordu DNS, co jest przydatne, gdy port 80 jest zablokowany), a wychodzący port 25 jest blokowany przez większość dostawców, dlatego obsługa poczty e-mail znajduje się na liście rzeczy odradzanych na końcu.
Pliki i zdjęcia
- Nextcloud zastępuje Google Drive, Dropbox oraz Google Calendar w jednym pakiecie. Należy zarezerwować 1–2 GB pamięci RAM oraz dodatkowe miejsce na pliki. Uwaga: SQLite sprawdza się w wersji demonstracyjnej, ale jest pułapką w środowisku produkcyjnym. Od początku należy instalować rozwiązanie na PostgreSQL, ponieważ migracja bazy danych po wgraniu plików jest najczęstszą przyczyną awarii Nextcloud. Pełny przewodnik Nextcloud na VPS z Docker, TLS i kopiami zapasowymi pozwala na poprawną konfigurację od pierwszego uruchomienia.
- Immich zastępuje Google Photos, oferując aplikację mobilną z funkcją automatycznego przesyłania zdjęć oraz wyszukiwaniem obiektów i twarzy. Należy zarezerwować 6 GB pamięci RAM (według dokumentacji Immich jest to minimum, 8 GB zapewnia komfortową pracę), przy czym kontener uczenia maszynowego jest najbardziej zasobożerny. Wymagana przestrzeń dyskowa to rozmiar biblioteki powiększony o około dwadzieścia procent na miniatury. Uwaga: Immich stosuje wersjonowanie semantyczne od czasu wydania wersji stabilnej v2.0.0 w październiku 2025 roku, co oznacza, że zmiany powodujące niekompatybilność są zarezerwowane dla wydań głównych. Projekt przeszedł już do wersji v3, dlatego nigdy nie należy bezrefleksyjnie pobierać obrazu
latest, ponieważ spowoduje to automatyczne przejście do kolejnej wersji głównej. Należy przypiąć wersję i zapoznać się z informacjami o wydaniu przed każdą aktualizacją. Przewodnik własna biblioteka zdjęć Immich opisuje bezpieczną ścieżkę aktualizacji. Jeśli próg 6 GB RAM przekracza możliwości serwera, artykuł porównanie PhotoPrism i Immich zestawia oba rozwiązania pod kątem rzeczywistego zużycia pamięci, aplikacji mobilnych oraz poleceń kopii zapasowych wymaganych przed rozpoczęciem korzystania z biblioteki. - Seafile zastępuje Dropbox, oferując najszybszy silnik synchronizacji z wymienionych rozwiązań. Należy zarezerwować około 1 GB pamięci RAM. Uwaga: Seafile przechowuje pliki jako bloki adresowane zawartością, a nie jako zwykłe pliki na dysku, dlatego nie można przeglądać danych za pomocą
ls, a kopie zapasowe należy wykonywać za pomocą narzędzi Seafile, a nie poprzez kopiowanie folderów.
Hasła
- Vaultwarden zastępuje płatne plany Bitwarden, LastPass oraz 1Password, oferując lekki serwer napisany w Rust, który obsługuje protokół Bitwarden. Dzięki temu wszystkie oficjalne aplikacje i rozszerzenia przeglądarkowe Bitwarden działają bez zmian. Należy zarezerwować 100–200 MB pamięci RAM oraz minimalną ilość miejsca na dysku. Uwaga: ten serwer przechowuje wszystkie hasła użytkownika, dlatego TLS oraz kopie zapasowe nie są opcjonalne, lecz stanowią kluczowy element wdrożenia. Należy ustawić
ADMIN_TOKENjako skrót Argon2, ponieważ token w postaci jawnego tekstu w pliku compose jest hasłem do panelu administracyjnego serwera. Panel ten umożliwia zarządzanie wszystkimi użytkownikami oraz zmianę ustawień serwera, a zapisanie go w postaci jawnej naraża go na odczyt przez każdą osobę mającą dostęp do pliku. Przewodnik menedżer haseł Vaultwarden stanowi najlepszy punkt wyjścia do rozpoczęcia samodzielnego hostowania usług.
Media
- Jellyfin zastępuje Plex oraz, w przypadku własnej biblioteki, Netflix. Jest w pełni otwarty, nie wymaga konta i nie blokuje zdalnego strumieniowania za opłatami. Wymaga 1–2 GB RAM w stanie spoczynku, ale podczas transkodowania mocno obciąża CPU. Uwaga: programowe transkodowanie strumienia 4K przeciąży mały VPS. Należy zapewnić akcelerację sprzętową lub przechowywać pliki w formacie obsługiwanym bezpośrednio przez klientów (Direct Play), aby serwer jedynie przesyłał dane. Przewodnik Jellyfin media server on a VPS wyjaśnia różnice. Po uruchomieniu, Halcyon zmienia tę samą bibliotekę w wirtualną wypożyczalnię kaset z lat 90. w przeglądarce. To najskuteczniejszy sposób, aby domownicy przeglądali zasoby zamiast bezmyślnie przewijać listę.
- Navidrome zastępuje Spotify w przypadku własnej kolekcji muzycznej, strumieniując ją do dowolnej aplikacji zgodnej z Subsonic. Wymaga 150–300 MB RAM; napisany w Go, jest niemal niezauważalny dla systemu. Uwaga: pierwsze skanowanie biblioteki odczytuje tagi każdego pliku i przy dużej kolekcji może zająć godzinę. Błędne tagi ID3 skutkują nieczytelną biblioteką.
- Audiobookshelf zastępuje Audible i aplikacje do podcastów, synchronizując pozycję odtwarzania między urządzeniami. Wymaga 200–500 MB RAM. Uwaga: wymaga ścisłej struktury folderów (jeden folder na książkę). Nieuporządkowany folder importu skutkuje niepełną, błędnie wykrytą biblioteką, której poprawa jest czasochłonna.
Automatyzacja i AI
- n8n zastępuje Zapier oraz Make wizualnym kreatorem przepływów pracy, który jest własnością użytkownika i nie wiąże się z opłatami za każde zadanie. Należy zarezerwować od 400 MB do 1 GB pamięci RAM. Uwaga: n8n szyfruje zapisane dane uwierzytelniające kluczem generowanym przy pierwszym uruchomieniu. W przypadku utraty tego klucza lub zapomnienia o ustawieniu
N8N_ENCRYPTION_KEY, co prowadzi do jego ponownego wygenerowania, wszystkie zapisane dane stają się nieczytelne i wymagają ponownego wprowadzenia. Przewodnik self-hosted n8n with HTTPS zawiera instrukcje dotyczące przypięcia klucza oraz umieszczenia certyfikatu przed adresami URL webhooków. - Ollama zastępuje subskrypcję ChatGPT w zakresie lokalnego, prywatnego wnioskowania LLM. Zasoby zależą od modelu: model 7–8B wymaga około 8 GB pamięci RAM, a jego rozmiar na dysku zależy od kwantyzacji – zazwyczaj jest to od 4 do 5 GB dla standardowego pobrania 4-bitowego oraz 13 GB lub więcej dla pełnej precyzji fp16. Uwaga: na serwerze VPS wyposażonym tylko w procesor CPU wnioskowanie jest poprawne, ale powolne – należy spodziewać się tempa liczonego w słowach na sekundę, a nie natychmiastowych odpowiedzi znanych z interfejsów API. Warto dostosować oczekiwania lub wynająć maszynę z GPU. Przewodnik run Ollama to self-host an LLM zawiera realistyczne dane dotyczące wydajności.
Komunikacja
- Rocket.Chat zastępuje Slack w pracy zespołowej, oferując wątki, połączenia głosowe oraz integracje. Należy zarezerwować co najmniej 2 GB pamięci RAM, ponieważ aplikacja działa w oparciu o MongoDB, co stanowi główne obciążenie. Uwaga: każde główne wydanie Rocket.Chat wspiera tylko określony zakres wersji MongoDB (wersja 8.x wymaga MongoDB 8.0 lub nowszego, podczas gdy 7.x działała na 6.0 lub 7.0). Zgodnie z wytycznymi aktualizacji Rocket.Chat, należy przechodzić przez kolejne główne wersje po kolei; pominięcie jednej z nich może doprowadzić do uszkodzenia bazy danych, dlatego aktualizacje należy przeprowadzać stopniowo. Przewodnik Rocket.Chat z Docker Compose opisuje proces aktualizacji wersji krok po kroku.
- Matrix (Synapse) zastępuje Slack i Discord, oferując sfederowaną sieć z szyfrowaniem end-to-end, w której użytkownik posiada własny serwer domowy. Należy zarezerwować 1–2 GB pamięci RAM, której zużycie rośnie wraz z dołączaniem do dużych publicznych pokoi. Uwaga: zużycie pamięci przez Synapse gwałtownie rośnie w przypadku dużych sfederowanych pokoi. Serwer musi działać na PostgreSQL; domyślna baza SQLite sprawdza się wyłącznie w testach dla jednego użytkownika i przestaje działać w momencie uruchomienia federacji. Jeśli Synapse jest zbyt zasobożerny, można skorzystać z lżejszych serwerów Conduit lub Dendrite, które obsługują ten sam protokół.
Sieć i dostęp
- WireGuard zastępuje komercyjne rozwiązania VPN, zapewniając prywatny tunel do własnego adresu IP oraz pozostałych usług. Wymaga minimalnych zasobów, zajmuje poniżej 50 MB, a operacje kryptograficzne są wykonywane w jądrze systemu. Uwaga: w środowiskach wirtualizacji kontenerowej (OpenVZ, niektóre LXC) moduł nie działa z powodu
RTNETLINK answers: Operation not supported; wymagana jest wirtualizacja KVM. Przewodnik self-hosted WireGuard VPN stanowi dokumentację referencyjną, a powiązanie usług z tunelem pozwala na całkowite odizolowanie ich od publicznego Internetu. Jeśli ręczna edycja konfiguracji peerów dla każdego nowego urządzenia jest niepożądana, uruchomienie Tailscale subnet router na VPS pozwala na udostępnienie całej prywatnej podsieci pozostałym maszynom po zatwierdzeniu trasy i trwałym skonfigurowaniu IP forwarding. - Traefik zastępuje ręcznie tworzone wirtualne hosty w nginx oraz manualne odnawianie certyfikatów. Automatycznie wykrywa kontenery na podstawie etykiet Docker i pobiera certyfikaty Let's Encrypt. Wymaga około 100 MB pamięci RAM. Uwaga: model konfiguracji oparty na etykietach jest początkowo nieintuicyjny, a pojedyncza błędna etykieta powoduje brak routingu do aplikacji bez wyświetlenia czytelnego błędu. Przewodnik Traefik reverse proxy for multiple Docker apps został przygotowany specjalnie do obsługi wielu aplikacji z tej strony za pomocą jednego punktu wejścia.
- AdGuard Home zastępuje Pi-hole oraz płatne usługi filtrowania DNS, blokując reklamy i trackery dla wszystkich urządzeń w sieci na poziomie warstwy DNS. Wymaga 100–150 MB pamięci RAM. Uwaga: usługa wymaga portu 53, który jest zajęty przez
systemd-resolvedw systemie Ubuntu; uruchomienie kończy się błędemlisten udp 0.0.0.0:53: bind: address already in use, dopóki port nie zostanie zwolniony.
Monitoring
- Uptime Kuma zastępuje Pingdom, UptimeRobot oraz StatusPage, oferując przejrzysty pulpit nawigacyjny i powiadomienia wysyłane do niemal każdego kanału. Wymaga 150–300 MB pamięci RAM. Pułapka, którą wszyscy pomijają: monitoruj serwer produkcyjny z innej maszyny. Uptime Kuma uruchomiony na tym samym serwerze, który nadzoruje, nie wykryje awarii całego hosta. Przewodnik monitorowanie statusu w Uptime Kuma opisuje konfigurację zewnętrzną.
- Zabbix zastępuje Datadog i korporacyjne pakiety monitorujące, zapewniając szczegółowe metryki oparte na agentach, wyzwalacze i historię zdarzeń. Wymaga co najmniej 2 GB pamięci RAM oraz własnej bazy danych. Pułapka: Zabbix jest potężny, ale jego konfiguracja jest skomplikowana. To rozwiązanie zbyt rozbudowane do monitorowania trzech kontenerów, ale właściwe dla całej floty serwerów. Zacznij od Uptime Kuma; przejdź do serwera monitorującego Zabbix, gdy faktycznie będziesz posiadać infrastrukturę wymagającą nadzoru.
Prometheus i Grafana celowo nie znalazły się na tej liście: są to doskonałe narzędzia do zarządzania flotą, jednak ich uruchomienie i dostrojenie jest zbyt kosztowne w przypadku osobistego stosu technologicznego składającego się z dwóch lub trzech maszyn. Uptime Kuma oraz Zabbix odpowiadają na te same pytania w tej skali, wymagając przy tym mniej pracy przy utrzymaniu.
Pulpity nawigacyjne i panele sterowania
Zmieniają one cały model pracy: zamiast ręcznego uruchamiania plików compose, aplikacjami zarządza panel.
- Cloudron realizuje potrzebę instalacji typu „jedno kliknięcie” dzięki dopracowanemu sklepowi z aplikacjami, automatycznej obsłudze TLS i wbudowanym kopiom zapasowym. Wymaga minimum 2 GB pamięci RAM, zalecane 4 GB. Uwaga: rozwiązanie jest silnie sprofilowane i wymaga pełnej kontroli nad serwerem; instaluje się bezpośrednio na czystym systemie Ubuntu za pomocą własnego skryptu
cloudron-setup, a nie jako kontener. Dokumentacja wyklucza hosty ARM, LXC, Docker oraz OpenVZ. Wersja darmowa obsługuje do dwóch aplikacji, powyżej tego limitu jest to produkt płatny. - CasaOS zastępuje nieuporządkowany pulpit domowego laboratorium przyjazną siatką aplikacji; jest darmowy i lekki. Instaluje się na hoście za pomocą własnego skryptu (
curl -fsSL https://get.casaos.io | sudo bash), nie jako kontener, a następnie uruchamia aplikacje w środowisku Docker. Sam system CasaOS wymaga około 150 do 300 MB pamięci RAM. Uwaga: rozwiązanie zaprojektowano z myślą o zaufanej sieci domowej i nie jest ono utwardzone pod kątem wystawienia w publicznym Internecie. Nie należy udostępniać go bezpośrednio; dostęp powinien odbywać się przez WireGuard. - Coolify zastępuje Heroku, Vercel i Netlify, oferując wdrożenia przez git-push, bazy danych i podglądy na własnym serwerze. Wymaga minimum 2 GB pamięci RAM. Uwaga: jest to młody projekt, który rozwija się dynamicznie, dlatego należy przypinać wersje i czytać informacje o wydaniu przed aktualizacją. Porównanie Cloudron vs CasaOS vs Coolify szczegółowo opisuje, które z tych rozwiązań najlepiej pasuje do konkretnych potrzeb.
Narzędzia programistyczne i zwiększające produktywność
- Gitea (lub Forgejo) zastępuje GitHub w zakresie prywatnych repozytoriów, zgłoszeń (issues) i CI. Wymaga 200–500 MB pamięci RAM. Uwaga: Forgejo to zarządzany przez społeczność fork Gitea, obecnie częściej rekomendowany; oba rozwiązania są doskonałe, jednak należy wybrać jedno i tworzyć kopie zapasowe repozytoriów oraz bazy danych jednocześnie. Kopia zapasowa samego repozytorium nie zawiera informacji o zgłoszeniach i pull requestach.
- Paperless-ngx zastępuje segregator i płatne skanery dokumentów, wykonując OCR wszystkich plików, co umożliwia ich przeszukiwanie. Wymaga około 1 GB pamięci RAM, z okresowymi skokami obciążenia procesora podczas operacji OCR. Uwaga: jakość wyników OCR zależy od jakości skanów, a ponowne przetwarzanie dużego archiwum jest czasochłonne. Należy przeprowadzić optymalizację przed masowym importem dokumentów z wielu lat.
- Actual Budget zastępuje YNAB oraz zamknięty serwis Mint, oferując szybkie, lokalne i prywatne budżetowanie metodą kopertową. Wymaga około 150 MB pamięci RAM. Uwaga: automatyczna synchronizacja z bankiem jest wbudowana, ale opcjonalna. Działa dopiero po rejestracji u regionalnego dostawcy, takiego jak SimpleFIN Bridge lub Enable Banking, oraz dodaniu własnych danych uwierzytelniających API. Domyślnie transakcje importuje się ręcznie.
- FreshRSS zastępuje Feedly i nieistniejący już Google Reader, oferując szybki, prywatny czytnik kanałów RSS z aplikacjami mobilnymi. Wymaga około 150 MB pamięci RAM. Uwaga: należy skonfigurować odświeżanie kanałów oparte na cron, w przeciwnym razie kanały aktualizują się tylko w momencie otwarcia strony.
- BookStack zastępuje Notion i Confluence w dokumentacji, organizując treści w formie półek, książek i stron. Wymaga około 500 MB pamięci RAM przy użyciu PHP i MySQL. Uwaga: narzuca własną strukturę treści zamiast notatek o dowolnym formacie, co dla jednych jest zaletą, a dla innych ograniczeniem. Warto przetestować rozwiązanie przed przeniesieniem całej bazy wiedzy.
- Home Assistant zastępuje SmartThings i szereg aplikacji producentów, integrując inteligentny dom lokalnie. Wymaga około 1 GB pamięci RAM. Uwaga: większość funkcji wymaga dostępu do urządzeń w sieci lokalnej, dlatego lepiej sprawdza się na sprzęcie domowym niż na zdalnym VPS. W razie potrzeby należy korzystać z pulpitu nawigacyjnego zdalnie, stosując mostkowanie połączenia.
Przykładowa instalacja
Aby zobrazować proces, poniżej przedstawiono pełną strukturę samodzielnie hostowanej usługi: plik compose, rzeczywisty certyfikat oraz kopię zapasową. Przykład dotyczy Uptime Kuma, jednak każda aplikacja z listy korzysta z tego samego schematu.
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
volumes:
- ./data:/app/data
ports:
- "127.0.0.1:3001:3001"
restart: unless-stoppeddocker compose up -d
docker compose logs -fNależy zwrócić uwagę na 127.0.0.1:; aplikacja nasłuchuje wyłącznie na localhost, a reverse proxy, takie jak Traefik lub nginx, dokonuje terminacji TLS przed nią. Powiązanie bezpośrednio z 0.0.0.0:3001 prowadzi do przypadkowego udostępnienia niezaszyfrowanego panelu administracyjnego w całym Internecie.
Czego (jeszcze) nie hostować samodzielnie
- Poczta elektroniczna. To szczera rada. Port wyjściowy 25 jest blokowany przez większość dostawców VPS, co skutkuje
Connection timed outodtelnet aspmx.l.google.com 25. Nie jest to błąd konfiguracji, lecz polityka dostawcy. Niektórzy dostawcy mogą odblokować ten port na prośbę (na przykład AWS pozwala złożyć wniosek o zdjęcie ograniczenia), ale jest to proces uznaniowy, a nie automatyczny przełącznik. Nawet przy otwartym porcie 25, nowy adres IP bez reputacji, rekordu PTR, SPF, DKIM oraz DMARC spowoduje, że poczta trafi do spamu lub zostanie odrzucona. Jest to ciągłe, wymagające zadanie, a nie projekt na jeden weekend. Jeśli mimo to chcesz podjąć wyzwanie, zrób to świadomie, korzystając z przewodnika self-hosted email with Mailcow i przygotuj się na wielomiesięczne monitorowanie dostarczalności wiadomości. - Wszystko, czego nie potrafisz niezawodnie przywrócić z kopii zapasowej. Jeśli nigdy nie przeprowadziłeś testowego przywracania danych, nie masz kopii zapasowej, masz jedynie nadzieję. Nie umieszczaj niezastąpionych danych, jedynych kopii zdjęć czy kont w usłudze, dopóki proces odzyskiwania nie zostanie zweryfikowany.
- Jedyna kopia krytycznej zależności. Samodzielnie hostowany serwer DNS, którego awaria odcina całą sieć od Internetu, to zły projekt na początek. Zawsze zachowaj zewnętrzny serwer zapasowy.
- Systemy bezpieczeństwa działające w czasie rzeczywistym. Alarmy domowe, powiadomienia medyczne i wszystko, gdzie pięć minut przestoju stanowi realny problem, nie powinno znajdować się na hobbystycznym serwerze, który aktualizujesz w niedzielne wieczory.
Jak wybrać pierwszą usługę i dwa warunki konieczne
Wybierz aplikację, która eliminuje opłatę, której nie chcesz ponosić, lub rozwiązuje realny problem z prywatnością. W praktyce najlepszymi pierwszymi instalacjami są Vaultwarden oraz Uptime Kuma: obie są lekkie, natychmiast użyteczne i wybaczają błędy konfiguracyjne. Uruchom jedną usługę od początku do końca – instalację, certyfikat, kopię zapasową i test przywracania – zanim dodasz kolejną. Budujesz w ten sposób umiejętności operacyjne, a nie tylko klikasz instalację.
Dwie kwestie są obowiązkowe dla każdej z powyższych aplikacji, bez żadnych wyjątków:
- TLS dla wszystkiego, co publiczne. Usługa dostępna przez sam adres IP i nieszyfrowany protokół to wersja demonstracyjna, a nie wdrożenie. Zabezpiecz ją prawdziwym certyfikatem, korzystając z Certbot i Let's Encrypt na nginx, lub pozwól Traefik wykonać to automatycznie. Następnie wzmocnij punkt wejścia za pomocą Fail2ban dla SSH na Ubuntu 24.04.
- Kopie zapasowe, które faktycznie przywróciłeś. Zautomatyzuj nocny zrzut bazy danych wraz z wolumenami danych, wyślij go poza serwer i raz w miesiącu przywróć na tymczasowy VPS, aby sprawdzić, czy działa. Dzień awarii dysku to najgorszy moment na odkrycie, że kopia zapasowa jest pusta.
Zadbaj o te dwa elementy, a self-hosting stanie się przyjemnością. Pomiń je, a jedynie odliczasz czas do awarii.
Dostępne opcje rozciągają się od praktycznych po absurdalne, od rodzinnego serwera Minecraft na VPS po, jeśli lubisz przestrogi, najmniej wydajne centrum danych na świecie.
FAQ
Od czego zacząć self-hosting?
Od Vaultwarden. Menedżer haseł zapewnia codzienną użyteczność, zastępuje subskrypcję i wymusza poznanie całego cyklu pracy: Docker, reverse proxy, TLS oraz kopie zapasowe. Aplikacja jest na tyle mała, że w razie awarii można ją odtworzyć w dziesięć minut. Uptime Kuma to świetny drugi krok, dzięki któremu dowiesz się o awariach, zanim zauważą je użytkownicy.
Jakiego VPS faktycznie potrzebuję?
Dla jednej małej aplikacji wystarczy 1 GB RAM. Aby komfortowo uruchomić kilka usług, celuj w 4 GB. Wariant 2 GB to punkt, w którym użytkownicy często napotykają ciche zabijanie kontenerów przez mechanizm Out-Of-Memory i nie potrafią ustalić przyczyny. Pamięć RAM jest niemal zawsze głównym ograniczeniem. Przestrzeń dyskową dobierz do planowanej ilości danych, pamiętając, że Immich, Ollama oraz aplikacje z dużymi bazami danych wymagają najwięcej zasobów.
Czego nie warto hostować samodzielnie?
Przede wszystkim poczty e-mail. Port wyjściowy 25 jest blokowany przez większość dostawców, a zapewnienie dostarczalności wiadomości to walka na pełen etat. Ponadto nie hostuj niczego, czego nie potrafisz niezawodnie zabezpieczyć kopią zapasową i przywrócić, oraz żadnego pojedynczego punktu awarii, którego przestój powoduje realne szkody, jak serwer DNS bez zapasowego rozwiązania czy system bezpieczeństwa domu. Wszystkie pozostałe usługi z tej listy są bezpiecznym wyborem.
Czy do tego wszystkiego potrzebuję Docker?
Nie, ale warto go używać. Każda aplikacja z tej listy, poza Cloudron i CasaOS, posiada obraz Docker. Te dwa systemy instalują się bezpośrednio na hoście za pomocą własnych skryptów, a następnie uruchamiają aplikacje w kontenerach. W pozostałych przypadkach Docker zapewnia czystą instalację, łatwe usuwanie, proste przypinanie wersji i przenośność na nowy host. Niektóre aplikacje (WireGuard, Zabbix) można również zainstalować natywnie przez apt, jeśli preferujesz takie rozwiązanie. Znajomość jednego pliku compose pozwala obsłużyć wszystkie pozostałe, co czyni całą listę przystępną.
Jak zapewnić bezpieczeństwo?
Cztery nawyki pokrywają większość zagrożeń: stosuj TLS przed każdą usługą, zabezpiecz SSH logowaniem wyłącznie przy użyciu kluczy oraz Fail2ban blokujący próby brute-force, wystawiaj publicznie tylko niezbędne porty, a resztę udostępniaj przez WireGuard VPN, oraz regularnie aktualizuj oprogramowanie, czytając informacje o wydaniach, aby uniknąć niespodzianek po aktualizacji. Kopie zapasowe to piąty nawyk; stanowią one ostatnią linię obrony, gdy błąd ominie pierwsze cztery zabezpieczenia.