Minulý týden jsem se v článku o ownCloud zabýval jeho ekonomičností a zmínil většinu jeho funkcí. Dnes se podělím o praktické zkušenosti, které s tímto nástrojem mám. Pokud jste minulý článek nečetli a o projektu ownCloud slyšíte poprvé, jde o nástroj pro vytvoření vlastního cloudového úložiště, což v praxi znamená, že je to centrální úložiště, s nímž můžete synchronizovat svá data. Není to jediná funkce, kterou ownCloud má, ale jde o primární funkci. Ve webovém rozhraní je pak možné s daty pracovat. Může se jedna o pouze vytváření textových souborů, přesouvání souborů, přehrávání hudby, vedení kalendáře, udržování kontaktních informací v centrální a synchronizovatelné databázi a mnoho dalšího. Pokud ownCloud nějakou funkci nemá, můžete si do něj nainstalovat aplikaci třetí strany, která potřebnou funkci dodá. Komunita kolem projektu je velmi aktivní a pro vývoj byly zvoleny nástroje, které ho otevírají každému.
Instalace
Od článku z minulého týdne nám verze ownCloud poskočila z 4.0 na 4.0.1 a přinesla důležité opravy chyb, kvůli kterým novou verzi nechtěl nasadit třeba poskytovatel OwnCube. Bohužel, další chyby zůstaly, což se týká hlavně méně standardních instalací. Uvedu příklad. Provozuji ownCloud na webovém serveru Apache, ale před ním mám předřazen Nginx jako reverzní proxy a ten obstarává připojení přes HTTPS. To se ownCloudu nelíbí a selhává na CSRF ochraně. Nová verze tento problém měla vyřešit, ale nepodařilo se a na HTTPS se bez úpravy zdrojových kódů nedá přihlásit.
Druhým problémem v mé instalaci je použití PostgreSQL databáze, se kterou v současné době nefunguje vyhledávání hudby a tedy i hudební přehrávač integrovaný v ownCloud. Problém opraví tento SQL dotaz:
ALTER SEQUENCE media_songs_song_id_seq RENAME TO media_songs_id_seq;
Když se uživatel drží MySQL a webového serveru Apache, nenarazí při instalaci na problém.
V minulém díle jeden ze čtenářů v diskusi požádal o návod na instalaci. Nechtěl jsem žádný psát, protože možností, jak ownCloud nasadit, je spousta, a ta nejjednodušší je zaplatit si někde hosting. Za předpokladu, že před sebou máte Debian nebo Ubuntu Server, je postup následující.
Nainstalujeme potřebné balíčky.
# apt-get install apache2 libapache2-mod-php5 php5-json php5-gd php5-sqlite php5-curl curl libcurl3 bzip2
Nakopírujeme zdrojové kódy do /var/www, změníme práva a co není potřeba, vymažeme:
# rm -r /var/www/*
# cd /var/www
# wget http://download.owncloud.org/releases/owncloud-4.0.1.tar.bz2
# tar xf owncloud-4.0.1.tar.bz2
# mv owncloud/* .
# mv owncloud/.htaccess .
# rmdir owncloud
# rm owncloud-4.0.1.tar.bz2
# chown www-data:www-data -R /var/www
Nakonec aktivujeme mod_rewrite a restartujeme Apache:
# a2enmod rewrite
# /etc/init.d/apache2 restart
Když zadáme IP adresu počítače, měl by se objevit konfigurační dialog ownCloud.
Pro jednoduchost vybereme databázi SQLite, ale ownCloud si poradí i s PostgreSQL a MySQL. Sám dokáže detekovat, jaká rozhraní pro databáze má k dispozici, a ty nabídne. Po nastavení uživatelského jména a hesla se můžete do svého cloudu přihlásit a nakonfigurovat si synchronizačního klienta. Když se vše povede, tak po přihlášení uvidíte následující rozhraní.
Tento postup lze aplikovat na všechny servery s čistým Debianem nebo Ubuntu Serverem. U jiných distribucí se bude lišit řádek s instalací balíčků, kde bude jiný nástroj, a protože mají distribuce PHP rozdělené různě, tak se změní i seznam balíčků.
Konfigurace serveru
Hned z kraje zjistíte, že takto nainstalovaný ownCloud má omezení na maximální velikost uploadovaných souborů na 2 MB. To lze napravit v souboru /etc/php5/apache2/php.ini, kde se upraví následující dvě hodnoty na požadovanou velikost.
upload_max_filesize = 2M
post_max_size = 8M
Komplikovanější metody hostování pak mohou mít omezení na jiných místech. ownCloud vám v uživatelském rozhraní předhodí jednu z hodnot výše, resp. vybere tu nižší, ale už nemůže zjistit, že provozujete ownCloud za proxy, která má vlastní limity. Na podobný problém narazíte při použití mod_fcgid, kde se nastavuje maximální velikost požadavku směrem k FastCGI serveru. Limity stojící v cestě se týkají i synchronizace s počítačem. V případě že provozujete svůj ownCloud na cizím serveru, který nemáte pod kontrolou a netušíte, co se schovává mezi aplikací a portem 80, hledejte problém při uploadu velkých souborů právě v těchto limitech.
Webové rozhraní
V dalších částech článku budu ownCloud porovnávat s Dropboxem, protože s ním mám bohaté zkušenosti a řekl bych, že je mu ownCloud z ostatních služeb tohoto zaměření nejblíže.
Na ownCloud jsem si oblíbil webové rozhraní, které rozhodně nepatří k rychlíkům, ale za to jde vylepšit o aplikace třetích stran. Dropbox je v tomto o řád lepší, nenačítá s každým kliknutím novou stránku a seznam souborů v průměru načte za 1,7 sekundy. ownCloud při stejné akci potřebuje 2.2 sekundy. Čísla jsou jen orientační, protože do procesu měření vstupuje mnoho parametrů od serveru, na kterém obě služby běží, po webový prohlížeč na straně klienta.
Zatím je ještě brzo hodnotit kvalitu webového rozhraní, protože každý den přicházejí do repositáře commity s novými funkcemi a opravami chyb. Současný stav bych označil za beta verzi, která sice funguje, ale dokáže nepříjemně překvapit. Nenarazil jsem třeba na problémy typu, že by se mi z úložiště začaly ztrácet soubory, ale občas narazím na funkci, která nefunguje. Navíc dvě různé instalace, kdy je jedna totožná s návodem nahoře a druhá běží jako FastCGI za reverzní proxy a na PostgreSQL, se chovají zcela odlišně.
Například multimediální přehrávač funguje, když ownCloud jede na SQLite, ale zase s mod_php se mi občas rozhraní zasekne při použití prohlížeče Google Chrome. Podobně se chová třeba aplikace pro zobrazení obsazenosti diskového prostoru v grafu, kdy na FastCGI naběhne neúplně a prakticky bez uživatelského rozhraní a na mod_php funguje bez problémů. Jsou tu i společné chyby jako třeba nefunkční sdílení mezi uživateli. Z mého pohledu jde o detaily, o odklonění z předpokládaného způsobu použití a instalace, ale dokáže zkazit pocit z jinak dobře fungujícího nástroje. Kvůli tomu nelze v současné době považovat webové rozhraní ownCloudu za stabilní a ještě chvilku tomu tak bude.
Když se odvrátím od chyb a soustředím se chvíli na to dobré a funkční, také toho není málo. Líbí se mi třeba možnost sdílet soubory soukromými odkazy nebo jejich odesílání na e-mail. Každému uživateli můžete nastavit maximální velikost jeho úložiště a přiřadit ho do skupiny pro jednodušší sdílení. Integrovaná aplikace, která najde všechny adresáře s obrázky a udělá alba, může také pomoci, a pokud máte kompatibilní zařízení, funguje bez problémů synchronizace s kalendářem. Navíc se vývojáři hodně angažují v podpoře KDE 4, takže uživatelé tohoto desktopového prostředí mohou synchronizovat se svým počítačem jak kalendář, tak kontakty. Vývojáři mysleli i na migraci mezi poskytovateli, takže v konfiguračním dialogu najdete možnost exportovat data a samozřejmě také jejich import. Aplikace třetích stran, i když některé nefungují, tak doplní funkce jako zkracování URL, zápis poznámek, šifrování, import kontaktů ze serverů Googlu, integrace s LDAP nebo OpenID a mnoho dalších.
Synchronizační klient
Klíčovou funkcí ownCloud je synchronizace, která funguje lépe než webové rozhraní, ale také se občas zachvěje. Jak na instalaci synchronizačního klienta ownCloud sync client (oCC) se dozvíte na webu opensuse.org, kde jsou rozepsané postupy pro různé distribuce. Bohužel pro Debian a Ubuntu zde nejsou uvedeny klíče, takže pokud dodržíte do puntíku návod na přidání repositáře a instalaci oCC z něj, bude vám apt-get hlásit problémy s GPG klíčem. Správný postup pro Ubuntu 12.04 vypadá takto:
$ sudo su
# echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /' > /etc/apt/sources.list.d/owncloud.list
# wget -O - http://download.opensuse.org/repositories/isv:/ownCloud:/ownCloud2012/xUbuntu_12.04/Release.key | apt-key add -
# apt-get update
# apt-get install owncloud-client
Po instalaci se v menu objeví aplikace Folter Sync s ikonou mráčku. Při prvním spuštění budete požádání o URL vašeho úložiště, jméno a heslo.
Pak budete požádání o zvolení adresáře, který se má synchronizovat. Na rozdíl od Dropboxu, kde se synchronizuje jeden adresář, který je pro Dropbox rootovský, u ownCloud je možné synchronizovat ze serveru jen vybraný adresář. Samozřejmě je možné, aby se ownCloud choval přesně jako Dropbox, ale výběr konkrétního adresáře otevírá třeba možnost oddělení dat k synchronizaci na různých počítačích.
Na synchronizačního klient je vesměs spolehnutí. Důležité je pamatovat na nastavení maximální velikosti uploadovaného souboru na webovém serveru, to může způsobit na první pohled nejasné chyby jak ve webovém rozhraní, tak u klienta. Hlášení chyb není moc ukecané a pokud už dojde k problémům, dostane uživatel následující nicneříkající hlášku.
Jako důležité vidím, že synchronizační klient neztratil žádná data a dokonce se mu povedlo vše spolehlivě synchronizovat oběma směry. Chybí mi nějaká stavová ikonka, nějaké informace o tom, kolik dat směrem k serveru či od serveru teče, do kdy potečou a třeba i možnost omezení rychlosti. I tak mohu říct, že přes občasné rozpadnutí komunikace se serverem jsem spokojen. Synchronizaci nedělalo problém postupné stahování souboru nebo postupné psaní tohoto článku. Poradila si se soubory o velikosti stovek MB i několika stovkami souborů o velikosti pár kB.
Shrnutí
ownCloud stojí za vyzkoušení a díky tomu, že má většina současných poskytovatelů nějaké balíčky dostupné zdarma, to není ani moc náročné. Za sebe můžu říct, že se dá s jistou mírou opatrnosti použít na seriózní práci, ale službu pro běžné uživatele bych si na něm nedovolil postavit.