SSD Nodes Learn 🎉 VPS od $5.50/mies.
Przewodniki Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-08-13

Alternatywy dla Dropbox: Nextcloud, Seafile czy Syncthing?

Porównanie Nextcloud, Seafile, Syncthing oraz pamięci obiektowej. Analiza kosztów utrzymania na VPS, topologii synchronizacji oraz wyjaśnienie, dlaczego sync to nie backup.

Którą alternatywę dla Dropbox do samodzielnego hostowania wybrać?

Cztery alternatywy dla Dropbox do samodzielnego hostowania są warte uwagi: Nextcloud, Seafile, Syncthing oraz pamięć obiektowa z odpowiednim klientem. Nie są one zamienne. Nextcloud sprawdza się w gospodarstwie domowym lub małym zespole, gdzie inne osoby muszą otrzymywać pliki. Seafile jest odpowiedni dla osoby lub zespołu synchronizującego bardzo dużą liczbę małych plików, gdzie szybkość synchronizacji jest ważniejsza niż sposób przechowywania danych na dysku. Syncthing jest przeznaczony dla jednej osoby synchronizującej własne urządzenia, gdzie nikt z zewnątrz nie potrzebuje linku do plików. Pamięć obiektowa sprawdza się w archiwizacji: tanie bajty, do których rzadko się zagląda.

Przed porównaniem funkcji należy wybrać sposób działania synchronizacji. Listy funkcji wyglądają podobnie. Topologia, czyli określenie, która maszyna przechowuje kopię, z którą zgadzają się wszystkie pozostałe, decyduje o tym, czy po sześciu miesiącach użytkownik nadal będzie zadowolony z wyboru.

Topologia synchronizacji: serwer główny lub równorzędne węzły bez serwera

Rozważane są dwa projekty, a dalsza część dokumentacji zależy od dokonanego wyboru.

Serwer główny. Nextcloud, Seafile oraz pamięć obiektowa działają w ten sposób. Jedna maszyna, zazwyczaj VPS (virtual private server), przechowuje autorytatywną kopię danych. Każde urządzenie komunikuje się z tą maszyną. Laptop może być wyłączony przez miesiąc, a po uruchomieniu samodzielnie zsynchronizuje zmiany. Telefon z 6 GB wolnego miejsca może przechowywać podzbiór danych, podczas gdy serwer przechowuje całość. Przeglądarka może uzyskać dostęp do plików, co jest warunkiem koniecznym do udostępniania linków.

Węzły równorzędne bez serwera. Syncthing działa w ten sposób. Urządzenia odnajdują się nawzajem i wymieniają listy plików bezpośrednio przez szyfrowane połączenie. Żadna kopia nie jest autorytatywna: plik istnieje tylko na urządzeniach, które go przechowują. Dwa urządzenia muszą być online w tym samym czasie, aby zmiana została przesłana między nimi. Nie istnieje żaden URL, który można komukolwiek przekazać, ponieważ żadna maszyna nie serwuje strony.

Wynikają z tego cztery konsekwencje, z którymi użytkownicy często stykają się na późniejszym etapie.

  • Przesłanie pliku osobie, która nie zainstaluje oprogramowania, wymaga serwera głównego. Link to URL, a URL wymaga procesu nasłuchującego na porcie.
  • Dostęp do plików z maszyny, nad którą nie sprawuje się kontroli, na przykład laptopa służbowego, wymaga serwera głównego.
  • Urządzenie, które było wyłączone przez wiele tygodni, pobiera zmiany z serwera natychmiast po uruchomieniu. W konfiguracji równorzędnej pobierze zmiany tylko wtedy, gdy inne urządzenie posiadające te dane będzie również online. Dlatego wielu użytkowników Syncthing uruchamia jedną instancję na VPS jako węzeł działający w trybie ciągłym.
  • Wykorzystanie pamięci masowej sumuje się inaczej. Serwer główny przechowuje jedną pełną kopię oraz to, co każde urządzenie trzyma lokalnie. Cztery węzły współdzielące jeden folder przechowują cztery pełne kopie, ponieważ każdy węzeł przechowuje cały folder.

Nextcloud: użytkownicy, grupy i linki publiczne

Nextcloud to aplikacja internetowa oparta na PHP. Przechowuje pliki jako zwykłe obiekty w katalogu danych, śledząc ich stan w bazie danych. Folder można udostępnić konkretnemu użytkownikowi, grupie lub poprzez link publiczny zabezpieczony hasłem i datą wygaśnięcia. Historia wersji jest domyślnie włączona, a usunięte pliki trafiają najpierw do kosza. Klienci desktopowi obsługują Linux, macOS oraz Windows, dostępne są również oficjalne aplikacje na iOS i Android. Jeśli powodem rezygnacji z Dropbox jest konieczność udostępniania plików innym osobom, jest to właściwe rozwiązanie.

Ceną za te możliwości jest złożoność systemu. Standardowa instalacja obejmuje serwer WWW, PHP-FPM (menedżer procesów PHP), bazę danych, taką jak MariaDB lub PostgreSQL, oraz Redis do blokowania plików. Zadania w tle są uruchamiane co pięć minut przez cron lub timer systemd. Na serwerze VPS z 1 GB pamięci RAM aplikacja wystartuje, jednak duże przesyłanie plików lub długotrwałe polecenie occ konserwacji spowoduje zadziałanie mechanizmu out-of-memory killer. Należy przyjąć 2 GB jako minimum dla kilku użytkowników i liczyć się z potrzebą zwiększenia zasobów do 4 GB po włączeniu większej liczby aplikacji. Kolejnym wyzwaniem są aktualizacje: aplikacje z wbudowanego sklepu są tworzone pod konkretną wersję rdzenia, dlatego przed aktualizacją należy sprawdzić, czy używane rozszerzenia wspierają nową wersję główną.

Nextcloud zwalnia, gdy jedno konto przechowuje setki tysięcy małych plików, ponieważ każdy z nich stanowi wiersz w tabeli pamięci podręcznej plików oraz fizyczny obiekt na dysku, a klient desktopowy przetwarza je pojedynczo. W skali domowej problem ten nie występuje. Kwestie doboru zasobów, TLS (transport layer security) oraz kopii zapasowych zostały omówione w instalacji Nextcloud opartej na Docker z TLS i kopiami zapasowymi, do której należy przejść po podjęciu decyzji o wdrożeniu.

Ostrzeżenie dotyczące zakresu funkcji: Nextcloud może również obsługiwać kalendarz, kontakty, notatki i bibliotekę zdjęć, jednak każda włączona aplikacja zwiększa obciążenie w tle i ryzyko problemów przy aktualizacji. Jeśli głównym celem jest zarządzanie zdjęciami, lepiej sprawdzi się dedykowane narzędzie: zobacz Immich jako samodzielny zamiennik Google Photos. W przypadku dokumentów i wiki warto rozważyć alternatywy dla Notion do samodzielnego hostowania zamiast rozbudowywania serwera plików. Edycja dokumentów w przeglądarce wymaga zazwyczaj osobnego serwera, a nie tylko aplikacji wewnątrz Nextcloud, dlatego przed założeniem, że limit 2 GB jest wystarczający, należy porównać OnlyOffice z Collabora.

Seafile: rozwiązanie zoptymalizowane pod kątem dużej liczby małych plików

Seafile dzieli każdy plik na bloki i przechowuje je w wewnętrznym magazynie obiektów, adresowanym za pomocą skrótu zawartości (content hash) – jest to koncepcja analogiczna do sposobu przechowywania obiektów w git. Jednostką synchronizacji i udostępniania jest biblioteka, a nie drzewo katalogów. Ponieważ klient przesyła bloki oraz jeden commit zamiast wykonywać osobne żądanie dla każdego pliku, synchronizacja katalogu zawierającego 100,000 małych plików kończy się znacznie szybciej niż w przypadku protokołów operujących na pojedynczych plikach. Identyczne bloki są przechowywane tylko raz, dzięki czemu druga kopia dużego pliku nie zajmuje niemal żadnego dodatkowego miejsca.

Ceną tego rozwiązania jest fakt, że pliki na serwerze przestają być plikami w tradycyjnym sensie. Po otwarciu katalogu magazynu danych widoczne są jedynie obiekty o szesnastkowych nazwach. Odzyskanie danych wymaga użycia klienta Seafile lub wbudowanych narzędzi eksportu i fsck. Kopie zapasowe nadal działają, ponieważ obiekty te są zwykłymi plikami, jednak nie ma możliwości przywrócenia pojedynczego arkusza kalkulacyjnego za pomocą cp. Należy podjąć decyzję teraz, czy jest to akceptowalne, ponieważ jest to cecha, której użytkownicy najczęściej żałują w późniejszym czasie.

Seafile jest wydawany w wersji community oraz płatnej wersji professional. Podział funkcjonalności między nimi zmienia się wraz z kolejnymi wydaniami, dlatego przed zaplanowaniem wdrożenia zespołowego w oparciu o konkretną funkcję należy zapoznać się z aktualnymi warunkami na stronie producenta. Dostępne są oficjalne klienty na systemy desktopowe i mobilne. Zaszyfrowane biblioteki są szyfrowane po stronie klienta, więc serwer przechowuje jedynie tekst zaszyfrowany, którego nie może odczytać. Utrata hasła oznacza, że biblioteka staje się nieodczytywalna, również dla właściciela. Otwarcie zaszyfrowanej biblioteki w przeglądarce wymaga podania hasła w sesji internetowej, dlatego najsilniejsza gwarancja bezpieczeństwa dotyczy klientów desktopowych i mobilnych.

Zapotrzebowanie na zasoby jest zbliżone do Nextcloud. Uruchomiona zostaje baza danych, pamięć podręczna (cache) oraz dwa procesy aplikacji, dlatego 2 GB RAM stanowi ponownie rozsądne minimum.

Syncthing: brak konieczności logowania

Syncthing to pojedynczy plik binarny napisany w Go. Monitoruje foldery, odnajduje urządzenia partnerskie za pośrednictwem serwera odkrywania lub przekaźnika i synchronizuje dane bezpośrednio między urządzeniami. Nie istnieją tu konta ani strony logowania dla osób, z którymi synchronizowane są dane. Urządzenia paruje się za pomocą identyfikatora ID i akceptuje folder po obu stronach. Jest to najmniej wymagające w utrzymaniu rozwiązanie z omawianych, ponieważ wymaga uruchomienia minimalnej liczby komponentów.

Ceną za to jest brak funkcji udostępniania. Odpowiedni wpis w tabeli brzmi Device pairing only, no links. Nie można przekazać linku klientowi, księgowemu ani członkowi rodziny. Kolejnym ograniczeniem jest obsługa urządzeń mobilnych: Android app, no official iOS. FAQ projektu jasno określa stanowisko zespołu: „Obecny zespół Syncthing nie planuje oficjalnego wsparcia dla iOS w dającej się przewidzieć przyszłości”, ponieważ system iOS nakłada zbyt duże ograniczenia na procesy działające w tle, co utrudnia niezawodną synchronizację. Użytkownicy iOS muszą korzystać z aplikacji firm trzecich.

Zużycie zasobów jest niewielkie, przy czym należy pamiętać o jednej kwestii. Syncthing przechowuje wpis indeksu dla każdego synchronizowanego pliku, więc zużycie pamięci oraz czas pierwszego skanowania rosną wraz z liczbą plików, a nie z ich łącznym rozmiarem. Obliczanie sum kontrolnych (hashing) dużego folderu przy pierwszym uruchomieniu obciąży procesor przez pewien czas, po czym zużycie zasobów ustabilizuje się. Na najmniejszych planach VPS rozwiązanie to działa bezproblemowo.

Konflikty rozwiązywane są poprzez zachowanie obu wersji pliku. Gdy dwa urządzenia zmodyfikują ten sam plik w czasie, gdy nie mają ze sobą połączenia, Syncthing zmienia nazwę jednej kopii i przechowuje ją obok drugiej, dzięki czemu w systemie pojawiają się pliki typu notes.sync-conflict-20260802-141530-K7MB3QT.md. Żadne dane nie są tracone. Nie następuje również automatyczne scalanie, a rozwiązanie konfliktu wymaga ręcznej interwencji.

Pamięć obiektowa z klientem: tanie bajty, a nie folder synchronizacji

Pamięć obiektowa oznacza bucket zgodny z S3 (simple storage service), utrzymywany samodzielnie za pomocą MinIO lub wynajmowany u dostawcy. Dostęp do niej uzyskuje się za pomocą narzędzia: rclone z linii komend lub klienta desktopowego, który prezentuje bucket jako dysk. Udostępnianie odbywa się poprzez presigned URL, czyli wygenerowany link zawierający własny czas wygaśnięcia. Wersjonowanie jest ustawieniem bucketa: Bucket versioning, off by default, dlatego należy je włączyć podczas tworzenia bucketa, ponieważ nie dotyczy ono obiektów przesłanych wcześniej.

Traktowanie bucketa jak folderu synchronizacji jest błędem. Domyślnie nic nie monitoruje katalogu Documents. rclone bisync wykonuje synchronizację dwukierunkową, a dokumentacja rclone wprost wskazuje na wymaganą ostrożność. Pamięć obiektowa sprawdza się natomiast jako warstwa bazowa: cel kopii zapasowej lub warstwa przechowywania danych dla aplikacji. Samodzielnie hostowana pamięć obiektowa zgodna z S3 przy użyciu MinIO omawia stronę serwerową.

Koszt zasobów jest tutaj nietypowy. MinIO to jeden plik binarny, który w stanie spoczynku zużywa niewiele zasobów. Faktyczny koszt to dysk, a w przypadku VPS oznacza to wolumen blokowy wynajmowany za gigabajty, powiększony o przepustowość zużytą na przesyłanie obiektów. Żaden z tych elementów nie pojawia się w free -h, dlatego przed określeniem rozmiaru archiwum należy przeczytać ile faktycznie kosztuje VPS miesięcznie.

Porównanie udostępniania, klientów mobilnych i wersjonowania

ChartSharing, mobile clients and versioning, by tool
The data behind this chart
[
  {
    "tool": "Nextcloud",
    "sharing": "Public links, users and groups",
    "mobile": "Official iOS and Android apps",
    "versioning": "On by default, plus trash"
  },
  {
    "tool": "Seafile",
    "sharing": "Public links with password and expiry",
    "mobile": "Official iOS and Android apps",
    "versioning": "Library history and snapshots"
  },
  {
    "tool": "Syncthing",
    "sharing": "Device pairing only, no links",
    "mobile": "Android app, no official iOS",
    "versioning": "Optional per folder, off by default"
  },
  {
    "tool": "Object storage",
    "sharing": "Presigned URLs you generate",
    "mobile": "Third party clients only",
    "versioning": "Bucket versioning, off by default"
  }
]

Wszystkie 4 opcje zostały zestawione w jednym wierszu. Trzy z nich umożliwiają przekazanie pliku osobie trzeciej przy użyciu wyłącznie przeglądarki. Jedna z nich komunikuje się wyłącznie z urządzeniami należącymi do użytkownika. Wpis dotyczący wersjonowania w Seafile, Library history and snapshots, wymaga uwagi: historia jest przechowywana dla każdej biblioteki z osobna, więc usunięcie biblioteki powoduje utratę jej historii.

Odzyskiwanie danych

Koszty wyjścia warto sprawdzić teraz, gdyż ich odkrycie w późniejszym terminie może być kosztowne. Należy to zweryfikować przed podjęciem ostatecznej decyzji.

Nextcloud przechowuje rzeczywiste pliki w rzeczywistych katalogach, więc tar katalogu danych pozwala odzyskać dokumenty nawet w przypadku trwałej awarii aplikacji. Syncthing działa w ten sam sposób na każdym węźle, co stanowi najpewniejszą strategię wyjścia: pliki po prostu znajdują się na każdym urządzeniu. Magazyn obiektów Seafile wymaga użycia oprogramowania Seafile lub narzędzi eksportujących, aby ponownie złożyć bloki w pliki. W przypadku pamięci obiektowej wystarczy narzędzie rclone lub jego odpowiednik, co sprowadza się do wykonania jednego polecenia.

Synchronizacja to nie kopia zapasowa, a w tej luce ludzie tracą dane

Każde z opisanych tutaj narzędzi kopiuje zmiany między maszynami. Usunięcie pliku jest zmianą. Usunięcie folderu na laptopie powoduje, że klient wysyła informację do serwera, serwer ją przetwarza, a każde inne urządzenie również usuwa ten folder. Oprogramowanie typu ransomware wykorzystuje tę samą ścieżkę: szyfruje pliki lokalnie, klient wykrywa zmodyfikowane pliki i przesyła ich zaszyfrowane wersje. Synchronizacja zadziałała poprawnie. Dane mimo to zostały utracone.

Kosz oraz historia wersji łagodzą skutki takich zdarzeń. Jednakże mają one określony czas przechowywania, mogą zostać opróżnione przez to samo konto, które popełniło błąd, i znajdują się na tym samym dysku co aktywna kopia. Awaria wolumenu niszczy pliki wraz z ich historią.

Kopia zapasowa to oddzielna kopia, przechowywana na oddzielnym sprzęcie, wykonywana zgodnie z harmonogramem, z której przynajmniej raz przeprowadzono proces przywracania. Wykonuj kopię zapasową bazy danych w tym samym cyklu co pliki. Przywrócenie katalogu danych Nextcloud bez jego bazy danych skutkuje instancją, która nie rozpoznaje istnienia tych plików, a późniejsze użycie occ files:scan odzyskuje pliki, ale powoduje utratę udostępnień oraz historii wersji zapisanej w tabelach bazy. Zaplanowane kopie zapasowe restic z VPS omawiają zaszyfrowaną i zdeduplikowaną wersję tego procesu, w tym sposób testowania przywracania danych zamiast zakładania, że przebiegnie ono pomyślnie.

Co wybrać

Dla większości czytelników będzie to Nextcloud. Użytkownicy rezygnujący z Dropboxa najczęściej odczuwają brak możliwości łatwego udostępnienia linku osobie, która nie chce niczego instalować, oraz brak wygodnego podglądu plików na telefonie. Nextcloud realizuje obie te funkcje za pomocą oficjalnych klientów, nie posiada płatnych planów, a 2 GB pamięci RAM to akceptowalny koszt utrzymania. Stosuję dwa wyjątki od tej zasady. Jeśli folder służy wyłącznie do własnych celów i znajduje się tylko na posiadanym sprzęcie, należy użyć Syncthing. Pozwala to uniknąć konieczności aktualizacji serwera oraz zabezpieczania logowania przez przeglądarkę. Jeśli synchronizowany katalog roboczy zawiera setki tysięcy plików, należy wybrać Seafile i zaakceptować nieprzejrzysty format przechowywania danych w zamian za wysoką wydajność. Object storage powinien stanowić cel kopii zapasowych dla wybranego rozwiązania, a nie być warstwą pośredniczącą w synchronizacji plików.

FAQ

Czy Syncthing to kopia zapasowa mojego laptopa?

Nie. Syncthing kopiuje zmiany między urządzeniami, a usunięcie pliku jest taką samą zmianą jak każda inna. Plik usunięty przypadkowo znika ze wszystkich sparowanych urządzeń w ciągu kilku sekund. Wersjonowanie plików dla poszczególnych folderów pomaga, ale jest domyślnie wyłączone, dopóki nie zostanie aktywowane dla każdego folderu z osobna. Należy przechowywać właściwą kopię zapasową na oddzielnym sprzęcie, wykonywaną zgodnie z harmonogramem, oraz przynajmniej raz przeprowadzić proces przywracania danych, aby upewnić się, że działa poprawnie.

Czy mogę uruchomić Nextcloud i Syncthing na tym samym VPS?

Tak, korzystają z różnych portów i nie wchodzą ze sobą w konflikt. Nie należy wskazywać folderu Syncthing na katalog danych Nextcloud. Nextcloud śledzi każdy plik w bazie danych, więc pliki, które pojawią się na dysku poza jego kontrolą, pozostaną niewidoczne do momentu uruchomienia occ files:scan, a pliki usunięte w ten sposób pozostawią w bazie danych wpisy wskazujące na nieistniejące obiekty. Należy przydzielić Syncthing własny katalog lub podpiąć go do Nextcloud jako pamięć zewnętrzną, aby system wiedział, że ma go monitorować.

Nextcloud oraz Seafile umożliwiają tworzenie publicznych linków z opcjonalnym hasłem i datą wygaśnięcia. Obiektowa pamięć masowa (Object Storage) udostępnia wstępnie podpisany adres URL, który przestaje działać automatycznie po upływie ustawionego czasu. Syncthing nie oferuje takiej funkcjonalności. Jego model udostępniania opiera się na parowaniu urządzeń, co oznacza, że druga osoba musi zainstalować Syncthing, przekazać identyfikator urządzenia i zaakceptować folder.

Ile miejsca na dysku potrzebuje serwer?

W przypadku serwera pełniącego rolę głównego węzła należy zaplanować przestrzeń odpowiadającą pełnemu rozmiarowi udostępnianych danych, powiększoną o miejsce na historię wersji i kosz, a także o bufor dla przesyłanych plików. Historia wersji jest często niedoszacowana: przechowywanie każdej wersji pliku o rozmiarze 2 GB, który zmienia się codziennie, powoduje szybki przyrost zajętości, dlatego należy wcześnie zdefiniować politykę retencji. Umieszczenie danych na oddzielnym wolumenie chroni główny system plików przed zapełnieniem, co w przeciwnym razie mogłoby zatrzymać działanie całego serwera, a nie tylko pojedynczego procesu przesyłania danych.