- Modifié
Owncloud est un logiciel libre de cloud installable sur votre serveur. Il permet de synchroniser vos données "dans le nuage" sur votre serveur. Il fait partie des solutions les plus complètes en la matière, c'est "peut-être" même le meilleur. Il gère plusieurs utilisateurs. Un système de plugins permet de rajouter des fonctionnalités comme client mail, agenda, gestionnaire de mots de passe, gestionnaire de tâches, etc. Il est possible d'y lier votre compte Dropbox, Google ou autres. Vous pouvez également créer des liens de partages en 2 clics. Il est également possible de chiffrer l'intégralité de vos données.
Des clients desktop sont disponibles pour Windows, Mac OS X, CentOS, Debian, Fedora, openSUSE, SLE, Ubuntu.
Des clients mobiles sont disponibles sur Android, iOS, Blackberry. Il est possible de synchroniser plusieurs services avec un smartphone comme l'agenda ou les notes, de quoi se débarasser de google.
/!\ Attention /!\
Ce tuto a été fait à la base pour une utilisation en owncloud.domaine.tld et non en domaine.tld/owncloud.
La partie domaine.tld/owncloud a été rajouté suite à la demande d'un membre du forum et a été testée avec succès mais peut être incomplète ou contenir des erreurs. Si vous souhaitez comme moi avoir un domaine le moins cher possible, un .ovh coûte environ 1€20TTC/an et la configuration est simple (*.votredomaine.ovh) pas besoin de revenir dans l'interface ovh pour ajouter un sous domaine.
/!\ Docker /!\
Si vous connaissez docker ou que vous souhaitez apprendre docker, je ne peux que vous recommander de le faire et d'installer owncloud et vos autres applications avec docker. Je compte le faire d'ici peu sur mon kimsufi KS-1 pour toutes mes autres applications. Pourquoi docker se diront certains? Parce que je ne suis pas administrateur système, que je galère à installer certains outils à la main, que j'en ai marre de casser mon apt-get... et que docker en isolant les applications les unes des autres simplifie les choses au niveau de l'installation, des mises à jour, de la sauvegarde des données, de l'optimisation des performances pour owncloud (OPCache et APCu sont déjà inclus dans le conteneur de Wonderfall. De plus sur le dockerhub, toutes vos applications seront probablement disponible avec une base sur nginx. J'ai trouvé toutes les miennes sans la moindre difficulté. Je n'estime pas que ce soit un outil facile à prendre en main, il y a une grande quantité de choses qu'il faut obligatoirement maitriser et il faut prendre le temps de lire et relire le tuto de Xataz, faire des tests, peut-être lire d'autres tutos également mais avec un peu de temps et de bonne volonté... rien d'impossible. Même si je me suis dis au départ que je n'y comprendrais jamais rien. Certains se diront peut-être aussi qu'ils veulent faire le tuto pour comprendre ce qu'ils font quand ils installent owncloud sur une machine, si c'est le cas, n'hésitez pas à le faire sur une machine virtuelle ou sur un serveur en prod quitte à le virer après. Ca vous permettra de comprendre ce que vous faites et c'est quand même la clé pour avancer en informatique.
Wonderfall a fait une super image pour owncloud, que vous pouvez trouver ici.
Xataz a fait un tuto pour docker que vous pouvez trouver ici
Vous avez aussi quelques tutoriels disponibles sur Grafikart.
Si vous ne souhaitez pas utiliser docker, vous pouvez continuer ce tuto mais vous êtes prévenus ! Même si c'est mon propre tutoriel et que j'ai pris du temps à le faire, je vous recommande docker.
Prérequis:
Avoir suivi le tuto rutorrent de Magicalex afin d'avoir nginx et php7-fpm correctement configuré.
http://mondedie.fr/d/5302
Avoir installé mysql, si ce n'est pas fait:
Vous pouvez utiliser votredomaine.tld/owncloud si vous le souhaiter bien évidemment, seulement je vous mets en garde, ce n'est pas ce qui est recommandé par la documentation et c'est à vos risques et périls.
Pour Debian 8.0 Jessie:
On récupère la clé du dépot de owncloud:
On ajoute le dépot et on installe le paquet Owncloud.
On récupère la clé du dépot de owncloud:
Configuration pour cloud.votredomaine.tld
On crée le fichier de config:
Config pour votredomaine.tld/owncloud
Ouvrir le fichier rutorrent.conf:
Quand tout est ok, on redémarre nginx:
https://cloud.votredomaine
ou
https://votredomaine.tld/cloud
Vous devez obtenir ceci:
Pour des raisons de sécurité, la documentation owncloud recommande de ne pas mettre le dossier data dans /var/www. Je vous recommande donc la manipulation suivante (mais non obligatoire):
Création de la base de données
Si vous avez un outil web du type phpmyadmin, adminer, etc, la manipulation est faisable dessus, je vous propose la version commande:
Créer la base de données owncloud.
Mettez de préférence un mot de passe suffisament sécurisé pour être en vert.
Activation des plugins préinstallés installés
Allez sur :
Ensuite dans Not enabled je vous conseille:
- Default encryption module si vous souhaitez chiffrer vos données
- External storage support indispensable si vous souhaitez lier votre compte dropbox, google, etc.
- Gallery Un peu lent à mon goût mais peut être sympa pour regarder des photos. Nécessite de désactiver le plugin Pictures.
Dans Productivity:
- Calendar : Calendrier synchronisable avec smartphone, permet de remplacer google agenda.
- Contacts : Des importations de répertoires sont possibles. Je n'ai pas testé une éventuelle synchronisation smartphone.
- Tasks : Gestionnaire de tâches très bien fait.
Dans Tool:
- Files move : Améliore le déplacement de fichiers.
- ownNote : A considéré comme un clone d'evernote, un client de synchronisation android est dispo sur le Play Store pour 1€ et quelque.
Dans Other:
- Search Lucene : Améliore la recherche dans vos fichiers.
- Delete Confirmations : Ajoute une demande de confirmation pour supprimer un fichier.
- Direct Menu : Modifie le menu et affiche tous les icônes des plugins directement.
Installer un plugin depuis le store.
Plugins intéressants :
- Passwords : permet de stocker des mots de passe chiffrés sur votre serveur.
Je prend l'exemple de roundcube, c'est applicable à nimporte quel plugin.
On va sur la page de roundcube:
https://apps.owncloud.com/content/show.php/roundcube?content=151523
Tout en bas, cliquez sur download.
Récupérer l'url du plugin, si vous êtes sur une page sourceforge, c'est clic droit sur "click here" si vous êtes sur github, c'est code source .zip ou .tar.gz.
On se place dans /tmp:
Pour roundcube:
Votre plugin doit se trouver dans Apps et Not Enabled.
Cliquez sur Enable pour l'activer. En cas d'erreur, modifier le nom avec la commande mv jusqu'à ce que ce soit valide, je n'ai pas eu de soucis pour ma part mais en cas de soucis, n'hésitez pas à demander.
Voici ma liste actuelle de plugins :
Lier votre compte dropbox à Owncloud.
En haut à droite, cliquez sur Admin
Ensuite dans External Storage, cliquez sur Add Storage
Ensuite aller sur dropbox et connectez vous:
https://www.dropbox.com/
En bas cliquez sur ... et Developpers
Et cliquez sur app console:
Cliquez sur CreateApp en haut à droite.
Vérifiez votre mail.
Pour la suite, faire comme sur l'image, le nom de l'application n'a aucune importance, si jamais votre nom ne marche pas, mettez nimporte quoi.
Après validation, vous obtenez l'écran suivant
Et mettre les clés App Key et App secret dans les paramètres External Storage Dropbox de Owncloud et cliquez sur Grant Access
Une page dropbox s'ouvre et vous demande si vous autorisez l'application, cliquez sur allow.
Ensuite, votre compte dropbox est lié et un dossier dropbox sera présent sur la page de vos fichiers.
Configurer un cron pour le refresh de owncloud.
De base, le rafraichissement de owncloud est configuré pour s'effectuer à chaque chargement de page, c'est une mauvaise option. On va créer une tache cron pour rafraichir owncloud toutes les 15 minutes.
Et on modifie le paramètre dans l'interface d'administration comme sur l'image:
Uploadez vos photos et vidéos de votre smartphone avec l'application owncloud android.
Dans votre Owncloud, créer un répertoire pour les uploads mobiles et 2 sous répertoires pour photos et vidéos (ou autre le principal est de configurer les dossiers avant l'application).
Pour ma part, je fais un dossier mobileuploads et des sous dossiers photos et videos.
Installer l'application ocloud24.
https://play.google.com/store/apps/details?id=com.ocloud24.android&hl=fr
Connectez vous à votre compte, dans l'url mettre ce qui correspond à votre config:
ou
Je vous conseille ces réglages:
Des clients desktop sont disponibles pour Windows, Mac OS X, CentOS, Debian, Fedora, openSUSE, SLE, Ubuntu.
Des clients mobiles sont disponibles sur Android, iOS, Blackberry. Il est possible de synchroniser plusieurs services avec un smartphone comme l'agenda ou les notes, de quoi se débarasser de google.


La page de base de Owncloud

L'accès aux plugins installés à partir de la page de base.

Les possibilités de lien avec d'autres comptes de stockage

Ce tuto a été fait à la base pour une utilisation en owncloud.domaine.tld et non en domaine.tld/owncloud.
La partie domaine.tld/owncloud a été rajouté suite à la demande d'un membre du forum et a été testée avec succès mais peut être incomplète ou contenir des erreurs. Si vous souhaitez comme moi avoir un domaine le moins cher possible, un .ovh coûte environ 1€20TTC/an et la configuration est simple (*.votredomaine.ovh) pas besoin de revenir dans l'interface ovh pour ajouter un sous domaine.
/!\ Docker /!\
Si vous connaissez docker ou que vous souhaitez apprendre docker, je ne peux que vous recommander de le faire et d'installer owncloud et vos autres applications avec docker. Je compte le faire d'ici peu sur mon kimsufi KS-1 pour toutes mes autres applications. Pourquoi docker se diront certains? Parce que je ne suis pas administrateur système, que je galère à installer certains outils à la main, que j'en ai marre de casser mon apt-get... et que docker en isolant les applications les unes des autres simplifie les choses au niveau de l'installation, des mises à jour, de la sauvegarde des données, de l'optimisation des performances pour owncloud (OPCache et APCu sont déjà inclus dans le conteneur de Wonderfall. De plus sur le dockerhub, toutes vos applications seront probablement disponible avec une base sur nginx. J'ai trouvé toutes les miennes sans la moindre difficulté. Je n'estime pas que ce soit un outil facile à prendre en main, il y a une grande quantité de choses qu'il faut obligatoirement maitriser et il faut prendre le temps de lire et relire le tuto de Xataz, faire des tests, peut-être lire d'autres tutos également mais avec un peu de temps et de bonne volonté... rien d'impossible. Même si je me suis dis au départ que je n'y comprendrais jamais rien. Certains se diront peut-être aussi qu'ils veulent faire le tuto pour comprendre ce qu'ils font quand ils installent owncloud sur une machine, si c'est le cas, n'hésitez pas à le faire sur une machine virtuelle ou sur un serveur en prod quitte à le virer après. Ca vous permettra de comprendre ce que vous faites et c'est quand même la clé pour avancer en informatique.
Wonderfall a fait une super image pour owncloud, que vous pouvez trouver ici.
Xataz a fait un tuto pour docker que vous pouvez trouver ici
Vous avez aussi quelques tutoriels disponibles sur Grafikart.
Si vous ne souhaitez pas utiliser docker, vous pouvez continuer ce tuto mais vous êtes prévenus ! Même si c'est mon propre tutoriel et que j'ai pris du temps à le faire, je vous recommande docker.
Prérequis:
Avoir suivi le tuto rutorrent de Magicalex afin d'avoir nginx et php7-fpm correctement configuré.
http://mondedie.fr/d/5302
Avoir installé mysql, si ce n'est pas fait:
apt-get -y update && apt-get -y install php7.0-gd php7.0-mysql
Avoir crée un sous domaine, par exemple cloud.votredemaine. C'est une sécurité supplémentaire et c'est recommandé par la documentation owncloud.Vous pouvez utiliser votredomaine.tld/owncloud si vous le souhaiter bien évidemment, seulement je vous mets en garde, ce n'est pas ce qui est recommandé par la documentation et c'est à vos risques et périls.
Installation
Pour Debian 8.0 Jessie:
On récupère la clé du dépot de owncloud:
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_8.0/Release.key & apt-key add - < Release.key
Le & permet d'effectuer plusieurs commandes en une seule ligne.On ajoute le dépot et on installe le paquet Owncloud.
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list
apt-get -y update
apt-get install -y owncloud
Pour Debian 7 Wheezy:On récupère la clé du dépot de owncloud:
wget http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/Release.key
apt-key add - < Release.key
On ajoute le dépot et on installe le paquet Owncloud.
echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list
apt-get -y update
apt-get -y install owncloud
Pour le fichier de config, il est recommander d'effectuer le tuto Logjam : http://mondedie.fr/d/6738 . Il est possible de ne pas le faire, simplement, vu que le tuto sert à boucher une faille, ce n'est pas recommandé. Si néanmoins vous ne voulez pas le faire, il faut simplement effectuer les modifications indiquées dans ie fichier. .Configuration pour cloud.votredomaine.tld
On crée le fichier de config:
nano /etc/nginx/sites-enabled/owncloud.conf
Et on colle dedans:
server {
listen 80;
server_name sousdomaine.votreserveur;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name sousdomaine.votreserveur;
index index.php;
#SSL
# ssl on; enlever le # après avoir installé votre certificat ssl
ssl_certificate /etc/nginx/keys/votrekey.crt-unified;
ssl_certificate_key /etc/nginx/keys/votrekey.fr.key;
include /etc/nginx/conf.d/ciphers.conf; #à désactiver si vous ne faites pas le tuto Logjam
# ssl_prefer_server_ciphers on; #à activer si vous ne faites pas le tuto Logjam
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # à activer si vous ne faites pas le tuto Logjam
# ssl_ciphers 'AES256+EECDH:AES256+EDH'; #à activer si vous ne faites pas le tuto Logjam
# ssl_session_cache shared:SSL:10m; (limite la session ssl à 10mn, à activer ou non si vous le souhaitez.
#LOGS
access_log /var/log/nginx/owncloud-access.log combined;
error_log /var/log/nginx/owncloud-error.log error;
# root doit pointer vers le chemin d'installation d'owncloud. Typiquement /var/www/owncloud.
root chemin_de_votre_owncloud;
client_max_body_size 10G; # set max upload size
fastcgi_buffers 64 4K;
#rewrite url pour la synchronisation caldav/webdav.
rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
#eviter le référencement de votre cloud par google.
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
#interdire l'accès aux sous dossiers de owncloud.
location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
deny all;
}
location / {
# The following 2 rules are only needed with webfinger
rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ index.php;
}
#config php
location ~ ^(.+?\.php)(/.*)?$ {
try_files $1 = 404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$1;
fastcgi_param PATH_INFO $2;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
# Mise en cache des images
location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
expires 30d;
# Optional: Don’t log access to assets
access_log off;
}
}
Si vous utilisez php7 vous devez mettre :
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
à la place de :
fastcgi_pass unix:/var/run/php5-fpm.sock;
Config pour votredomaine.tld/owncloud
Ouvrir le fichier rutorrent.conf:
nano /etc/nginx/sites-enabled/rutorrent.conf
et ajouter à la fin après la fin de la config de rutorrent: ## début config owncloud ##
location ^~ /owncloud {
root /var/www;
include /etc/nginx/conf.d/php.conf;
include /etc/nginx/conf.d/cache.conf;
location ~ /\.svn {
deny all;
}
location ~ /\.ht {
deny all;
}
}
location ^~ /owncloud/conf/ {
deny all;
}
location ^~ /owncloud/share/ {
deny all;
}
## fin config owncloud ##
On vérifie que notre fichier de configuration est valide avec:
nginx -t
On utilise:
journalctl -xn
pour repérer nos erreurs si besoin et on corrige le fichier .confQuand tout est ok, on redémarre nginx:
service nginx restart
Ensuite allez sur ce qui correspond à votre config :https://cloud.votredomaine
ou
https://votredomaine.tld/cloud
Vous devez obtenir ceci:

cd ~
Et on créer un dossier data pour owncloud:
mkdir DataOwncloud
Et on change le propriétaire pour www-data qui correspond à notre serveur web:
chown -R www-data:www-data /home/votre_utilisateur/DataOwncloud/
Si vous ne souhaitez pas le faire, laissez le dossier par défaut:
/var/www/owncloud/data
La modification est possible par la suite avec le fichier de config.Création de la base de données
Si vous avez un outil web du type phpmyadmin, adminer, etc, la manipulation est faisable dessus, je vous propose la version commande:
mysql -u root -p
Entrez votre mdp root.Créer la base de données owncloud.
CREATE DATABASE owncloud;
Création de l'utilisateur owncloud et ajout des permissions sur la base de données owncloud:
GRANT ALL PRIVILEGES ON owncloud.* TO 'owncloud'@'localhost' IDENTIFIED BY 'votre_password';
FLUSH PRIVILEGES;
exit;
Ensuite on remplit la page d'installation suivant ce qu'on a choisit:Mettez de préférence un mot de passe suffisament sécurisé pour être en vert.

Après validation, il reste une dernière manip afin d'éviter quelques soucis de permissions
On change le propriétaire du répertoire /var/www/owncloud.
chown -R www-data:www-data /var/www/owncloud;
On mets les bonnes permissions:
chmod -R 755 /var/www/owncloud
chmod 755 /home/votre_user/DataOwncloud
L'installation principale est finie.
Néanmoins, vu les possibilités de OwnCloud, je vais rajouter des choses. Je poste vu que la partie de base est finie.
Néanmoins, vu les possibilités de OwnCloud, je vais rajouter des choses. Je poste vu que la partie de base est finie.
Activation des plugins préinstallés installés
Allez sur :

- Default encryption module si vous souhaitez chiffrer vos données
- External storage support indispensable si vous souhaitez lier votre compte dropbox, google, etc.
- Gallery Un peu lent à mon goût mais peut être sympa pour regarder des photos. Nécessite de désactiver le plugin Pictures.
Dans Productivity:
- Calendar : Calendrier synchronisable avec smartphone, permet de remplacer google agenda.
- Contacts : Des importations de répertoires sont possibles. Je n'ai pas testé une éventuelle synchronisation smartphone.
- Tasks : Gestionnaire de tâches très bien fait.
Dans Tool:
- Files move : Améliore le déplacement de fichiers.
- ownNote : A considéré comme un clone d'evernote, un client de synchronisation android est dispo sur le Play Store pour 1€ et quelque.
Dans Other:
- Search Lucene : Améliore la recherche dans vos fichiers.
- Delete Confirmations : Ajoute une demande de confirmation pour supprimer un fichier.
- Direct Menu : Modifie le menu et affiche tous les icônes des plugins directement.
Installer un plugin depuis le store.
Plugins intéressants :
- Passwords : permet de stocker des mots de passe chiffrés sur votre serveur.
Je prend l'exemple de roundcube, c'est applicable à nimporte quel plugin.
On va sur la page de roundcube:
https://apps.owncloud.com/content/show.php/roundcube?content=151523
Tout en bas, cliquez sur download.
Récupérer l'url du plugin, si vous êtes sur une page sourceforge, c'est clic droit sur "click here" si vous êtes sur github, c'est code source .zip ou .tar.gz.
On se place dans /tmp:
cd /tmp
On télécharge le plugin.Pour roundcube:
wget https://apps.owncloud.com/CONTENT/content-files/151523-roundcube.zip
On extrait l'archive:
unzip 151523-roundcube.zip
Pour un .tar.gz:
tar xvfz votre_plugin.tar.gz
Si vous avez une erreur, essayez:
tar xvf votre_plugin.tar.gz
On renomme le plugin si (ne marche qu'avec un nom précis, la plupart du temps avec le nom en minuscule sans numéro ou - etc).
mv monplugin.version.babla monplugin
On mets le dossier avec les plugins owncloud:
mv mon_plugin /var/www/owncloud/apps
Il reste enfin à mettre les bonnes permissions:
chown -R www-data:www-data /var/www/owncloud/apps/mon_plugin
chmod -R 644 /var/www/owncloud/apps/mon_plugin
Ensuite actualiser owncloud en cliquant sur le nuage ou avec : Ctrl+F5.Votre plugin doit se trouver dans Apps et Not Enabled.
Cliquez sur Enable pour l'activer. En cas d'erreur, modifier le nom avec la commande mv jusqu'à ce que ce soit valide, je n'ai pas eu de soucis pour ma part mais en cas de soucis, n'hésitez pas à demander.
Voici ma liste actuelle de plugins :

En haut à droite, cliquez sur Admin


https://www.dropbox.com/
En bas cliquez sur ... et Developpers


Vérifiez votre mail.
Pour la suite, faire comme sur l'image, le nom de l'application n'a aucune importance, si jamais votre nom ne marche pas, mettez nimporte quoi.




Configurer un cron pour le refresh de owncloud.
De base, le rafraichissement de owncloud est configuré pour s'effectuer à chaque chargement de page, c'est une mauvaise option. On va créer une tache cron pour rafraichir owncloud toutes les 15 minutes.
crontab -e
Et on colle à la fin:
#owncloud
# crontab -u www-data -e
*/15 * * * * php -f /var/www/owncloud/cron.php > /dev/null 2>&1
# crontab -u www-data -l
*/15 * * * * php -f /var/www/owncloud/cron.php > /dev/null 2>&1
Le 2e cron vérifie que le 1er s'est bien déroulé.Et on modifie le paramètre dans l'interface d'administration comme sur l'image:

Uploadez vos photos et vidéos de votre smartphone avec l'application owncloud android.
Dans votre Owncloud, créer un répertoire pour les uploads mobiles et 2 sous répertoires pour photos et vidéos (ou autre le principal est de configurer les dossiers avant l'application).
Pour ma part, je fais un dossier mobileuploads et des sous dossiers photos et videos.
Installer l'application ocloud24.
https://play.google.com/store/apps/details?id=com.ocloud24.android&hl=fr
Connectez vous à votre compte, dans l'url mettre ce qui correspond à votre config:
https://cloud.mondomaine
ou
https://mondomaine.tld/cloud
Allez dans paramètresJe vous conseille ces réglages:

N'hésitez pas pour toutes remarques, suggestions, erreurs trouvées dans la discussion.