SSD Nodes Learn Hosting plans →
Przewodniki Matt ConnorAutor: Matt Connor

Alternatywy dla Nextcloud do samodzielnego hostowania

Przegląd lekkich zamienników Nextcloud podzielony według zastosowań: synchronizacja plików, szybkie serwery, pamięć obiektowa oraz SFTP. Sprawdź koszty migracji i wymagania VPS.

Które alternatywy dla Nextcloud warto hostować samodzielnie?

Alternatywy dla Nextcloud, które warto uruchomić, to te, które eliminują funkcje nigdy niewykorzystywane. Nextcloud to serwer plików, kalendarz, książka adresowa, pakiet biurowy i platforma aplikacji wewnątrz jednej aplikacji PHP, za co płaci się przy każdym ładowaniu strony. Należy wybrać zamiennik, określając jedno zadanie, które jest faktycznie potrzebne, a następnie sprawdzić koszt przeniesienia posiadanych plików.

Niniejszy przewodnik porządkuje opcje według tego zadania: sama synchronizacja, synchronizacja z szybszym serwerem, pamięć obiektowa z klientem lub zwykły zdalny dostęp do plików. Każda sekcja określa wymagania serwera na małym VPS (virtual private server) oraz wpływ na istniejące drzewo katalogów. Jeśli użytkownik przechodzi z Dropbox lub Google Drive, a nie z działającej instancji Nextcloud, szersze zestawienie alternatyw dla Dropbox do samodzielnego hostowania stanowi lepszy punkt wyjścia.

Dlaczego Nextcloud działa wolno na małym VPS

Spowolnienie ma konkretne przyczyny, a ich zrozumienie pozwala ocenić, czy migracja na inny serwer faktycznie pomoże.

Każde ładowanie strony zajmuje proces PHP. Wymagania systemowe Nextcloud określają pamięć na proces: minimum 128 MB, zalecane 512 MB (stan na październik 2026). Nie jest to całkowite zapotrzebowanie serwera. Pula dziesięciu procesów roboczych stanowi realne obciążenie pamięci w planie 2 GB, dlatego administratorzy zmniejszają pm.max_children w konfiguracji puli PHP-FPM, co powoduje kolejkowanie żądań za istniejącymi procesami. Interfejs sprawia wrażenie wolnego, mimo że dysk pozostaje w stanie bezczynności.

Baza danych rośnie wraz z liczbą plików, a nie ich rozmiarem. Tabela pamięci podręcznej plików, oc_filecache przy domyślnym prefiksie tabel, przechowuje jeden wiersz dla każdego pliku i folderu w każdej znanej serwerowi pamięci. Biblioteka zdjęć zawierająca 300 000 małych plików tworzy dużą tabelę; 300 GB plików wideo w 400 plikach tworzy tabelę małą. Udostępnianie, wyszukiwanie oraz skaner plików odczytują tę tabelę.

sudo mysql nextcloud -e 'SELECT COUNT(*) FROM oc_filecache;'

Liczba rekordów liczona w milionach lepiej wyjaśnia wolne działanie listy plików niż jakikolwiek benchmark dysku. Jeśli instancja używa innego prefiksu tabel lub PostgreSQL, należy odpowiednio dostosować zapytanie.

Zadania w tle konkurują z interfejsem WWW. Dokumentacja Nextcloud zaleca wpis w systemowym cronie uruchamiający cron.php co pięć minut. Generowanie podglądów i skanowanie plików odbywa się w tym procesie, korzystając z tego samego procesora, który obsługuje przeglądarkę.

Główne aktualizacje to migracja bazy danych. Instancja przechodzi w tryb konserwacji i odpowiada na każde żądanie kodem Nextcloud is in maintenance mode, please try again later do momentu zakończenia migracji. Na małym VPS z dużą tabelą oc_filecache, czas ten jest wystarczająco długi, aby stał się zauważalny.

Decyzja o wyborze rozwiązania

  • Synchronizacja jednego folderu między własnymi urządzeniami bez interfejsu WWW: Syncthing.
  • Synchronizacja dla wielu użytkowników z interfejsem WWW, klientami mobilnymi i udostępnianiem linków: Seafile.
  • Tanie przechowywanie dużej ilości danych z dostępem przez skrypty i narzędzia do kopii zapasowych: object storage wraz z odpowiednim klientem.
  • Zdalny odczyt i zapis plików bez instalacji nowego oprogramowania serwerowego: SFTP lub WebDAV.
  • Wspólna edycja dokumentów w przeglądarce lub współdzielenie kalendarza: pozostanie przy Nextcloud lub akceptacja uruchomienia dwóch osobnych usług.

Syncthing: synchronizacja plików bez aplikacji serwerowej

Syncthing przechowuje pliki w ich oryginalnej postaci. Nie korzysta z bazy danych zawartości ani interfejsu WWW do serwowania dokumentów. Każde urządzenie dołączone do folderu posiada jego pełną kopię, a Syncthing dba o ich spójność.

sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
sudo systemctl enable --now syncthing@$USER
sudo ss -lntp | grep 8384

Wiersz zawierający 127.0.0.1:8384 oznacza, że interfejs WWW działa i jest powiązany wyłącznie z localhost, co jest pożądaną konfiguracją na publicznym VPS. Dostęp do niego można uzyskać za pomocą tunelu SSH: ssh -L 8384:127.0.0.1:8384 you@your-vps, a następnie otwierając http://127.0.0.1:8384 na komputerze lokalnym. Brak nasłuchiwania na porcie 8384 nie oznacza automatycznie awarii usługi: Syncthing wybiera losowy port, jeśli 8384 był zajęty w momencie instalacji, a adres GUI może być przypisany do innego portu lub gniazda Unix. journalctl -u syncthing@$USER -n 50 wskazuje adres, na którym usługa faktycznie wystartowała, lub wyświetla błąd, jeśli uruchomienie się nie powiodło.

Zasoby. Syncthing nie określa minimalnych wymagań pamięciowych. Zużycie zasobów zależy od liczby indeksowanych plików, a nie od ich łącznego rozmiaru, ponieważ dla każdego pliku w każdym współdzielonym folderze tworzony jest wpis w indeksie. Pierwsze skanowanie dużego folderu obciąża procesor: Syncthing musi obliczyć skróty wszystkich plików przed rozpoczęciem porównywania. Należy założyć, że ten proces potrwa dłuższy czas na współdzielonym vCPU, a zapotrzebowanie na pamięć RAM będzie rosło wraz z liczbą plików, a nie z liczbą gigabajtów.

Koszt dyskowy. Syncthing nie oferuje oszczędności po stronie serwera, ponieważ nie jest serwerem. Folder o rozmiarze 200 GB współdzielony między VPS a laptopem wymaga 200 GB wolnego miejsca na obu urządzeniach. Jest to przeciwieństwo modelu Nextcloud, gdzie serwer przechowuje całość danych, a klienci wybierają, co synchronizować. Jeśli VPS ma pełnić rolę celu kopii zapasowej, a nie równorzędnego węzła, należy użyć selektywnych folderów oraz folderu typu receive only.

Migracja jako główny powód wyboru. Wystarczy wskazać Syncthing istniejące drzewo katalogów. Nie jest wymagany import, przesyłanie danych ani konwersja. Należy dodać folder na VPS, dodać go na laptopie z tym samym identyfikatorem folderu (folder ID) i pozwolić obu stronom na synchronizację. Jeśli przy pierwszym połączeniu ten sam plik różni się na obu urządzeniach, Syncthing zachowa obie wersje, zmieniając nazwę jednej z nich na filename.sync-conflict-20260809-142530-ABCD123.txt. Pojawienie się takich plików podczas pierwszej synchronizacji jest zjawiskiem normalnym i nie świadczy o błędzie.

Ograniczenia. Syncthing nie obsługuje kont użytkowników, nie pozwala na generowanie linków do udostępniania plików osobom trzecim ani na przeglądanie plików przez przeglądarkę w telefonie. Oryginalna aplikacja na Androida nie jest już utrzymywana przez główny projekt i rozwój przejął fork społecznościowy, co ma znaczenie, jeśli priorytetem jest dostęp mobilny. Bezpośrednie porównanie Syncthing i Nextcloud szczegółowo omawia różnice w dostępnych funkcjach.

Seafile: szybka synchronizacja z lżejszym serwerem

Seafile dzieli pracę na dwie części. Aplikacja internetowa w Pythonie o nazwie Seahub generuje interfejs, a oddzielny proces w C obsługuje ruch synchronizacyjny. Transfery plików nie przechodzą przez aplikację internetową, dzięki czemu duże wysyłanie danych pozostaje szybkie, nawet gdy inni użytkownicy korzystają z interfejsu. Wersja 13.0 została wydana w styczniu 2026.

sudo mkdir -p /opt/seafile
cd /opt/seafile
sudo wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
sudo wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/caddy.yml

Przed rozpoczęciem prac edytuj .env. Określa on SEAFILE_SERVER_HOSTNAME, INIT_SEAFILE_ADMIN_EMAIL, INIT_SEAFILE_ADMIN_PASSWORD, SEAFILE_MYSQL_DB_PASSWORD oraz JWT_PRIVATE_KEY, który musi być losowym ciągiem znaków o długości co najmniej 32 znaków. Ten plik informuje również compose, które z pobranych plików YAML należy odczytać, aby cztery pobrane elementy działały jako jeden stos.

cd /opt/seafile
sudo docker compose up -d
sudo docker compose ps

Każdy kontener powinien zgłaszać stan uruchomienia. Kontener restartujący się w pętli prawie zawsze oznacza brak wartości w .env, a sudo docker compose logs seafile wskazuje, którego z nich to dotyczy.

Zasoby. Dokumentacja Seafile wymaga co najmniej 2 GB pamięci RAM i procesora 2-rdzeniowego o taktowaniu powyżej 2 GHz (stan na październik 2026). Należy traktować to jako minimum dla całego stosu, ponieważ wdrożenie Docker uruchamia również MariaDB, reverse proxy Caddy oraz edytor SeaDoc. Przydziel 4 GB, jeśli z systemu korzysta więcej niż jedna lub dwie osoby, albo zrezygnuj z opcjonalnych kontenerów.

Haczykiem przy migracji jest format przechowywania danych. Seafile nie przechowuje plików w ich oryginalnej postaci. Dzieli każdy plik na bloki w katalogu /opt/seafile-data i zapisuje strukturę drzewa w bazie danych. Nie można wskazać Seafile istniejącego katalogu, aby pojawił się on jako biblioteka, więc przeniesienie danych oznacza pełne przesłanie wszystkich posiadanych zasobów. Ta sama architektura sprawia, że nie można odzyskać danych za pomocą cp: odzyskiwanie odbywa się przez serwer, seaf-fsck w celu sprawdzenia spójności lub przez montowanie w trybie tylko do odczytu seaf-fuse.

rclone posiada natywny backend dla Seafile, który zamienia wysyłanie w jedno polecenie z możliwością wznowienia, zamiast długiej sesji przeciągania i upuszczania plików.

rclone config
rclone copy /srv/files seafile:MyLibrary --progress

Dokumentacja rclone wymienia Seafile w wersjach od 6.x do 9.x jako przetestowane, więc uruchom narzędzie dla jednego małego folderu i sprawdź wynik przed przesłaniem terabajta danych.

Szyfrowane biblioteki to funkcja, dla której użytkownicy decydują się na zmianę oprogramowania. Hasło jest ustawiane w kliencie, a serwer przechowuje bloki, których nie może odczytać. Ważne zastrzeżenie: podgląd pliku z szyfrowanej biblioteki w przeglądarce przesyła hasło do serwera na czas trwania tej sesji, więc podgląd w przeglądarce i przechowywanie typu zero-knowledge nie są dostępne jednocześnie. Porównanie Seafile i Nextcloud omawia pozostałe różnice w funkcjonalności.

Magazyn obiektowy z klientem synchronizacji

Jeśli celem jest tanie przechowywanie dużej liczby bajtów z dostępem ze skryptów, należy uruchomić magazyn obiektowy zgodny z S3 i traktować synchronizację jako osobne narzędzie. Zapewnia to trwałość, wersjonowanie oraz protokół obsługiwany przez każde narzędzie do kopii zapasowych. Nie otrzymuje się jednak kont użytkowników w rozumieniu serwera plików ani menedżera plików, który byłby wygodny dla użytkowników. Samodzielnie hostowany magazyn obiektowy z MinIO opisuje stronę serwerową.

rclone copy /srv/files s3remote:mybucket --progress
rclone check /srv/files s3remote:mybucket

rclone check porównuje obie strony pod kątem rozmiaru i sumy kontrolnej, a następnie wyświetla liczbę różniących się plików. Każdy wynik inny niż zero oznacza, że kopia jest niekompletna, dlatego przed usunięciem źródła należy ponownie uruchomić copy. Należy spodziewać się dwóch kwestii: magazyn obiektowy nie posiada katalogów, a jedynie prefiksy kluczy, więc pusty folder nie przetrwa kopiowania, chyba że zostanie dodane --create-empty-src-dirs i włączone znaczniki katalogów za pomocą --s3-directory-markers, co spowoduje przesłanie pustego obiektu kończącego się ukośnikiem dla każdego folderu; ponadto zwiększenie --transfers wraz z rozmiarem fragmentu S3 powoduje wzrost zużycia pamięci przez rclone, dlatego na serwerze VPS z 1 GB pamięci RAM należy pozostawić oba te parametry na wartościach domyślnych.

Zwykły WebDAV lub SFTP, gdy potrzebny jest tylko zdalny dostęp do plików

Najtańszym rozwiązaniem jest często brak wdrażania nowych narzędzi. Jeśli na VPS działa OpenSSH, serwer plików jest już gotowy. SFTP nie wymaga dodatkowego demona, bazy danych, PHP ani aktualizacji, które mogłyby spowodować awarię w niedzielę.

sftp you@your-vps
rclone mount sftpremote: ~/vps --vfs-cache-mode writes

Dla klientów obsługujących WebDAV, w tym większości menedżerów plików na urządzenia mobilne, rclone może udostępnić to samo drzewo katalogów.

sudo apt install apache2-utils
sudo htpasswd -c /etc/rclone/htpasswd you
rclone serve webdav --addr 127.0.0.1:8080 --htpasswd /etc/rclone/htpasswd /srv/files

Powiąż usługę z 127.0.0.1 i umieść przed nią reverse proxy z TLS (transport layer security). Uwierzytelnianie podstawowe (Basic Authentication) w WebDAV przesyła hasło w każdym żądaniu, więc użycie zwykłego HTTP oznacza udostępnianie hasła wiele razy na minutę. Koszt migracji wynosi zero, ponieważ pliki nie zmieniają swojej lokalizacji. Wadą jest brak synchronizacji i kopii offline: po zerwaniu połączenia pliki stają się niedostępne dla klienta do momentu przywrócenia łączności.

Co zastępuje kalendarze, kontakty i edycję dokumentów

Rezygnacja z Nextcloud wiąże się z określonymi kosztami, dlatego warto jasno określić, co jest potrzebne. Kalendarze i kontakty opierają się na protokołach CalDAV oraz CardDAV (synchronizacja kalendarza i kontaktów przez HTTP), a Radicale stanowi dla nich lekką alternatywę. Przechowuje on każdą kolekcję jako pliki na dysku i zużywa kilkadziesiąt megabajtów pamięci.

sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232

Pakiet dostarcza /usr/lib/systemd/system/radicale.service wraz z domyślną konfiguracją w /etc/radicale/config, nasłuchującą na localhost:5232. Radicale nie posiada interfejsu do edycji wydarzeń, dlatego należy wskazać na niego klienta w telefonie lub na komputerze i tam dokonywać zmian.

Edycję dokumentów w przeglądarce trudniej zastąpić. OnlyOffice Docs oraz Collabora Online to silniki edycyjne, a nie systemy przechowywania danych: każdy z nich wymaga aplikacji hostującej, która przechowuje pliki i przekazuje je do edycji. Po usunięciu Nextcloud konieczne jest wdrożenie innego hosta, na przykład Seafile z własnym edytorem SeaDoc. Seafile może również przekazywać pliki biurowe do serwera OnlyOffice, który może działać na innej maszynie. Porównanie OnlyOffice i Collabora omawia, który silnik wybrać po podjęciu decyzji o wyborze hosta.

Pozostań przy Nextcloud, jeśli prawdziwe jest którekolwiek z poniższych stwierdzeń

  • Kilka osób współdzieli jeden kalendarz i jedną książkę adresową na tych samych kontach, co pliki.
  • Edytujesz dokumenty biurowe w przeglądarce, w tym samym pliku, jednocześnie z innymi użytkownikami.
  • Wymagasz udostępniania linków do poszczególnych plików z datami wygaśnięcia i hasłami oraz uprawnieniami grupowymi.
  • Twoi użytkownicy nie są zaawansowani technicznie, a aplikacje mobilne są ich głównym narzędziem pracy.

Dla tych zadań nie istnieje lżejsza alternatywa, która realizuje wszystkie wymienione funkcje. Uczciwym rozwiązaniem jest naprawa istniejącej instalacji, a nie jej porzucanie. Większość wolno działających instancji korzysta z domyślnej puli PHP-FPM bez skonfigurowanej pamięci podręcznej (cache), o czym informuje panel administracyjny Nextcloud. Ograniczenie liczby śledzonych plików pomaga bardziej niż jakakolwiek inna pojedyncza zmiana, ponieważ to tabela pamięci podręcznej plików (file cache table) ulega największemu rozrostowi. Instalacja Nextcloud na VPS z Docker, TLS i kopiami zapasowymi przedstawia konfigurację, która pozwala uniknąć większości tych problemów.

Rzeczywiste koszty migracji, opcja po opcji

  • Syncthing: brak importu. Wskaż istniejące drzewo katalogów po obu stronach i pozwól na synchronizację.
  • SFTP lub WebDAV przez to samo drzewo: brak importu, ponieważ pliki nie zmieniają lokalizacji.
  • Object storage: jedna pełna kopia sieciowa, z możliwością wznawiania i automatyzacji skryptami; puste foldery nie są przenoszone, chyba że włączono znaczniki katalogów.
  • Seafile: jedno pełne przesyłanie do bibliotek, ponieważ serwer przechowuje bloki danych, a nie pliki w formie natywnej.

Niezależnie od wyboru, najpierw pobierz czystą kopię z Nextcloud. Pliki użytkowników znajdują się w katalogu data w formie jawnej, po jednym folderze na użytkownika, więc rsync tego drzewa stanowi źródło. Przed kopiowaniem przełącz instancję w tryb maintenance mode, w przeciwnym razie skopiowane zostaną pliki w trakcie zapisu.

sudo -u www-data php occ maintenance:mode --on
sudo rsync -a --info=progress2 /path/to/nextcloud/data/ /srv/files/
find /srv/files -type f | wc -l

Porównaj tę liczbę z tym samym find po stronie źródłowej. Rozbieżność zazwyczaj oznacza, że uprawnienia uniemożliwiły rsync odczyt niektórych elementów, a błędy te są wypisywane w trakcie operacji.

Podczas kopiowania należy uważać na dwie pułapki. Pliki dostępne przez funkcję external storage w Nextcloud nie znajdują się w katalogu data, ponieważ są przechowywane w zdalnym systemie wskazanym w konfiguracji Nextcloud. Jeśli kiedykolwiek włączono szyfrowanie po stronie serwera (server-side encryption), pliki na dysku są tekstem zaszyfrowanym, więc przed kopiowaniem należy uruchomić occ encryption:decrypt-all, w przeciwnym razie przeniesiony zostanie folder nieczytelnych danych. Sprawdź oba te aspekty przed przerwaniem jakichkolwiek działań.

FAQ

Czy istnieje alternatywa dla Nextcloud, która zachowuje moją istniejącą strukturę folderów?

Syncthing oraz dowolna konfiguracja oparta na SFTP lub WebDAV. Syncthing indeksuje wskazany katalog i utrzymuje te same nazwy oraz układ na każdym urządzeniu, więc nie jest wymagany import ani przesyłanie plików. Seafile oraz pamięć obiektowa wymagają pełnego przesłania danych, ponieważ żaden z tych systemów nie przechowuje plików w standardowy sposób w zwykłym drzewie katalogów. Seafile dzieli pliki na bloki wewnątrz swojego katalogu danych, a pamięć obiektowa używa kluczy zamiast struktury katalogów.

Czy Seafile zadziała na VPS z 2 GB pamięci RAM?

Dokumentacja Seafile wymaga co najmniej 2 GB pamięci RAM oraz procesora 2-rdzeniowego o taktowaniu powyżej 2 GHz, według stanu na październik 2026. Należy traktować to jako wartość minimalną bez zapasu wydajności, ponieważ wdrożenie Docker uruchamia również MariaDB, Caddy oraz edytor SeaDoc w osobnych kontenerach. Dla jednego użytkownika jest to rozwiązanie wykonalne. W przypadku gospodarstwa domowego lub małego zespołu należy zwiększyć zasoby do 4 GB lub usunąć kontener SeaDoc ze stosu, rezygnując z edytora w przeglądarce. Edycja plików biurowych w przeglądarce pozostaje możliwa dzięki OnlyOffice, który jest wspierany przez Seafile i może działać na innej maszynie.

Dlaczego interfejs webowy Nextcloud działa wolno, mimo że pobieranie plików jest szybkie?

Ponieważ obie te ścieżki wykonują inne zadania. Pobieranie przesyła bajty z dysku, podczas gdy ładowanie strony uruchamia PHP, odpytuje tabelę pamięci podręcznej plików i często oczekuje na wolny proces PHP-FPM. Przed obwinianiem pamięci masowej należy policzyć wiersze w oc_filecache oraz sprawdzić pm.max_children w puli PHP-FPM. Tabela z milionami wierszy przy puli pięciu procesów roboczych generuje dokładnie taki schemat działania.

Czy mogę zachować Nextcloud do kalendarzy i przenieść tylko pliki?

Tak, często jest to najtańsze rozwiązanie. Synchronizuj duże foldery za pomocą Syncthing lub Seafile, a Nextcloud pozostaw uruchomiony do obsługi CalDAV, CardDAV oraz edycji dokumentów w przeglądarce. Ponieważ baza danych Nextcloud rośnie wraz z liczbą śledzonych plików, usunięcie z niej dużych drzew katalogów przywraca szybkość działania interfejsu. Usuwaj pliki przez interfejs webowy lub occ, a nie bezpośrednio z katalogu danych na dysku, w przeciwnym razie baza danych będzie zawierać wiersze wskazujące na nieistniejące już pliki.