====== 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 douteux((Netxcloud s'héberge "chez soi", si vous connaissez quelqu'un qui a une instance, vous pouvez avoir un compte chez lui.)).
Vous pouvez récupérer et échanger des fichiers (photos, textes, etc) de deux façons :
* soit en passant par le web,
* soit en installant un client chez vous et en synchronisant un de vos dossiers avec ce qu'il y a dans le "cloud".
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 :
{{ :pratique:informatique:cloud4.jpg | 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 :
* 1 : si vous avez un compte nextcloud (sur cette instance ou une autre), en cliquant sur ce lien, vous pourrez entrer votre nom d'utilisateur et le nom de l'instance ( ''moi@liev.re'' par exemple) et le dossier en question sera synchronisé depuis votre propre compte.
* 2 : vous permet de télécharger tout le dossier dont les fichiers ci-dessous sont listés, en général dans un zip.
* 3 : ce petit ''+'' discret permet d'ajouter des dossiers et fichiers directement via l'interface web, même si vous n'avez pas de compte. L'option n'est pas forcément accessible, cela dépend des droits que vous donne la personne ayant transmis le lien.
* 4 : en cliquant sur les trois petits points ''...'', vous allez ouvrir un menu propre au fichier sur la même ligne. Si vous avez les droits, vous pourrez donc :
* 5 : le renommer
* 6 : le déplacer, par exemple dans un autre dossier
* 7 : le télécharger, utile si un seul fichier dans la liste vous intéresse
* 7 : le détruire (assurez-vous que cela ne va pas poser de souci).
===== 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 :
* L'adresse du serveur (par exemple https://liev.re/cloud )
* Le nom d'utilisateur (par exemple ''moi'')
* Le mot de passe ; si votre administrateur vous l'envoie, changez-le en passant par l'interface web du cloud en vous connectant puis en cliquant en haut à droite sur l'icone d'engrenage > ''personnel'' et dans les options de la page, changez le mot de passe.
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 [[https://apps.nextcloud.com/apps/previewgenerator|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. Note que php-fpm est recommandé.
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
* Gestion du cache, des vidéos, etc.
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 ?
[[pratique:informatique:phpmyadmin|PHPmyadmin]] !
=== Sécurité ===
Dans le vhost apache((Sur le proxy si on a ce genre de truc, ça suffit)), 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"