Table des matières

Utiliser Nextcloud

Nextcloud est un service similaire à Dropbox ou Google Drive, mais contrairement à ces derniers, les données hébergées restent privées et non pas confiée à une entreprise aux buts douteux1).

Vous pouvez récupérer et échanger des fichiers (photos, textes, etc) de deux façons :

La première solution est parfaite pour un besoin très ponctuel, mais dès qu'il y a besoin de récupérer/envoyer beaucoup de données, installer un client est plus pratique, car il va envoyer et télécharger tranquillement, sans prendre toute la bande passante et en pouvant s'interrompre et reprendre sans souci.

Passer par le web

C'est la façon la plus simple de récupérer un fichier ou un dossier, par exemple les photos de vacances d'un de vos amis.

Si vous avez reçu une adresse du type https://liev.re/cloud/s/PQJWx4Wv7Jnxic (exemple sur l'instance liev.re), vous devriez arriver sur une page similaire à la capture d'écran suivante :

 Capture d'écran

S'il s'agit juste de récupérer des photos, cliquez sur Télécharger (n°2) pour télécharger tout le dossier, ou bien sur les 3 points (n°4) puis Télécharger (N°7) pour télécharger juste un des fichiers.

Si vous souhaitez envoyer un dossier ou un fichier, ce sera le petit + (n°3) à cliquer.

En détail :

Installer un client

Pour installer le client, rendez-vous sur https://nextcloud.com/install/#install-clients et téléchargez le client suivant votre système (Windows, Mac, Linux), puis installez-le.

Une fois l'installation finie, il faut lier le client à un compte. Certaines instances Nextcloud permettent de s'inscrire soit-même, mais généralement, il faut demander un compte à la personne qui possède le serveur (probablement celle qui vous a envoyé un lien Nextcloud). Dans ce cas, demandez les trois informations suivantes, que vous rentrerez lors de l'ajout du compte sur votre client :

Le client propose de choisir un dossier sur votre ordinateur : c'est dans celui-là qu'il va ensuite synchroniser ce qu'il va trouver sur le cloud.

À partir de ce moment, vous pouvez laisser le client tourner en arrière-plan. Sur votre ordinateur, allez dans le dossier que vous avez lié au cloud, vous verrez apparaître de nouveaux dossiers et fichiers, et tout ce que vous mettrez dans ce dossier sera synchronisé vers le cloud.

Attention aux effacements: tout ce que vous ajoutez sera ajouté sur le serveur, mais tout ce que vous effacerez le sera aussi, pour tous ceux qui ont accès à ce répertoire partagé. Cela n'efface pas que chez vous, dès l'instant où vous êtes dans ce répertoire partagé.

Vous pouvez donc faire un dossier “PhotosAvril”, mettre toutes vos photos d'avril, puis aller faire autre chose tandis que le client va tranquillement envoyer les photos au serveur. Cela peut prendre du temps mais ça finit par se faire.

Manipulation de sysadmin

Ce qui suit concerne uniquement les personnes qui gèrent un service nextcloud. En tant qu'utilisateur basique, ça ne sert à rien ;)

Manipuler les fichiers hors client

Pour envoyer ou déplacer beaucoup de fichiers, c'est parfois plus simple de ne pas passer par le client.

Utilisation classique de rsync (qui doit être installée sur les deux serveurs, visiblement). La commande suivante depuis le serveur final :

rsync -av serveur:/home/user/image /var/www/cloud/data/user/files/Photos/

Ou de scp sinon sur le serveur initial :

scp -r origine serveur:destination

Ensuite, pour que la base de donnée de Nextcloud soit à jour, il faut rescanner le dossier. L'user est celui de nextcloud, même casse. En cas de doute, regarder dans nextcloud/data/ :

cd /var/www/cloud/
sudo -u www-data php occ files:scan User

Ou pour scanner uniquement une partie du dossier :

sudo -u www-data php occ files:scan --path="data/user/files/Photos"

Générer des vignettes

Si on a récupéré pleins de photos, autant générer les vignettes. Sinon c'est lorsque que quelqu'un visite la page, et pour les visiteurs ça va être looooong.

Il faut installer l'application Preview Generator. Ensuite, encore en ligne de commande à la racine du cloud :

sudo -u www-data php occ preview:generate-all -vvv

Mais pour moi, ça n'avais pas fait le tour des users… Donc, dans ce cas :

sudo -u www-data php occ preview:generate-all User

C'est long, mais ça marche.

Installation

CF https://docs.nextcloud.com/server/20/admin_manual/installation/source_installation.html (attention à la version pour laquelle c'est valide).

Liste des paquets recommandés, pour Debian :

php php-fpm php-curl php-cli php-gd php-xsl php-json php-intl php-pear php-imagick php-dev php-common php-mbstring php-zip php-soap php-bz2 php-apcu php-memcached php-redis php-bcmath php-gmp php-dompdf
redis-server ffmpeg

La doc préconisent d'autres trucs mais je ne sais pas où c'est sur debian…

Côté bdd :

sudo apt install mariadb-server mariadb-client php-mysql

Passe en root et paramétrer mariadb

sudo -i
mysql_secure_installation

Restauration, import d'une ancienne bdd

Se connecter à mysql

mysql -u root -p

Créer la bdd et son user, recharger et quitter:

create database cloud ;
GRANT ALL ON cloud.* TO clouduser@localhost IDENTIFIED BY 'motdepasse' ;
FLUSH PRIVILEGES;
exit;

Ensuite importer la bdd :

mysql -u root -p -D cloud < cloud.sql

Et si l'import fonctionne, on ne peux pas dire que ce soit un succès puisqu'il enregistre ça sous le nom d'origine de la bdd, et recrée son user, sans pour autant les associer. Savez pas ?

PHPmyadmin !

Sécurité

Dans le vhost apache2), ajouter les lignes suivantes :

# Sécurité Nextcloud
Header set X-Robots-Tag "none"
Header set X-Download-Options "noopen"
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
1)
Netxcloud s'héberge “chez soi”, si vous connaissez quelqu'un qui a une instance, vous pouvez avoir un compte chez lui.
2)
Sur le proxy si on a ce genre de truc, ça suffit