Seafile, a nyílt forráskódú tárhely megoldás a padláson

Néhány hete volt szerencsém belebotlani a SeaFile weboldalába. A Web UPD8 cikkezett róla. Még aznap este telepítettem is a padlásra, mivel régóta kerestem olyan megoldást amivel a család gépei között egyszerűen tudom megoldani a fájlok küldését és nem kell hozzá valamelyik nagy „cloud storage” szolgáltató. Semmi közük a fájljaimhoz :-o . Ígéretes a Bittorent Sync amihez egyáltalán nem kell köztes tároló, az egyik gépről a másikra közvetlenül p2p protokoll segítségével közlekednek az adatok. Csont nélkül működött, asztali gépek és mobil között is. Sajnos, hogy belül hogy működik az rejtély, nem nyílt forráskódú. Aztán volt még a git-annex ami a gitet terjeszti ki fájlok tárolására. Sok backenddel működik az usb-sticktől az amazon S3-ig. De nem teljesen az mint egy cloud storage és androidon a kliens sajnos nekem a telefonon nem ment.

Így adtam egy esélyt a SeaFile-nak. Meglepetésemre a leírás alapján semmi perc alatt működőképessé varázsoltam a padláson lévő gépen, aminek a változó IP címét az itt található instrukciók alapján egy saját IperWebnél hostolt virtuális szerveren lévő Bind9-nek adom át.

De mit is tud pontosan a SeaFile:

(nem teszteltem mindent végig)

További leírások a wikiben és itt és google groups illetve Twitter.

Szerver:

  • Debian 6
  • Ubuntu 11.10, 12.04
  • Centos 5.8, 6.0+
  • Raspberry Pi
  • Windows

Kliens:

  • Windows XP
  • Windows 7
  • Windows Vista
  • Ubuntu 12.04 -
  • Terminal Client - ?minden? linuxhoz
  • Mac OS X 10.6 -
  • Android
  • iPad/iPhone
  • Weboldal

Ha valaki nem akar szervert telepíteni van lehetőség tárhelyet bérelni tőlük.

Meg kell még említeni az üzleti szoftvert, aminek a tudásáról ezen a weboldalon olvashatsz. Ami pluszt ad:

  • WebDAV
  • Szöveg keresés a fájlokban
  • doc/ppt előnézet
  • Skálázhatóság / HA
  • AWS S3
  • Támogatás

Ha hiányzik valami a szoftver repertoárjából és szeretnél a projekthez hozzájárulni kóddal, azt megteheted a githubon. Fordítás javításához a Transifexen tudsz segítséget adni.

Hozzászólások

Pár perce tettem be az utolsó mappám is BitTorrent Sync-be. :) Kipróbálom ezt is.

owncloud-al van tapasztalatod? Ha igen akkor ahhoz képest vélemény?

Van. Mi szerverek között szinkronizálunk fileokat pár percenként vele, főleg sok sok képet(sok 10 ezer).
-Memoria zabáló és CPU nak is oda tud verni néha(bár jó HW n vannak, szóval nem akkora probléma)
-socket módban megy
-törlés + jog adás néha fura(előtte ekkor le kell unision server oldalát állítani), de mivel webszerverről van szó nem annyira égető problémánk.
-előfordult már hogy problémája volt(pl. ha 2en írnak egyszerre egy file stb.) ekkor leáll, de gyorsan orvosolható a dolog
-tudom nem DRDB stb. és nem is mennék bele összehasonlításba de hasonló funkció kiváltására kerestünk puritánabb egyszerűbb megoldást. és itt belefért az hogy pár perc eltérés
Inkább rsynchez hasonlítanám, de azért annál ez jóval gyorsabb és jobb.

Épp a napokban építettem meg a házi cloud rendszeremet, egy Raspberry Pi-ból és egy korábbi gépemből hátramaradt 160 GB-os, szekrényben porosodó SATA merevlemezből. Csak beépítettem egy USB-s házba, összekábeleztem, amit kellett, majd nekiestem a konfigurálásnak. A Seafile telepítése pofonegyszerű volt, a fontosabb feature-ök beállítási folyamata (pl. HTTPS elérés, default kvóta megadása, hány napig tartsa meg a history-t stb) szépen dokumentálva van a wiki oldalakon, így mindent sikerült a saját igényeimnek megfelelően bekonfigurálni.

Az eredmény:

* egy gyors és rugalmas, titkosított csatornán elérhető tárhely a gyakran használt cuccaimnak, amiket bárhol, bármikor el tudok érni, biztonságosan
* a munkahelyi anyagaim, amiket néha otthonról is el kell érnem, mostantól automatikusan szinkronizálódnak az otthoni gépemre is, amivel egy csomó extra melótól (fájlok oda-vissza mozgatása) megkímélem magamat
* épp ma mutattam meg szüleimnek egy tegnapi szülinapozáson készült fotókat - csak beléptem a Seafile webes felületére, és már mehetett is a slideshow
* óvónéni barátnőmet (értsd: nem power user) is sikerült rávennem, hogy használja ezt a tárhelyet a korábbi pendrive-on hurcolászás helyett. Kapott saját account-ot, elmondtam, hol tud belépni, magától megtalálta a fontosabb funkciókat és könnyedén elboldogult vele
* mindezt úgy, hogy nem kell aggódnom amiatt, hogy az adataim illetéktelen kezekbe kerülnek, vagy olyanok lesnek bele, akiknek semmi köze hozzá

A kliensek használhatók, bár a magyar fordítás elég ügyetlen bennük, Windows-on és Linux-on próbáltam, mindkettővel meg vagyok elégedve.

Egyetlen dolgot hiányolok, az pedig egy rendes mobilos (Android) kliens, a mostani még elég hiányos tudásában, illetve feltöltésnél gyakran elhasal a folyamat, többszöri próbálkozás után sikerült csak pár képet feltöltenem (a PC-s klienseknél nem tapasztaltam ilyesmit).

Nekem eddig nagyon bevált, ajánlom mindenkinek, akinek hozzám hasonlóan fontos a magánszférájának védelme, ugyanakkor nem szeretne lemondani a felhőalapú adattárolás kényelméről.

A fordítások egy részét (még nem jött ki kliens amiben benne lennének) volt szerencsém elkövetni a transifexen, ha valakinek van kedve lektorálni, javítani, hozzájárulni tegye meg. Nem vagyok szakképzett fordító, csak a család jobban elboldoguljon :) Elnézést a kontárkodásért :)

Siettem volna elnézést kérni, aztán megértettem, hogy a mostani kliens verziókban még nem a te munkád van (ugye, jól értem?).

Szívesen besegítek a lektorálásba. Leírod privátban, hogy mi a módja ennek? Kell-e esetleg valami engedély ahhoz, hogy lássam, illetve belejavíthassak a lefordított szövegekbe?

Referenciaként: én készítettem a monodevelop 2.2 magyar fordítását, illetve felturbóztam kicsit a squid proxy magyar változatát is (egész pontosan a HTML template-ek szövegezését). Mindkettő bekerült a forrásfába, bár azóta biztos mások is "belekontárkodtak". :)

Otthoni, 2-3 felhasználós környezetben teljesen használható. Javaslom, próbáld ki, és utána próbáld meg eldönteni, hogy vicc vagy sem.

Igaz, hogy 4-5 MB/sec-nél magasabb átviteli sebességet nem igazán lehet elérni szinkronizáláskor, de ha nem akarsz fel-le másolgatni több tíz GB-nyi adatot, akkor ezzel simán együtt lehet élni (egyszer relatíve sokáig tart a feltöltés, de ha már csak módosítgatsz a meglévő fájlokon vagy feltöltesz újakat, akkor egész vállalható a sebesség).

Te hogy definiálnád a felhőt? Arra gondolsz, hogy a szervernek csinálnia is kéne valamit az adatokkal? Mint pl a vírusírtóknál, hogy a feltöltés után szkennelik a fájlokat? Vagy csináljon tömörítéseket, esetleg konvertálon át doc-ot pdf-be? Vagy jelenítse meg a dokumentumokat, képeket, videókat? Ez utóbbit dropbox vagy boxnet mintha tudná. A dropbox html-t is megjelenít.
Vagy arra gondolsz, hogy egy felhős szolgáltatás esetén több ezer felhasználó van és igen aktívak. Ennek kezelésére meg nem képes, 2-3 felhasználós verzió semmi.
Ezek igazak. Felfoghatjuk egyszerűsített, kevés felhasználónak készített felhős megoldásnak is, melynek tényleges az adattárolás és adatok elérhetőségének biztosítása a cél.

Nyilván többen fújjolni fognak, hogy Wikipedia, szar, meg minden, de azért a kapcsolódó lényeget megtalálod benne:

„közös bennük az, hogy a szolgáltatásokat nem egy dedikált hardvereszközön üzemeltetik, hanem a szolgáltató eszközein elosztva, a szolgáltatás üzemeltetési részleteit a felhasználótól elrejtve”

http://hu.wikipedia.org/wiki/Felh%C5%91_alap%C3%BA_sz%C3%A1m%C3%ADt%C3%…

-----
"Egy jó kapcsolatban a társunkat az ő dolgában kell támogatni, nem a miénkben."
rand() a lelke mindennek! :)

Akkor a szerver és a kliens gépeket együtt is tekinthető felhőnek, hiszen kliens nélkül nincs értelme Seafile szervert üzemeltetni, a szerver nélkül meg nincs lehetőség az adatok állandó elérhetőségére.
Persze ha csak a szervert nézzük, az nem nevezhető felhőnek. Viszont mivel nemcsak a szerver az egyetlen szereplő, ezért felhőnek is nevezhetjük. A definíció nem tér ki arra, hogy állandóan üzembe kell lenni 1-nél több eszköznek.

"hanem a szolgáltató eszközein elosztva"

Értsd jól és itt a lényeg. Redundáns a rendszer, nem csak szervertermen belül, de földrajzilag is jó esetben.
Ha leáll, kiesik valami, jó esetben észre sem veszett, legrosszabb esetben néhány mp után egy másik helyről bejön ugyanaz a tartalmad.
Ezért kicsit fura 1 eszközről azt mondtani, hogy felhő. Az inkább egy netes tároló, amit a netnek kösönhetően bárhonnal elérsz.

\o/ Na, ez már közelebb áll a valósághoz. Tehát, gyakorlatilag sikerült egy NAS-t építeni. :)
Ne értsd félre, én is csak lakásban vagyok redundáns. :) De az adat és a szolgáltatások az három vason van, plusz a mentés két tényleg, csak nas-on. A harmadik meg a reszlire van. Több hardverhalált, meg egyéb sokmindent túlélt már. Igaz engem nem érdekel, VPN+SMBFS ahova kell. Nem akarok klienst, nem akarok semmit, ha adat kell, elérjem.
Egyébként a "cloud" igazi jelentése: cannot locate our users data. :)

... és mielőtt bárki elkezd pampogni, hogy ez rohadt sokat eszik, 6500HUF a villanyszámlám... de nem is rpi-ket használók (ami a rossz vicc kategória), hanem büdös pécéket, mert azok erre jók.

Biztató a whois a seafile.com-ra xD

Administrative Contact
beijinghaiwenhuzhiwangluojizhuyouxiangongsi

pan lingtao
Email:freeplant@gmail.com
haidianqushangdishangdijiayuan7haolou2danyuan1302
100085 beijing
China

Akkor lehet böngészni a forráskódot, hogy megbízható-e. :-)
A whois-ből nem kell messzemenő következtetéseket levonni. Nemrég vittük át a domain-ünket egy másig céghez. Menet közben kiderült, hogy pontatlanul volt megadva a címünk, a cégnévnek köze nincs a miénkhez, nem is létezik olyan. A regisztrátor szart bele az egészbe, jó volt neki úgy is.

Ha valamelyik nem így van, akkor javítsatok ki!
A btsync és a seafile különbsége csak annyi, hogy
- a seafile csak szerverrel működik,
- btsynchez nem kell szerver, gépek között megy a kommunikáció. Habár lehet itt is használni szerverként egy gépet, ha azon a szükséges könyvtárakat létrehozzuk.
- a seafile felülete jobban hasonlít felhős megoldásra, pl dropbox. Szerver orientáltabb.
Kérdés. Seafile esetén a szinkronizálás megy minden gép között vagy csak a szerver és kliens között? Ha a szerver kiesik, akkor az egész rendszer bukik, magával rántja? Pl nem lehet megosztani vagy letölteni adatot.

Jól látod, a seafile úgy működik, mint a dropbox és társai. Ha a szerver kiesik, akkor magával rántja az egészet, viszont a btsync nem tudom mennyire tud verzió követést - asszem van saját kukája ahonnan vissza lehet állítani dolgokat, a szinkronizáció csak akkor működik 2 gép között, ha mind a két gép egyidőben a hálózaton van. És ha jól emlékszem mindenféle hash-ek és infók mennek ki az internetre - elősegítve a gépek összetalálkozását ez asszem kikapcsolható...

A két sw-t nem ugyanarra a problém találták ki :-)

Seafile esetén melyik eszköz lehet rá alkalmas szervernek? Energiatakarékosságot is figyelembe véve?
- google android tv pc(pendrive szerű kütyü, ubuntu is rárakható),
- telefon, tablet,
- laptop,
- asztali pc.
Azért jó ez a kérdés, mert a szervert folyamatosan működtetni kell, minél nagyobb erre az igény. És ilyenkor zabálja az áramot, tehát a költsége itt jön elő. Ez már nem úgy van, mint pl dropbox esetén, hogy egy külsős cég tartja fenn a szervereit a költségeikkel együtt, tehát erre is gondolnunk kell.

Én úgy tapasztaltam, hogy 2-3 usert gond nélkül ki tud szolgálni egy Raspberry Pi. Az 512 MB-os "B" modell fogyasztása átlagosan 3,5 Watt, ami a csatlakoztatott USB eszközök fogyasztásától függően picivel magasabb lehet, de még így is olyan keveset fogyaszt, hogy az szinte kimutathatatlan a villanyszámlán.

Remélem, viszonyítási alapnak jó lesz ez az infó. :)

Ez a kütyű 10-12 ezer Ft körül van, ami nem vészes.
Mit értesz azon, hogy gond nélkül ki tud szolgálni? Ha több user használja egyszerre, akkor mit eszi jobban? Aprocit, a memóriát vagy a sávszélességet? Kb 400 KB/s sebességű a netünk, így az adatátvitel se tud több lenni. Elképzelhető akkor, hogy az én esetemben az eszköz nem lenne teljesen kihasználva?
Van belső hálózatunk is, gondolom az miatt már jobban ki tudjuk használni.
Ha egy nagyon minimális linux szerver lenne az eszközön, akkor az lehet, hogy sokat segítene.

Annyit jelent, hogy kb. 2-3 felhasználó tudja úgy használni egyszerre, hogy elfogadható a teljesítménye. A raspberry-nél igazából a processzor lassúsága és a memória relative csekély mennyisége lehet a szűk keresztmetszet. Már egy felhasználónál is jól láthatóan pörög a processzor szinkronizálás közben (50-60%-át viszi a processzoridőnek), de a sebessége (átvitelben és feldolgozásban) 4-5 MB/sec körül szokott mozogni, és úgy vettem észre, hogy a kis fájlok fel/letöltése sem okoz lassulást (ami gyakorlatilag megölte az owncloud-ot).

Nálam például 60/6-os netkapcsolat van otthon, így ha letöltök a cloud-omból, akkor kb 700-800 kbyte/sec sebességgel jön az adat, ha feltöltök, akkor 4-5 MB/sec. Belső hálózaton szimmetrikusan ki lehet hozni belőle a 4-5 MB/sec-et mindkét irányban (ez már a hardver limitációi miatt ennyi, gyanítom, hogy nem igazán lehet feljebb tornászni).

Szerk.: Raspbian fut az eszközön gyárilag, ami Debian-alapú, vagyis színtiszta GNU/Linux. :)

Igen, pont a memória és proci miatt kezdtem el utána nézni, hogy nem e lehetne inkább a Google PC-ét használni linux szervernek, ami hasonló árban, pici pendrive szerű és 2x 1.3 Ghz-es proci 1 GB memóriával, nem sokkal nagyobb wattfogyasztással. Csak ezekkel a linuxokkal fut, gondolom a felhasználói változatuk:
http://liliputing.com/2012/07/linux-distributions-that-can-run-on-an-mk…
Valami jól optimizált kevés erőforrást fogyasztó szerveres verziójú linuxot kéne valahogy rárakni, ami vinné a Seafile-t is rendesen. Még nem láttam rá példát, nemhogy tutoriált.
Ez a raspberry alapból milyen rendszert eszik és mennyi erőforrást eszik szerverként? Gondolom a Seafile is eszi valamennyire akkor is, amikor senki nem használja épp.
Abba már bele se merek gondolni, hogy egy wikis vagy wordpresses oldal hány látogatót bír el egyszerre, bár kíváncsi lennék rá.
A raspberry tetszik. Van USB-re köthető vinyó, tehát ez a része nem gond. Annyira új, hogy nemigazán tudom, hogy mire számíthatok pl a szerver beüzemeléskor fizikai és szoftveres szinten. Jó, Seafile ügyben már van némi elképzelésem.

"Ez a raspberry alapból milyen rendszert eszik és mennyi erőforrást eszik szerverként?"

Nem teljesen értem a kérdést. A Raspberry maga a hardver, a Raspbian pedig az oprendszer. Ha arra vagy kíváncsi, hogy a Raspbian mennyit "eszik": nem többet mint egy bármilyen Linux-alapú épülő oprendszer, bár ha jól sejtem, eleve úgy konfigurálják, hogy a raspberry adottságaihoz képest ne foglaljon túl használjon túl sok erőforrást.

Referenciaképp: fut most a rendszeremen a seafile és az nginx (nem csinálnak semmit épp) és 12 MB szabad memória van + 360 MB cache. A swap használat nulla.

Igen. Nagyjából arra voltam kíváncsi, hogy nálad mik a tapasztalataid. A B modelt használod gondolom 512 MB-tal. A másik kérdés, ami foglalkoztat, hogy mennyire lehet feszegetni, hogy minél kevesebb erőforrást fogyasztó linux szerver működjön rajta, hogy ezáltal a Seafile minél nagyobb erőforráshoz jusson, minél nagyobb terhelést bírjon.
És bár egy Ethernet csatlakozó van, de vajon meg lehet e valahogy oldani, hogy több Raspberry eszköz legyen összekötve, így a szerver számára több erőforrás lenne biztosítva, ezzel még nagyobb terhelést bírjon.

https://seacloud.cc/group/3/wiki/seafile-roadmap-2-x/

2.1 (To be released before 2013.12.13)

Web

Enable a user to choose how to encrypt/decrypt files in encrypted files during online browsing (Done)
Upload link (Done)
Activity timeline
Preview for doc/ppt and libreoffice files.
Webdav
Support sub-library (Done)

Syncing

Improve file syncing speed to easily handle 10k+ files in a library

Client

View file activities in the client
Show a notification if there are unread notifications on the server (Done)

Én is hasonló cipoben jarok. btsync+rpi+pendrive. :-) Nekem csak a notebook és tablet közötti szinkronizációra kell (pár e-book). Most probalgatom a seafile-t is, de Androidon a fileokat nem teszi le ténylegesen az eszközre, csak ha rábökök, akkor tölti le. Van erre tippetek, hogy ez állitható-e? A kliensben nem találtam opciot rá. Lehet hogy csak kicsit várni kell még 1-2 verzióra?

Kb 12 fővel, 4-5 eltérő megosztással kezdtem bevezetni. Megosztások, admin jogok menet közbeni módosítása és úgy alapjában véve a szolgáltatás eddig hibamentes.
Arra a koncepcióra jutottam, hogy van egy admin user aki létrehozza a csatolási pontokat és megosztja a többiekkel. Így egy helyen (admin usernél) látni az összes kiosztott megosztást.

A CLI is remek szerverre történő szinkronizáláshoz, így akár webes front-end is illeszthető.
Egyelőre nem sok, ~3.5GB adat van fent, de egyre erőteljesebb használatban lesz. Majd beszámolok a hosszabb távú tapasztalatokról ill. tőletek is várom, ha érdemes valamire figyelni.

Tapasztalatok közel fél év használat után:

* hibátlanul működik, mind a webes frontend, mind pedig a linuxos CLI kliens remekül használható
* nem tudom, hogy ez egy bug vagy csak én bénáztam valamit, de néhányszor (két-három alkalommal) láttam olyat, hogy bizonyos fájlokból automatikusan létrejöttek olyan másolatok, amik elvileg csak ütközésnél jönnek létre, de nem jöttem rá, hogy mitől
* a linuxos CLI-s kliens néha kicsit leterheli a rendszert a munkahelyi gépemen, pl. ha épp indexel vagy commitol valamit, érezhetően lelassul a desktopom. Nem komoly, de néha kicsit zavaró, bár gyanítom, hogy itt már a hardver lesz a szűk keresztmetszet (2006-os beszerzésből való a gépem)
* szerveroldalon egyszer frissítettem már, zökkenőmentesen ment, a doksit követve 10 perc alatt megvolt az egész
* sok új fájl indexelésekor gyorsan zabálja a tárhelyet a diszken

Nagyjából ennyi jut eszembe, én elégedett vagyok vele. :)

Időközben portoltam openwrt-re (14.07 / trunk), egyelőre a 3.1.7-es verziót lehet csomagból telepíteni. Tervbe van véve a nemrégiben megjelent 4.0-s verzió tesztelése, amint lesz rá időm, megnézem.