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 przyniesie poprawę.
Każde ładowanie strony zajmuje proces roboczy PHP. Wymagania systemowe Nextcloud określają zużycie pamięci na proces: minimum 128 MB, zalecane 512 MB (stan na sierpień 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ą wartość pm.max_children w konfiguracji puli PHP-FPM, co powoduje kolejkowanie żądań. Interfejs działa wolno, 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 pamięci masowej rozpoznawanej przez serwer. 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 test wydajności 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 samym czasie, wykorzystując ten sam procesor, 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 utrzymanie spójności między nimi.
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 syncthingsudo systemctl enable --now syncthing@$USER
sudo ss -lntp | grep 8384Wiersz zawierający 127.0.0.1:8384 oznacza, że interfejs WWW działa i jest powiązany wyłącznie z localhost, co jest pożądanym stanem na publicznym VPS. Dostęp do niego można uzyskać przez tunel SSH: ssh -L 8384:127.0.0.1:8384 you@your-vps, a następnie otworzyć http://127.0.0.1:8384 na komputerze lokalnym. Brak nasłuchiwania na porcie 8384 oznacza, że usługa nie uruchomiła się, a journalctl -u syncthing@$USER -n 50 wskazuje przyczynę tego stanu.
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 udostępnionym 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 pierwszy przebieg potrwa pewien czas na współdzielonym vCPU, a zużycie pamięci będzie rosło wraz z liczbą plików, a nie z ich rozmiarem w gigabajtach.
Dysk to główny koszt. Nie występuje tu oszczędność miejsca po stronie serwera, ponieważ Syncthing nie jest serwerem. Folder o rozmiarze 200 GB współdzielony między VPS a laptopem zajmuje 200 GB na obu urządzeniach. Jest to przeciwieństwo modelu Nextcloud, gdzie serwer przechowuje wszystko, 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ć folderów selektywnych 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 ani konwersja danych. 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 oznacza błędu.
Ograniczenia. Brak obsługi kont, brak linków do udostępniania innym osobom oraz brak możliwości przeglądania plików przez przeglądarkę w telefonie. Oryginalna aplikacja na Androida nie jest już rozwijana przez główny projekt i jest utrzymywana przez społeczność, co ma znaczenie, jeśli priorytetem jest dostęp mobilny. Bezpośrednie porównanie Syncthing i Nextcloud szczegółowo omawia różnice w funkcjonalności.
Seafile: szybka synchronizacja z lżejszym serwerem
Seafile dzieli pracę na dwie części. Aplikacja internetowa w języku Python o nazwie Seahub generuje interfejs, a oddzielny proces w języku C obsługuje ruch synchronizacyjny. Transfery plików nie przechodzą przez aplikację internetową, dzięki czemu przesyłanie dużych danych pozostaje szybkie, nawet gdy inni użytkownicy korzystają z interfejsu. Wersja 13.0 została wydana 5 stycznia 2026 roku.
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.ymlPrzed rozpoczęciem jakichkolwiek działań 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 psKaż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 dwurdzeniowego procesora o taktowaniu powyżej 2 GHz (stan na sierpień 2026 roku). Należy traktować to jako minimum dla całego stosu, ponieważ wdrożenie Docker uruchamia również MariaDB, odwrotne proxy Caddy oraz edytor SeaDoc. W przypadku korzystania przez więcej niż jedną lub dwie osoby warto zapewnić 4 GB pamięci RAM lub zrezygnować z opcjonalnych kontenerów.
Haczykiem 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 konieczność pełnego przesłania wszystkich posiadanych plikó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 zmienia proces przesyłania w jedno polecenie z możliwością wznowienia, zamiast długotrwałej sesji przeciągania i upuszczania plików.
rclone config
rclone copy /srv/files seafile:MyLibrary --progressDokumentacja rclone wymienia Seafile w wersjach od 6.x do 9.x jako przetestowane, dlatego przed przesłaniem terabajtów danych należy uruchomić narzędzie dla jednego małego folderu i sprawdzić wynik.
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ć. Należy jednak pamiętać o jednym ograniczeniu: podgląd pliku z szyfrowanej biblioteki w przeglądarce wysyła hasło do serwera na czas trwania tej sesji, więc podgląd w przeglądarce i przechowywanie w modelu 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 tworzenia kopii zapasowych. Nie uzyskuje 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:mybucketrclone 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 błędów oznacza, że kopia jest niekompletna, dlatego przed usunięciem źródła należy ponownie uruchomić copy. Należy spodziewać się dwóch rzeczy: magazyn obiektowy nie posiada katalogów, a jedynie prefiksy kluczy, więc pusty folder nie przetrwa kopiowania; 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 writesDla 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/filesPowiąż 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 niewielki zamiennik. Przechowuje on każdą kolekcję jako pliki na dysku i zużywa kilkadziesiąt megabajtów pamięci RAM.
sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232Pakiet 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ć go w kliencie mobilnym lub desktopowym i tam dokonywać zmian.
Edycja dokumentów w przeglądarce jest trudniejsza do zastąpienia. 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. Porównanie OnlyOffice i Collabora omawia, który silnik uruchomić po wybraniu odpowiedniej aplikacji hostującej.
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ż drzewo katalogów, które już posiadasz 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.
- Seafile: jedno pełne przesłanie do bibliotek, ponieważ serwer przechowuje bloki danych, a nie pliki w formacie natywnym.
Niezależnie od wyboru, najpierw wykonaj czystą kopię z Nextcloud. Pliki użytkowników znajdują się w katalogu data w postaci jawnej, jeden folder na użytkownika, więc rsync tego drzewa stanowi źródło. Przed kopiowaniem przełącz instancję w tryb maintenance mode, w przeciwnym razie skopiujesz 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 -lPorównaj tę liczbę z tym samym find w źródle. Niedobór zazwyczaj oznacza, że uprawnienia uniemożliwiły rsync odczytanie 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, pliki na dysku są szyfrogramami, więc przed kopiowaniem należy wykonać occ encryption:decrypt-all, w przeciwnym razie przeniesiesz folder z nieczytelnymi danymi. Sprawdź obie kwestie 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 czystym SFTP lub WebDAV. Syncthing indeksuje wskazany katalog i utrzymuje te same nazwy oraz układ na każdym urządzeniu, dzięki czemu nie jest wymagany import ani przesyłanie danych. Zarówno Seafile, jak i 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 operuje na kluczach, a nie na katalogach.
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 sierpień 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 pojedynczego 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 wykluczyć kontener SeaDoc ze stosu, rezygnując z edycji dokumentów w przeglądarce.
Dlaczego interfejs WWW 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 i sprawdzić pm.max_children w puli PHP-FPM. Tabela z milionami wierszy przy puli składającej się z pięciu procesów roboczych generuje dokładnie taki schemat działania.
Czy mogę zachować Nextcloud do kalendarzy i przenieść tylko pliki?
Tak, i często jest to najbardziej opłacalne 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 WWW 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.