OwnCloud 3 sur un serveur Debian / Nginx

Date: 7/02/2012 | Catégories: Open-source,Planet-libre,Reseau,Web | Tags: ,,

Par ces temps de dématérialisation des espaces de stockages, les services en ligne comme Dropbox et SpiderOak focalisent à la fois des commentaires admiratifs (facilité d'utilisation, fiabilité) et réticents (protection de la vie privée, pérennité du service à moyen et long terme, prix). Du bon coté de la force, les alternatives libres et auto-hébergées commencent à pointer le bout de leurs nez. Une de ces solutions a eut droit à son petit buzz ces dernières semaines: OwnCloud.

J'apporte donc ma petite pierre à l'édifice en vous proposant une installation et une configuration de OwnClound version 3 sur un serveur Debian Squeeze sous NGinx.

Présentation de OwnCloud

OwnClound (en version 3 au moment de l'écriture de ce billet) se présente sous la forme d'un serveur à héberger sur une machine GNU/Linux.

Une fois installé, ce dernier propose les services suivants:

  • partage d'espaces disques via le protocole WebDav (support GNU/Linux, BSD, Mac OS X, Windows)
  • partage de fichiers en HTTP (fonction "sharing")
  • édition de fichier en ligne
  • accès à votre musicale
  • accès à vos photos
  • synchronisation de vos contacts en utilisant le protocole CardDav
  • synchronisation de votre agenda en utilisant le protocole CalDav
  • client disponible sous IOS et Android
  • extensibilité de votre cloud avec des applications...

Installation de OwnClound

Installation de LESP

La plupart des articles sur OwnCloud se base sur une couche LAMP (Linux Apache MySQL PHP). Je vous propose d'utiliser une base LESP (LESP = Linux + Engine X aka NGinx + SqLite + PHP). Les étapes de ce premier chapitre sont à effectuer seulement si les logiciels concernés ne sont pas déjà installés. On commence par installer le couple NGinx / PHP-FPM en utilisant par exemple mon script d'auto install:

[cc]

mkdir ~/installowncloud

cd ~/installowncloud

wget https://raw.github.com/nicolargo/debianpostinstall/master/nginxautoinstall.sh

chmod a+x nginxautoinstall.sh

sudo ./nginxautoinstall.sh

[/cc]

Note: la chose importante est de compiler NGinx avec le support Webdav (--with-http_dav_module).

Configuration de LESP pour OwnCloud

Par défaut, PHP n'autorise pas l'upload de fichier de plus de 2 Mo. Il faut donc changer cette configuration en éditant le fichier /etc/php5/fpm/php.ini pour augmenter cette limite à 1000 Mo (ou plus, c'est à adapter à vos besoins).

[cc]

post_max_size = 1000M

upload_max_filesize = 1000M

[/cc]

On configure NGinx pour qu'il gère le site cloud.comaine.com pointant vers le répertoire /var/www/owncloud (là encore, la configuration est à adapter à votre infrastructure) en éditant le fichier /etc/nginx/sites-enabled/owncloud (à adapter à votre besoins/configuration):

[cc]

server {

listen 80;

server_name cloud.mondomaine.com;

root /var/www/owncloud;

client_max_body_size 1000M;

index index.php;

dav_methods PUT DELETE MKCOL COPY MOVE;

create_full_put_path on;

dav_access user:rw group:rw all:r;

try_files $uri $uri/ @webdav;

location @webdav {

fastcgi_split_path_info ^(.+.php)(/.+)$;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

fastcgi_pass 127.0.0.1:9000;

}

# PHP scripts -> PHP-FPM server listening on 127.0.0.1:9000

location ~ .php$ {

try_files $uri =404;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi_params;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

# Stuffs

location = /favicon.ico {

access_log off;

return 204;

}

# Protect hidden file to read/write access

location ~ /. {

deny all;

}

}

[/cc]

On relance NGinx:

[cc]

sudo /etc/init.d/nginx reload

[/cc]

Il est possible d'utiliser le protocole sécurisé HTTPS en lieu et place de HTTP pour les communications entre le navigateur Web et votre serveur OwnCloud. La configuration est donnée en exemple sur cette page.

Installation des dépendances

OwnCloud utilise des librairies pour fonctionner correctement. Sous Debian (et Ubuntu), l'installation de dépendances se fait de la manière suivante:

[cc]

sudo apt-get install php5-sqlite php5-json mp3info curl libcurl3 libcurl3-dev php5-curl zip git

[/cc]

Installation de OwnClound depuis son dépôt GIT

OwnClound étant un projet encore "jeune", les évolutions sont fréquentes et je vous conseille l'installation depuis le HEAD des "sources" Git.

[cc]

cd ~/installowncloud

git clone git://gitorious.org/owncloud/owncloud.git

sudo mv owncloud /var/www/

sudo chown -R www-data:www-data /var/www/owncloud

sudo /etc/init.d/php5-fpm restart

[/cc]

Il ne reste plus qu'à finaliser l'installation en pointant un navigateur Web sur l'adresse de votre serveur:

http://cloud.votredomaine.com/

Et oh joie oh espoir:

Mettre à jour OwnCloud

Pour mettre à jour OwnCloud:

[cc]

cd /var/www/owncloud

sudo git pull

sudo chown -R www-data:www-data /var/www/owncloud

[/cc]

Utilisation de OwnCloud

Utilisation de l'interface Web

L'interface Web est légère et bien pensée. Elle présente vos fichiers sous la forme d'une arborescence classique (répertoire/ficher) ou bien avec des filtre pour n'afficher que vos fichiers musicaux (onglet Musique) ou photos (onglet Galerie si vous avez installé l'application). OwnCloud permet bien sûr de jouer vos musiques à distance (fonction streaming). Utilisant le service Spotify, je n'utilise pas trop cette fonction. La visualisation des images est un plus mais ne remplace pas un service dédié (comme on peut le trouver sur Internet).

Bref vous l'aurez compris, je n'ai pas vraiment accroché sur les applications tierces (musiques, photos, contact, agenda...), j'ai mes habitudes avec des services "Web" et il est dur d'en changer. Par contre, la fonction principale de OwnCloud (la mise à disposition d'un espace de stockage dans un nuage) est une alternative possible à Dropbox ou SpiderOak. Il faut toutefois relativiser cette comparaison. En effet, la population des personnes intéressées par OwnCloud et disposant d'une machine allumée et connectée en permanence sur Internet se limite au petit monde des GL (Geeks Libristes).

Nous allons voir maintenant comment accéder à son espace de stockage OwnCloud en utilisant autre chose que l'interface Web.

Accès direct depuis le serveur

Par défaut, vos fichiers sont stockés sur le serveur dans le répertoire /var/www/owncloud/data/user/files. Il est donc tout à fait possible d'accéder directement à cette arborescence depuis le serveur ou un accès distant comme SSH. Il faut par contre veiller à ce que les fichiers / sous-répertoires appartiennent à l'utilisateur www-data:www-data afin que l'on puisse les gérer avec les autres moyens d'accès (interface Web, Webdav...). Attention toutefois, dans sa version actuelle, OwnCloud ne gère pas les liens symboliques.

WebDav depuis Linux

Le plus simple est de faire le montage WebDav depuis votre navigateur de fichier. Sous Gnome le menu "Se connecter à un serveur" (Connect to a server) permet d'afficher la fenêtre suivante:

Il suffira ensuite de créer un bookmark vers le point de montage WebDav ainsi obtenu en le renommant OwnCloud. Un simple click vers ce bookmark vous donnera l'accès à vos données dans votre nuage.

Il est bien sûr possible de faire la manipulation en ligne de commande (après l'installation de davfs2):

[cc]

mount -t davfs http://cloud.mondomaine.com/files/webdav.php /home/user/owncloud

[/cc]

Update (27/02/2012): Afin de simplifier le lien entre vos répertoires locaux et ceux disponibles dans votre Cloud, il est également possible d'utiliser le couple Mirall/CSync qui comblent le gap des fonctions proposées par Dropbox avec un client desktop bien pensé.

WebDav sous Windows

Sous Windows 7, la manipulation est un peu plus complexe, il faut en effet modifier une clé de registre à partir du logiciel "regedit":

HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > WebClient > Parameters > BasicAuthLevel = 2

On peut ensuite passer par l'outil système de connexion de lecteur réseau:

Conclusion

Bien que réservé aux heureux possesseurs d'un serveur connecté en permanence à Internet, OwnCloud est un projet intéressant. Il centralise en un seul point les services utiles à la vie numérique de tous les jours: fichiers, images, photos, contact, agenda. Il lui manque encore quelques fonctions qui seront sûrement apportées par le système de plugins. Je pense notamment à: possibilité de jouer en streaming les vidéos stockées dans notre "cloud", accès par un protocole plus optimisé que WebDav (par exemple SSH), connexion vers les réseaux sociaux pour facilité le partage...

Le modèle économique de la société qui se cache derrière ce projet est de conserver le coeur du système (le serveur OwnCloud) sous licence libre (actuellement AGPL version 3) et de proposer une offre commerciale pour héberger vos données sur leurs infrastructures (cette offre sera disponible mi mars 2012).

Alors près à "switcher" vos données vers votre propres cloud ? Personnellement, j'attend encore un peu.

Quelques liens consultés lors de la rédaction de ce billet:

 

  • badmaniak

    Installé déjà avec Apache, je vais tester avec WebDav….

    @+

  • xon

    Merci Mr Nicolargo ;O)

    Cela fat deja quelques semaines que je lorgne sur ce OwnCloud.

    Le couple
    TutoNicoLargo/Nginx/OwnCloud/php-fcgi
    fonctionne a merveille sur mon petit Seagate Dockstar ;o)

    Bonne fin de jorunée

  • http://pataplouf.fr/ Eric

    Perso, j’utilise owncloud comme une solution webdav (pour mes calendriers). Je sais ca fait un peu big rien que pour ca.
    Pour ‘hébergement/synchro de data à proprement parlé comme un dropbox-like, je me suis récemment tourné vers un duo hyper sympa: SparkleShare (que j’avais perdu de vue pendant quelques temps et Giltab (pour l’hébergement et le versionnong de mes fichiers). Ca marche du feu de dieu, tout ca dans des VMs (openvz) sur mon dédié.

  • Pingback: OwnCloud 3 sur un serveur Debian / Nginx | LorfDotNet

  • tyler durden

    Bonjour,
    Très intéressant. Merci pour cette présentation.
    Question : Que faut-il utiliser pour synchroniser le calendrier et les contacts d’un serveur owncloud fraichement installé vers son smartphone Android – dans les deux sens si possible ? Un pas de plus vers la sortie du tout google avec Android ?
    Cordialement.

  • http://twitter.com/lopez_simon Simon Lopez

    Je conseille de rajouter ceci à la configuration nginx :

    location /files/webdav.php/ {
    rewrite “/files/webdav.php/” /files/webdav.php;
    }

    utile pour les utilisateurs de BitKinex entre autre.

  • http://blog.info16.fr bartounet

    Je suis content que mon biller sur Owncloud soit cité en référence ici et par Cyrille Borne :)

  • SalemHarrache

    Les liens symboliques marche chez moi. J’ai réussi à partager mon home : http://feedelli.org/owncloud-symlink-home-directory-your-owncloud-files

  • Pingback: Nicolargo : OwnCloud 3 sur un serveur Debian / Nginx | Actualités de l'open source | Scoop.it

  • http://www.cyrille-borne.com Cyrille

    @bartounet, oui ça m’étonnait aussi que Timcruz fasse un article de cette qualité j’ai du mener l’enquête :D

  • http://blog.info16.fr bartounet

    Merci
    J’essaie de faire quelques articles quand j’ai un peu de temps :)

  • http://www.divinetrek.com Nimax

    Effectivement, je l’ai testé et je le trouve intéressant. Une remarque tout de même sur la sécurité de login et de mot de passe. Ils sont en clair , même pas en md5 (le mot de passe).

  • http://blog.info16.fr bartounet

    rien ne t’empeche de mettre en place ssl sur Apache ou NginX

  • Pingback: OwnCloud 3 sur un serveur Debian / Nginx | GNU-LINUX | Scoop.it

  • Pingback: OwnCloud 3 sur un serveur Debian / Nginx | Offres d'emplois Top-TIC du jour, venant de Linkedn | Scoop.it

  • Mat’

    Il y a quand même un gros bémol par rapport à Dropbox (et autres services de synchronisation) : impossible de travailler sur ses fichiers sans une connexion internet !

  • http://blog.info16.fr Bartounet

    Ca se script..
    Rien ne t’empêche de synchroniser régulièrement en rsync un dossier local sur ton owncloud .
    Dropbox c’est un client installé, donc ca t’oblige à installer le client…
    c’est aussi contraignant qu’installer un script… amha

  • http://chteuchteu.wordpress.com chteuchteu

    Très bon article !
    J’avais déjà installé OwnCloud sur mon ordi perso (en configurant les ports et tout et tout)
    En effet il ne faut pas oublier d’attribuer l’owner correctement.
    De plus, les liens symboliques fonctionnent très bien ! Je m’en sers pour importer mon dossier Dropbox (le lecteur de musique est pas mal)
    Si je me souviens bien, l’astuce consiste en l’attribution à tous les fichiers présents derrière le lien symbolique de l’owner qui va bien.

  • http://www.reflexit.fr domi

    Super produit … la verrue la dedans c’est encore une fois Windows7 même avec la modification de la BdR impossible de connecter le partage WebDAV avec mes 2 win7_64bits :( alors que tout fonctionne très bien avec linux divers navigateur Web (dont IE!!) et NetDrive (sous windows) car c’est quand même bien pratique de monter un partage WebDAV sur une lettre de lecteur …. pour info mon owncloud est en https mais même en http ça donne le même résultat

  • Pingback: MY OWN CLOUD | ecitizen

  • Pingback: jolegrand | Pearltrees

  • http://www.soiree-sextoys.com/ evjf paris

    impossible pour moi de faire fonctionner webdav avec apache + owncloud, je vais profiter de ton tuto pour essayer avec nginx…

    merci

  • http://www.soiree-sextoys.com/ evjf paris

    petite précision , dans ton script j’ai tu remplacer oldstable par squeeze ( le depot donnait une erreur 404.. je ne pouvais pas aoir php5-fpm)

  • Pingback: Owncloud passe la 4ème « Loïc Faichaud

  • http://michauko.org/blog/ michauko

    Salut,

    J’arrive après la bataille, mais je vais livrer ici mon ressenti sur une installation owncloud, maintenant en version 4 (août 2012) et client de la même date.
    En quelques mots, ça me paraît un peu jeune et je n’y confierai pas encore ma clef USB cryptée (c’était le but, m’en débarasser physiquement).

    J’ai installé en LAMP (pas LESP), mais bon, on s’en fout un peu. postes windows uniquement (oui bon ben hein ça va ;) il en faut aussi + mon tél android.

    Globalement, ça s’installe en claquant des doigts et les clients aussi. Configuration simple etc. Trop simple. Galère pour avoir des logs quand ça se passe mal et ça se passe pas terriblement bien dès le départ.

    A mesure qu’on monte en volumétrie globale, des bugs apparaissent :
    1. j’ai eu un poste client qui n’a jamais voulu rien redescendre du cloud – après installation toute fraîche – par contre il envoyait bien des nouveaux fichiers… j’ai dû tout effacer et recommencer par petits paquets de fichiers pour y arriver…

    2. fichiers uppés avec taille 0, redescendus sur un autre poste client avec taille 0. Impossible de forcer, impossible de savoir pourquoi

    3. parfois, toujours sur une installation fraiche, tu as des répertoires entiers qui sont ignorés sans raison (pas de fichiers ouverts ou ce genre là)

    4. synchro android (appli payante tout de même) qui dure éternellement (et te pompe ta batterie en un clin d’oeil), tellement ça s’en sort pas. On ne peut pas d’ailleurs pas sync un sous-répertoire son cloud… ce qui me parait obligatoire car sur le téléphone, on ne voudrait sûrement avoir accès qu’à quelques fichiers. C’est tout de même bien pensé car ça ne sync que des listes de fichiers et on downloade à la demande (du fait d’un espace disque sur téléphone limité bien sûr).

    5. sur client windows uniquement : pas de sync immédiate lors d’opération de fichiers. A priori ceci est OK sur linux seulement. A venir en windows. Donc ça schedule tous les X minutes (incontrôlable) et si votre liste est grosse, j’ai l’impression qu’on ne termine pas une analyse de synchro avant de commencer l’autre…. ça explique peut-être pourquoi tout ne remonte pas.

    6. d’autres trucs chiants, mais bon, mon roman a assez duré.

    En conclusion,
    Sur IRC, ils connaissent parfaitement tout un tas de limitations qu’on trouve assez vite, ce sera fixé dans les prochaines releases, mais en attendant, tu ne peux pas y confier des données de manière fiable (c’est mon avis).
    Je vais troquer ma clef USB contre 2 rsync (ou unison d’ailleurs) : l’un boulot-serveur et l’autre serveur-maison.
    Néanmoins, je vais suivre les évol du projet car un jour il marchera bien et là, ça déchirera tout.

    Si quelqu’un a une installation tout à fait fiable, avec un volume conséquent, plusieurs postes clients, un téléphone etc, je suis preneur d’un autre retour d’expérience.
    a+
    Jacques

    • http://www.nicolargo.com nicolargo

      Manifestement tu n’es pas le seul dans ce cas:

      http://blog.etenil.net/owncloud-non-merci-en-fait/

      Personnellement, je n’utilise pas OwnCloud de manière intensive donc je n’ai pas rencontré les problèmes dont tu parles.

      • http://michauko.org/blog/ michauko

        Oui j’ai eu confirmation aussi.
        Sans être dans l’usage intensif, tu balances quelques 100aines de fichiers et 2/300 Mo et les ennuis commencent.
        Fais toi une moulinette pour comparer les tailles de fichiers uploadés et ceux d’origine, je ne serais pas étonné que ça couine un peu. Ce cas là est assez gênant car tu penses avoir sauvegardé, mais en cas de crash…

        Mon impression est qu’ils avancent tout de front : client android, serveur, clients win/mac/linux etc, là où souvent on voit plutôt un outil qui arrive à maturité mais pas très simple d’accès, puis les gadgets (appli iphone etc) arrivent. Là y’a tout, ça donne un bon sentiment, mais c’est en dév partout :)

        Bon je critique mais encore une fois, c’est déjà impressionnant et prometteur.

  • Pingback: Mon avis sur ownCloud 4 : son cloud perso (auto-hébergement de données synchronisées sur Internet) - Le blog de Michauko

  • http://implacables.fr Majid

    Bonjour,
    J’aimerai éviter de pourrir ce sujet qui ma foi est de fort bonne qualité…
    Toutefois, en suivant pas à pas le tutoriel (même la config de nginx) avec une ubuntu 12.04 lts fraîchement installée, j’ai un petit soucis :
    2012/10/25 16:20:26 [error] 1357#0: *261 access forbidden by rule, client: xxxxxxxxx, server: cloud.implacables.fr, request: “PROPFIND /remote.php/webdav/clientsync HTTP/1.1″, host: “cloud.implacables.fr”

    En gros j’ai l’interface qui s’affiche mais il semblerait que tout les fichiers qui se trouvent sous le rép /var/www/owncloud soient illisibles.

    J’ai l’impression que cela pourrait être une règle dans le htaccess qui ne passe pas trop bien mais je ne suis pas sur.

    Est ce que cela est déjà arrivé à quelqu’un ?

    Merci de votre aide.

  • http://www.senetis.fr Titon

    Bonjour à tous,

    En suivant ce tuto j’ai un problème d’affichage comme si le CSS n’était pas pris en compte…

    Avez vous déjà eu ce problème ?

    Merci

  • memento

    Bonjour !
    Merci pour ton tutoriel (temps et énergie) !

    Je souhaiterais également opter pour Owncloud sur la même base que toi (debian squeeze/NginX etc..).
    Ma question est la suivante : owncloud existe dans sa version 5 actuellement : ton tutoriel est-il toujours valide ?

  • Pingback: Installer OpenPhoto sur ça FreeBSD | Pad's Notes