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: