Seafile czy Nextcloud: co wybrać do synchronizacji plików?
Porównanie wydajności Seafile i Nextcloud. Sprawdź różnice w przechowywaniu danych, szybkości synchronizacji blokowej, zużyciu pamięci RAM oraz metodach tworzenia kopii zapasowych.
Seafile a Nextcloud: krótka odpowiedź
Wybór między Seafile a Nextcloud sprowadza się do jednej różnicy: sposobu przechowywania plików na serwerze. Seafile dzieli każdy plik na bloki i zapisuje je w magazynie obiektów, który jest zrozumiały wyłącznie dla Seafile, co zapewnia szybką synchronizację, ale wymaga dwuetapowego procesu tworzenia kopii zapasowych. Nextcloud zapisuje pliki bezpośrednio na dysku w ich oryginalnej formie, a synchronizacja jest jedynie funkcją platformy, która obsługuje również kalendarze, kontakty, dokumenty oraz udostępnianie linków. Decyzja powinna opierać się na tej różnicy, ponieważ determinuje ona wszystkie pozostałe aspekty działania systemu.
Według stanu na sierpień 2026 roku, Seafile znajduje się w serii 13.0, a Nextcloud w serii 34. Oba rozwiązania są dojrzałe i żadne z nich nie planuje zmiany modelu przechowywania danych.
Sposób przechowywania plików w Seafile
Seafile modeluje bibliotekę w sposób zbliżony do tego, w jaki git modeluje repozytorium. Dokumentacja administracyjna opisuje model wewnętrzny jako Repo, Commit, FS oraz Block, zaznaczając, że repozytorium jest również nazywane biblioteką. Każdy plik jest dzielony na bloki o zmiennej długości za pomocą algorytmu CDC (ang. content defined chunking), który wyznacza granice bloków na podstawie samej zawartości danych. Dokumentacja wskazuje średni rozmiar bloku na około 8 MB. Bloki są nazywane na podstawie swojej zawartości, dzięki czemu dwie wersje tego samego dużego pliku współdzielą wszystkie bloki, które nie uległy zmianie, a dwie różne biblioteki współdzielą identyczne bloki.
Relacyjna baza danych przechowuje jedynie niewielką ilość metadanych dotyczących bibliotek. Cała reszta, czyli commity, obiekty katalogów oraz bloki, znajduje się w katalogu danych. W układzie Docker stosowanym w seriach 12 oraz 13 jest to /opt/seafile-data/seafile/seafile-data. Uruchomienie tam polecenia ls nie dostarcza użytecznych informacji, ponieważ widoczne są jedynie katalogi pełne nazw skrótów, a nie Invoices/2026/march.pdf.
Synchronizacja przebiega według tego samego modelu. Klient pyta serwer o zmiany, otrzymuje listę skrótów bloków i pobiera tylko te bloki, których jeszcze nie posiada. Dzięki temu Seafile zachowuje wydajność przy dużych bibliotekach: liczba przesłanych bajtów jest proporcjonalna do zmienionych bloków, a nie do rozmiaru pliku, który je zawiera.
Sposób przechowywania plików w Nextcloud
Nextcloud zapisuje pliki na dysku w oczekiwanej lokalizacji. Ścieżka data/<username>/files/ odzwierciedla strukturę widoczną dla użytkownika w interfejsie WWW. Tabela bazy danych oc_filecache odwzorowuje to samo drzewo katalogów wraz z rozmiarami, czasami modyfikacji oraz etagami, a Nextcloud polega na danych z tabeli, a nie na zawartości dysku.
Klient desktopowy komunikuje się za pomocą protokołu WebDAV (web distributed authoring and versioning) poprzez HTTPS. Każdy plik generuje co najmniej jedno żądanie, dlatego Nextcloud wprowadził API do przesyłania zbiorczego: dokumentacja dla programistów wyjaśnia, że przesyłanie wielu małych plików jest mniej wydajne, ponieważ przepustowość sieci nie jest w pełni wykorzystywana, więc małe pliki są pakowane razem. Duże pliki są przesyłane za pomocą API dzielenia na fragmenty (chunking API), a domyślny rozmiar fragmentu dla klienta desktopowego wynosi 5 MiB (OWNCLOUD_CHUNK_SIZE domyślnie przyjmuje wartość 5242880 bajtów).
Zaletą przechowywania plików bezpośrednio na dysku jest możliwość odczytu danych przez dowolne posiadane narzędzia. Wadą jest fakt, że Nextcloud nie wykrywa zmian wprowadzonych z pominięciem jego mechanizmów. Skopiowanie plików bezpośrednio do katalogu danych sprawia, że pozostają one niewidoczne w interfejsie WWW do momentu wykonania skanowania:
sudo -E -u www-data php occ files:scan --all -vvPodręcznik administratora wskazuje dokładnie te przypadki, w których wymagane jest ponowne skanowanie: po skopiowaniu plików bezpośrednio do katalogu danych, po migracji oraz podczas badania niespójności pamięci podręcznej plików.
Które rozwiązanie szybciej synchronizuje dużą bibliotekę?
Seafile, w dwóch przypadkach powodujących problemy: dziesiątki tysięcy małych plików oraz częste edycje dużych plików. Mechanizm opiera się na deduplikacji na poziomie bloków, dzięki czemu obraz dysku o rozmiarze 4 GB, w którym zmieniono środkową część, jest przesyłany jako kilka bloków. Nextcloud zmniejsza różnicę przy małych plikach dzięki przesyłaniu zbiorczemu, jednak nie jest w stanie zniwelować różnicy przy dużych plikach, ponieważ jednostką transferu jest tam cały plik.
Nie należy polegać wyłącznie na tym opisie różnicy ani na testach wydajnościowych dostawcy. Należy przygotować bibliotekę o strukturze zbliżonej do własnej i zmierzyć czas:
mkdir -p ~/synctest && cd ~/synctest
for i in $(seq 1 20000); do head -c 4096 /dev/urandom > "file_$i.bin"; done
du -sh ~/synctestNależy umieścić ten katalog w synchronizowanym folderze na każdym serwerze i obserwować zakończenie pracy klienta. Niezawodność jest równie ważna co szybkość. Klient Seafile przesyła najpierw bloki, a na końcu zapisuje commit, który się do nich odwołuje. Dzięki temu przerwane przesyłanie pozostawia bibliotekę w stanie poprzedniego commita, zamiast tworzyć częściowo zapisane drzewo plików.
Wymagania dla małego VPS
Dokumentacja Seafile zaleca "co najmniej 2 GB pamięci RAM i procesor 2-rdzeniowy (> 2 GHz)". Dokumentacja Nextcloud określa wymagania w przeliczeniu na proces PHP: minimum 128 MB, zalecane 512 MB na proces. Wartość tę należy pomnożyć przez liczbę procesów roboczych (workerów), a następnie dodać zasoby dla bazy danych, pamięci podręcznej i generowania podglądów. Poniżej przedstawiono punkty wyjściowe dla małego zespołu. Są to wartości początkowe, a nie pomiary wydajności.
The data behind this chart
[
{
"label": "Seafile CE 13",
"start_ram_gb": 4,
"start_cpu_cores": 2,
"sql_databases": 3
},
{
"label": "Nextcloud 34",
"start_ram_gb": 4,
"start_cpu_cores": 2,
"sql_databases": 1
},
{
"label": "Syncthing 2",
"start_ram_gb": 1,
"start_cpu_cores": 1,
"sql_databases": 0
}
]Oba rozwiązania wymagają tej samej klasy sprzętu: 4 GB pamięci RAM i 2 rdzeni procesora, więc zużycie zasobów nie jest czynnikiem decydującym przy wyborze. Syncthing działa w 1 GB pamięci RAM na 1 rdzeniu, co stanowi realny powód do rozważenia tego narzędzia. Różnice w architekturze są istotniejsze niż zapotrzebowanie na pamięć. Seafile utrzymuje 3 bazy danych SQL, podczas gdy Nextcloud korzysta z 1, a domyślne wdrożenie Seafile w Docker uruchamia serwer, MariaDB, Memcached, SeaDoc oraz Caddy z plików pobranych wcześniej:
mkdir /opt/seafile
cd /opt/seafile
wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/13.0/repo/docker/caddy.yml
nano .envW .env należy ustawić SEAFILE_SERVER_HOSTNAME, hasła użytkownika root i bazy danych MySQL, początkowe konto administratora oraz JWT_PRIVATE_KEY. Dokumentacja wymaga ciągu losowych znaków o długości co najmniej 32 dla tego klucza. Jest on odczytywany przy pierwszym uruchomieniu, więc należy go wygenerować przed podniesieniem stosu:
openssl rand -base64 40
docker compose up -dPierwsze uruchomienie tworzy trzy bazy danych oraz użytkownika administratora. Analogiczne decyzje dla Nextcloud, w tym konfigurację TLS i reverse proxy, omówiono w przewodniku instalacji Nextcloud na VPS z użyciem Docker, TLS i kopii zapasowych.
Czym różnią się kopie zapasowe?
To kluczowy aspekt, który jest często niedoceniany i w którym oba produkty różnią się najbardziej.
W przypadku Seafile kolejność nie jest opcjonalna. Zasada opisana w dokumentacji nakazuje najpierw wykonać kopię bazy SQL, a następnie katalogu z danymi. Dzięki temu każdy rekord w bazie danych posiada prawidłowy obiekt, do którego może się odwołać, co zapobiega uszkodzeniu bibliotek. Odwrotna kolejność może doprowadzić do sytuacji, w której wiersz w bazie danych wskazuje na blok, który nie został ujęty w migawce.
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt ccnet_db > ccnet_db.sql
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt seafile_db > seafile_db.sql
docker exec -i seafile-mysql mariadb-dump -uroot -p"$MYSQL_ROOT_PASSWORD" --opt seahub_db > seahub_db.sql
rsync -az /opt/seafile-data/seafile /backup/data/W tych liniach istotne są dwa szczegóły. Należy użyć mariadb-dump, ponieważ seria poleceń mysql jest przestarzała w obrazie MariaDB dostarczanym przez Seafile. Podczas przekierowywania wyjścia do pliku należy pominąć flagę -t w docker exec, ponieważ TTY modyfikuje znaki końca linii, co powoduje uszkodzenie zrzutu.
Obie części są zapisywane oddzielnie, więc mogą wystąpić rozbieżności. Po każdym przywróceniu danych należy sprawdzić magazyn przed rozpoczęciem jego użytkowania:
docker exec -it seafile bash
cd /opt/seafile/seafile-server-latest
./seaf-fsck.shW przypadku braków narzędzie wskazuje nazwę obiektu:
Block 650fb22495b0b199cff0f1e1ebf036e548fcb95a is missing.
Repo ca1a860d HEAD commit is corrupted, need to restore to an old version.Należy również zaplanować proces usuwania nieużywanych danych (garbage collection). Ze względu na deduplikację, usunięte pliki i biblioteki zachowują swoje bloki do momentu uruchomienia ./seaf-gc.sh z tego samego katalogu. Wynik działania raportuje znalezione elementy, na przykład GC finished. 507 blocks total, about 507 reachable blocks, 0 blocks can be removed.. Pominięcie tego procesu przez rok spowoduje, że kopie zapasowe będą nadal zajmować miejsce dla danych, które użytkownicy już usunęli.
Nextcloud posiada ten sam problem dwuczęściowości, ale w innej formie, ponieważ katalog z danymi oraz baza danych muszą opisywać to samo drzewo plików:
sudo -E -u www-data php occ maintenance:mode --on
rsync -Aavx /srv/nextcloud/ /backup/nextcloud-dirbkp/
mariadb-dump --single-transaction --default-character-set=utf8mb4 -u nextcloud -p"$DB_PASS" nextcloud > /backup/nextcloud-sqlbkp.bak
sudo -E -u www-data php occ maintenance:mode --offNależy zabezpieczyć folder konfiguracyjny, folder z danymi, wszelkie niestandardowe aplikacje i motywy oraz wspomniany zrzut bazy. Obie części należy przywracać z tego samego momentu czasowego. Jeśli katalog z danymi jest nowszy niż baza danych, użytkownicy zobaczą pliki, o których pamięć podręczna nie wie, a occ files:scan --all naprawi ten stan. Jeśli baza danych jest nowsza, wiersze w pamięci podręcznej wskazują na pliki, które już nie istnieją, a occ files:cleanup usunie wpisy z pamięci podręcznej, które nie mają odpowiadających im rekordów w tabeli przechowywania.
W obu przypadkach wymagany jest program do kopii zapasowych, który radzi sobie z dużą liczbą małych plików i przechowuje historię zmian, co jest domeną różnic między restic a BorgBackup.
Klienci na komputery stacjonarne i urządzenia mobilne
Seafile udostępnia dwa programy na komputery stacjonarne. Klient synchronizujący przechowuje lokalną kopię wybranych bibliotek. Klient Drive (SeaDrive) montuje biblioteki jako wirtualny dysk i pobiera dane w momencie dostępu: w systemie Windows korzysta z API Microsoft cloud files, w systemie macOS wersja 3.0 jest rozszerzeniem Finder, a w systemie Linux od wersji 3.0.12 jest dostarczany jako AppImage i montowany w ~/SeaDrive. Zaszyfrowane biblioteki działają na wszystkich trzech platformach stacjonarnych. Aplikacje mobilne służą wyłącznie do uzyskiwania dostępu do plików i tylko to jest ich celem.
Klient stacjonarny Nextcloud również oferuje pliki wirtualne, a jego aplikacje mobilne obsługują pozostałe funkcje platformy, dzięki czemu kalendarz, kontakty, Talk i notatki są dostępne obok plików. Jeśli użytkownicy korzystają głównie z telefonów i oczekują czegoś więcej niż tylko dostępu do plików, stanowi to istotną różnicę w codziennym użytkowaniu.
Jeden szczegół dotyczący Seafile wymaga zaplanowania: biblioteka jest jednostką udostępniania, synchronizacji, uprawnień i szyfrowania. Należy ustalić strukturę bibliotek przed wgraniem 500 GB do pojedynczej biblioteki, ponieważ przeniesienie danych między bibliotekami jest operacją kopiowania i usuwania, a nie zmiany nazwy, więc historia pliku nie jest przenoszona wraz z nim.
Szyfrowanie: co faktycznie jest chronione
Szyfrowane biblioteki w Seafile działają po stronie klienta. Hasło nigdy nie jest przechowywane na serwerze. Magiczny token, wygenerowany na podstawie hasła i identyfikatora biblioteki, jest zapisywany wraz z nią, dzięki czemu klient może zweryfikować hasło przed rozpoczęciem synchronizacji. Klucz pliku jest szyfrowany za pomocą klucza oraz wektora inicjującego (IV) wywiedzionych z hasła przy użyciu AES 256/CBC, a dane pliku są szyfrowane tym właśnie kluczem.
Należy zapoznać się z udokumentowanymi ograniczeniami, ponieważ użytkownicy często je pomijają. Szyfrowana biblioteka chroni wyłącznie zawartość plików. Nazwy folderów i plików nie są szyfrowane, podobnie jak rozmiary plików czy historia edycji. Przeglądanie zaszyfrowanej biblioteki przez przeglądarkę internetową nie jest rozwiązaniem typu end-to-end: użytkownik wpisuje hasło, serwer używa go do odszyfrowania klucza pliku i przechowuje hasło w pamięci przez jedną godzinę. Dokumentacja wyraźnie wskazuje również, że szyfrowana biblioteka nie zapewnia integralności danych, ponieważ administrator serwera może zmodyfikować część zawartości pliku, a klient nie jest w stanie tego wykryć.
Nextcloud oferuje dwie funkcje o myląco podobnych nazwach. Szyfrowanie po stronie serwera (server side encryption) zabezpiecza pliki w spoczynku (at rest), ale przechowuje klucze na tym samym serwerze, więc chroni dane przechowywane w zewnętrznych zasobach znacznie lepiej niż przed osobą posiadającą uprawnienia root na danej maszynie. Aplikacja do szyfrowania end-to-end szyfruje wybrane foldery po stronie klienta i zgodnie z założeniem serwer nie ma możliwości ich odczytania, co oznacza, że interfejs webowy, wyszukiwanie po stronie serwera oraz podglądy plików również nie mają wglądu w zawartość tych folderów.
Szyfrowanie w żadnym z tych produktów nie zastępuje zaszyfrowanej kopii zapasowej. Kopię zapasową należy szyfrować niezależnie.
Kalendarze, kontakty, pakiet biurowy i platforma aplikacji
Ta oś nie jest zamknięta. Nextcloud dostarcza w rdzeniu obsługę CalDAV (kalendarz przez WebDAV) oraz CardDAV (kontakty przez WebDAV), integruje Collabora lub OnlyOffice do obsługi dokumentów oraz posiada sklep z aplikacjami dla pozostałych funkcji. Seafile 13 dostarcza SeaDoc do wspólnej edycji dokumentów i stron typu wiki, na czym kończy się jego funkcjonalność. Brak w nim kalendarza oraz książki adresowej.
Platforma ma swoją cenę, a jest nią proces aktualizacji. Każda zainstalowana aplikacja stanowi potencjalny punkt blokujący aktualizację Nextcloud lub mogący powodować błędy po jej przeprowadzeniu. Im bardziej użytkownicy polegają na dodatkach, tym ostrożniej należy planować okno serwisowe. Seafile ma mniej elementów, które mogą ulec awarii, ponieważ oferuje mniejszy zakres funkcji. Należy również pamiętać, że to Seafile Professional, a nie Community Edition, dodaje pełnotekstowe wyszukiwanie wewnątrz dokumentów oraz uprawnienia na poziomie folderów w ramach płatnej licencji. Należy zatem upewnić się, czy funkcjonalność, na której zależy użytkownikowi, znajduje się w edycji przeznaczonej do wdrożenia.
Typowe tryby awarii poszczególnych rozwiązań
Seafile ulega awarii, gdy baza danych i magazyn obiektów przestają być ze sobą spójne. Objawia się to niemożnością otwarcia biblioteki lub znikaniem plików, a seaf-fsck.sh wyświetla informację o brakującym bloku. Nie istnieje drzewo plików, które można naprawić ręcznie, dlatego odzyskiwanie danych wymaga przywrócenia zrzutu bazy danych oraz magazynu obiektów w odpowiedniej kolejności. Należy przetestować procedurę przywracania na zapasowym serwerze VPS, ponieważ kopia zapasowa, która nigdy nie została sprawdzona, nie stanowi gwarancji bezpieczeństwa.
Nextcloud ulega awarii, gdy pamięć podręczna plików i stan dysku są rozbieżne, co zazwyczaj wynika z zapisu danych w katalogu bezpośrednio z pominięciem mechanizmów Nextcloud. Objawia się to obecnością pliku na dysku, który nie jest widoczny w interfejsie WWW, lub błędnym rozmiarem folderu; w takim przypadku rozwiązaniem jest occ files:scan. Dwa inne słabe punkty to szybkość protokołu przy dużej liczbie małych plików, której nie poprawi zwiększenie mocy CPU, oraz pamięć PHP: generowanie podglądów dużych obrazów i wideo powoduje nagłe skoki zapotrzebowania na zasoby, dlatego należy zapewnić 512 MB pamięci na proces i generować podglądy w ramach zaplanowanych zadań, a nie podczas obsługi żądań użytkownika.
Żadne z powyższych: Syncthing, jeśli potrzebujesz tylko synchronizacji plików
Jeśli rzeczywistym wymaganiem jest lustrzane odbicie folderu między maszynami, oba produkty są rozwiązaniami zbyt rozbudowanymi. Syncthing nie posiada serwera ani kont użytkowników. Każde urządzenie jest równorzędnym węzłem (peer), a VPS staje się węzłem, który pozostaje aktywny, gdy laptop jest uśpiony. Syncthing 2 to aktualna linia rozwojowa, a pakiety pochodzą z oficjalnego repozytorium projektu:
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 syncthingUruchamiaj usługę jako zwykły użytkownik, nigdy jako root, aby zapisywane pliki miały poprawne uprawnienia:
sudo systemctl enable --now syncthing@youruser
systemctl status syncthing@youruserInterfejs WWW domyślnie nasłuchuje na 127.0.0.1:8384, więc nie jest dostępny z Internetu, co jest poprawnym ustawieniem domyślnym. Uzyskaj do niego dostęp przez tunel SSH z laptopa:
ssh -L 8384:127.0.0.1:8384 youruser@your-serverNastępnie otwórz http://127.0.0.1:8384 na laptopie. Samo Syncthing używa portu 22000 przez TCP i QUIC, a lokalne wykrywanie urządzeń korzysta z UDP 21027, co nie działa przez Internet. Na VPS otwórz port 22000 i pozostaw interfejs niedostępny z zewnątrz:
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udpRezygnujesz w ten sposób ze wszystkich funkcji serwerowych: brak linków do udostępniania dla osób niekorzystających z Syncthing, brak przeglądarki plików w przeglądarce, brak kont użytkowników i brak kosza po stronie serwera, chyba że włączysz wersjonowanie plików dla danego folderu. Typowym zaskoczeniem jest plik konfliktowy. Edycja tego samego pliku na dwóch urządzeniach w czasie, gdy nie widzą się one w sieci, skutkuje powstaniem pliku o nazwie takiej jak notes.sync-conflict-20260806-142233-ABCD1EF.md. System nie wysyła ostrzeżeń, dlatego warto od czasu do czasu wyszukiwać sync-conflict.
Jeśli potrzebujesz nie zsynchronizowanego folderu, a zasobnika (bucket), do którego aplikacje zapisują dane, jest to zupełnie inne narzędzie: zobacz samodzielnie hostowana pamięć obiektowa zgodna z S3. W szerszym ujęciu, zestawienie samodzielnie hostowanych alternatyw dla Dropbox obejmuje rozwiązania, które nie znalazły się w tym porównaniu.
Zasada wyboru
- Wybierz Seafile, jeśli zadaniem jest synchronizacja o dużej skali: wiele plików, duże pliki, kilka urządzeń, a użytkownik akceptuje magazyn danych możliwy do odczytu wyłącznie przez Seafile.
- Wybierz Nextcloud, jeśli zadaniem jest obsługa platformy: kalendarze, kontakty, dokumenty i linki udostępniania, z plikami zapisanymi na dysku w formacie, który może odczytać dowolne narzędzie do kopii zapasowych.
- Wybierz Syncthing, jeśli zadaniem jest wyłącznie lustrzane odbicie folderu.
Wybieraj rozważnie, ponieważ migracja między Seafile a Nextcloud wiąże się z trwałym uzależnieniem od dostawcy. Nie istnieje narzędzie do konwersji danych. Należy zsynchronizować wszystko do klienta, przesłać na nowy serwer i ponieść koszty czasu oraz transferu, podczas gdy historia wersji i linki udostępniania zostaną utracone. Dopasowanie wyboru do potrzeb na najbliższe 3 lata jest tańsze niż zmiana rozwiązania w drugim roku użytkowania.
FAQ
Czy Seafile jest szybszy od Nextcloud przy synchronizacji dużych bibliotek?
Tak, w dwóch przypadkach, które zazwyczaj sprawiają problemy, i z powodów, które można zweryfikować. Seafile dzieli pliki na bloki o średnim rozmiarze około 8 MB i przesyła tylko te bloki, które uległy zmianie, więc edycja wewnątrz dużego pliku powoduje przesłanie tylko kilku bloków. Jednostką transferu w Nextcloud jest cały plik, więc ta sama edycja wymusza ponowne przesłanie całości. Wiele małych plików generuje co najmniej jedno żądanie WebDAV, dlatego API do przesyłania masowego grupuje małe pliki razem. Przed podjęciem decyzji należy przetestować oba rozwiązania na własnym VPS, ponieważ procesor, dysk i łącze sieciowe mają równie duże znaczenie co sam protokół.
Czy mogę wykonać kopię zapasową Seafile za pomocą rsync na katalogu danych?
Tylko razem z bazami danych i w udokumentowanej kolejności. Dokumentacja Seafile zaleca wykonanie kopii SQL w pierwszej kolejności, a katalogu danych w drugiej. Dzięki temu każdy rekord w bazie danych odnosi się do obiektu, który fizycznie istnieje w kopii zapasowej. Polecenie rsync -az /opt/seafile-data/seafile /backup/data/ kopiuje conf, seafile-data oraz seahub-data, ale samo w sobie nie pozwala na odtworzenie danych, ponieważ magazyn obiektów nie zawiera czytelnego drzewa plików, a baza danych stanowi jego indeks. Po przywróceniu obu części należy uruchomić seaf-fsck.sh i sprawdzić wynik przed uznaniem kopii za poprawną.
Czy potrzebuję Nextcloud, jeśli zależy mi tylko na synchronizacji plików?
Nie. Nextcloud to platforma, a kalendarz, kontakty i sklep z aplikacjami zużywają pamięć RAM i wymagają uwagi przy aktualizacjach, niezależnie od tego, czy są używane. Do prostej synchronizacji plików Seafile jest lżejszym produktem z szybszym protokołem, a Syncthing jest jeszcze lżejszy, ponieważ nie wymaga uruchamiania komponentu serwerowego. Wybierz Nextcloud, gdy potrzebujesz dodatkowych aplikacji, a nie jako domyślne rozwiązanie.
Czy zaszyfrowana biblioteka Seafile ukrywa nazwy plików?
Nie. Zaszyfrowana biblioteka szyfruje zawartość plików po stronie klienta, a hasło nigdy nie trafia na serwer. Jednak nazwy folderów, nazwy plików, rozmiary plików oraz historia edycji pozostają widoczne na serwerze. Otwarcie zaszyfrowanej biblioteki w interfejsie WWW przesyła hasło do serwera, który odszyfrowuje klucz pliku i przechowuje hasło w pamięci przez jedną godzinę. Jeśli same nazwy plików są poufne, nie należy otwierać takiej biblioteki w interfejsie WWW i zastosować szyfrowanie na innej warstwie.
Ile pamięci RAM należy przydzielić dla Seafile lub Nextcloud na VPS?
Dla obu rozwiązań przy kilku użytkownikach należy zacząć od 4 GB RAM i 2 rdzeni procesora, a następnie monitorować zużycie pamięci podczas generowania podglądów i wyszukiwania. Dokumentacja Seafile określa minimum na 2 GB RAM i 2-rdzeniowy procesor o taktowaniu powyżej 2 GHz. Nextcloud zaleca 512 MB na proces PHP, co należy pomnożyć przez liczbę procesów roboczych (workerów), a następnie dodać zasoby dla bazy danych i pamięci podręcznej. Syncthing działa stabilnie przy 1 GB RAM.