PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Max Koder : Yunohost : Nextcloud sur un disque dur externe

mercredi 19 juillet 2017 à 00:06
nextcloud sur un disque dur externe

Comme vous le savez, j’ai récemment acheté un Raspberry. Plus que y héberger mon blog, j’aimerai par la même sensibiliser ma famille au danger que représente les GAFAM.
C’est un combat assez difficile, puisque tous ont une utilisation d’internet très différente. Ma femme utilise un dropbox et ne se déconnecte jamais de Facebook, mon père vit du commerce en ligne et connaît donc bien ce que je connais peu, le business internet, le référencement etc, et ma mère n’en est pas très coutumière. Elle a même réussit à me souhaiter mon anniversaire sur Facebook (que je n’utilise pas), à quelqu’un qui n’a même pas le même nom que moi. Véridique.
Mes frères et sœurs sont également de la partie, avec une vie sociale virtuelle allant du no-life sur Wow au Twitter addict.
Pour ma part, je suis le petit extraterrestre qui bidouille sur PC et fait du code bizarre alors que ça ne me rapporte pas un sou.
Bref, chacun utilise internet comme il en a besoin/envie.
J’ai donc monté un nextcloud (sur Yunohost) sur mon Raspberry pour inciter tout ce petit monde à se libérer des méchants commerciaux (utopie inside).
N’ayant que 28Go de disponible sur la mini SD, voyons comment monter nextcloud sur un disque dur externe avec Yunohost. Les manipulations ont été faites sur un Raspberry mais sont également valables pour un PC ou autre serveur Yunohost.

Monter un disque dur externe

Prenons l’exemple scolaire où rien n’est monté sur le serveur.
Récupérez un disque dur externe qui traîne et branchez-le sur le serveur.
Pour ma part, j’ai pris un DD 2.5 SATA de 750Go qui faisait autrefois office de disque interne pour mon PC actuel (remplacé par un SSD), que j’ai mis dans un boîtier.

Une fois le disque branché en USB, nous allons pouvoir récupérer son UUID.

Récupérer l’UUID d’un disque

L’UUID d’un disque est un identifiant censé être unique, ce qui va nous permettre de le reconnaître quand il sera branché.
Pour le récupérer, il faut, une fois connecté en root sur le serveur, lancer la commande

blkid
:
root@YunoHost:~# blkid
/dev/mmcblk0: PTUUID="34edcb80" PTTYPE="dos"
/dev/mmcblk0p1: LABEL="boot" UUID="0F5F-3CD8" TYPE="vfat" PARTUUID="34edcb80-01"
/dev/mmcblk0p2: UUID="0aed834e-8c8f-412d-a276-a265dc676112" TYPE="ext4" PARTUUID="34edcb80-02"
/dev/sda1: LABEL="Data" UUID="ab41f7a4-0622-4b79-8ca4-90ca81f3b7d0" TYPE="ext4" PARTUUID="f5d252a9-ed73-4d2e-9181-435365daea8e"

Les 3 premières lignes correspondent à :

La dernière ligne correspond au disque dur que je viens de brancher.
On peut voir que je lui ai donné le nom de ‘Data’ lors du formatage et que l’unique partition est de type ext4.

L’élément important est l’UUID. Copiez-le, nous en aurons besoin plus tard.

Montage automatique du disque

Ici, nous allons définir comment le disque devra être monté au démarrage de la machine.
Il est possible de le monter à la main, mais il est plus pratique qu’il se remonte tout seul en cas de coupure :/

Pour cela, nous allons éditer le fichier /etc/fstab :

nano /etc/fstab

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

UUID="ab41f7a4-0622-4b79-8ca4-90ca81f3b7d0" /media/data ext4 defaults,nofail 0 0

La partie haute est ce qu’il y avait par défaut.
J’ai passé une ligne et rajouté ceci :

UUID="ab41f7a4-0622-4b79-8ca4-90ca81f3b7d0" /media/data ext4 defaults,nofail 0 0

3 points à vérifier :

Pour en savoir plus sur le fichier fstab, la doc sur Debian est très bien faite.

Important : pour votre tranquillité, n’essayez pas d’utiliser une partition ntfs pour vos applications Yunohost. Ce type de fichiers ne gère pas bien les permissions et encore moins les propriétaires, indispensables pour votre serveur Yunohost.

Pour enregistrer, faites Ctrl+O, Enter, puis Ctrl+X pour quitter nano et revenir au Shell.

Pour vérifier que le disque se monte bien au démarrage du serveur, redémarrez-le avec la commande

reboot
, puis essayer de lister les dossiers et fichiers présents dans /media :
root@YunoHost:~# cd /media
root@YunoHost:/media# ls
data

Le dossier ‘data’ apparaît, le disque est bien monté.

Droits sur le disque

Je parlais de droits tout à l’heure. Actuellement, seul l’utilisateur root a le droit de lire, écrire et exécuter sur votre disque dur.
C’est ennuyeux pour une simple raison : À l’installation d’une application, Yunohost créé un nouvel utilisateur avec les droits sur les fichiers et dossiers qu’il a à manipuler.
Mais si vous modifiez les chemins où sont stockés ces fichiers, cet utilisateur n’aura pas les droits pour y accéder.
Pour l’application Nextcloud, l’utilisateur en question est simplement nextcloud.

Pour cela, tapez cette commande dans le Shell :

chmod 775 -R /media/data/

Ce qui permet de modifier les droits du dossier /media/data et tout ce qu’il contient, avec tous les droits pour le propriétaire et son groupe, et le droit de lecture et d’exécution pour les autres. Pour plus de précisions sur les droits, voir la doc Ubuntu (valide Debian).

Data de Nextcloud

Intéressons-nous maintenant aux dossiers et fichiers des utilisateurs de Nextcloud.
Ceux-ci sont stockés dans le dossier /home/yunohost.app/nextcloud/data.
Pour gagner de la place, nous allons les déplacer sur le disque dur externe que nous avons montés.

Arrêt du serveur web

Avant tout, pour être sûr qu’aucun utilisateur n’envoie ou télécharge un fichier, nous allons arrêter le serveur web (Nginx).
Pour cela, tapez la commande :

service nginx stop

Cela évitera toute corruption de fichiers.

Déplacement des fichiers

Nous pouvons à présent déplacer les fichiers utilisateurs de Nextcloud sur le disque :

mv /home/yunohost.app/nextcloud /media/data/nextcloud

Ici je prends le dossier /home/yunohost.app/nextcloud et son contenu et le déplace à la racine de notre disque, à l’emplacement /media/data/nextcloud.

Puis on peut vérifier que les fichiers ont bien été déplacés à l’endroit voulu :

root@YunoHost:/media# ls /media/data/nextcloud/data
appdata_ogdtup4cwhos  files_external  maxkoder
appdata_ogra24yicyhb  index.html      nextcloud.log

Tout est bon, on continue.

Configuration

Comme le script n’est pas encore magique, il va falloir indiquer à Nextcloud où sont à présent stockées ces données.
Éditez le fichier de configuration de Nextcloud :

nano /var/www/nextcloud/config/config.php

Remplacez la ligne :

'datadirectory' => '/home/yunohost.app/nextcloud/data',

par :

'datadirectory' => '/media/data/nextcloud/data',

Adaptez avec le chemin que vous avez mis bien sûr.

Puis vous pouvez redémarrer Nginx, nous allons tester tout ça :

service nginx start

En essayant d’accéder à Nextcloud, vous ne devriez pas avoir de soucis.

.ocdata

Personnellement, j’ai eu ce soucis au départ, car je n’avais pas modifié les droits sur le disque, chose que l’on a fait plus haut.
En essayant d’accéder à mon instance Nextcloud, j’ai eu ce beau message :

Pour avoir essayé, la création du fameux fichier .ocdata dans le dossier data ne changera rien du tout. Ce qu’il faut, c’est vérifier et accorder les droits nécessaires à l’application.

Droits

Pour chaque dossier parent de /media/data/nextcloud/data, vérifiez que les autres utilisateurs aient au moins le droit de lecture et d’exécution sur ces dossiers.
Pour tester simplement, authentifiez-vous avec le compte nextcloud et tentez d’accéder à ces dossiers :

su nextcloud
ls /media/data/nextcloud

Si le contenu du dossier est affiché, c’est bon. En revanche, si vous avez ce message :

Permission denied

C’est que les droits sur le dossier ne sont pas suffisants. Corrigez comme suit :

chmod 0775 /media/data/nextcloud

Propriétaire

Si cela ne fonctionne toujours pas, vérifiez que le dossier /media/data/nextcloud/data possède les bons propriétaires. Comme dit plus haut, l’utilisateur détenteur doit être nextcloud, de même que le groupe.

Pour vérifier, faites un :

ls /media/data/nextcloud -l

Vous devriez avoir les droits suivants :

drwxr-x--- 5 nextcloud nextcloud 4096 Jul 17 17:30 data

Si ce n’est pas le cas, il faut attribuer le dossier à nextcloud :

chown nextcloud:nextcloud /media/data/nextcloud/data

Après cela, tentez à nouveau d’accéder à Nextcloud, ça devrait fonctionner, avec les fichiers sur votre disque dur externe !

L’article Yunohost : Nextcloud sur un disque dur externe est apparu en premier sur Max-Koder.

Gravatar de Max Koder
Original post of Max Koder.Votez pour ce billet sur Planet Libre.

Articles similaires