Donner de la place à NextCloud sur Raspberry Pi

Bonjour à tous,
J’ai installé Yunohost sur mon Raspberry Pi 3, tout fonctionne parfaitement. J’aimerais maintenant installer Nextcloud sur un disque dur externe de 2To branché à mon Raspberry, pour avoir suffisamment de place car la carte SD est trop limite pour moi .

Pour ce faire j’ai donc monté mon disque dur dans /var/www/storage grâce à ce petit tuto pour ceux que ça intéresse.

Depuis l’interface d’administration de YunoHost, j’installe Nextcloud et je saisis bien le chemin vers le répertoire /storage/nextcloud dans le champ: Choisissez un chemin pour Nextcloud lors de l’installation.

Bizarrement lorsque je me connecte en SSH au Pi, je constate que le répertoire “Nextcloud” est installé dans /var/www /nextcloud et non pas dans /var/www/storage/nextcloud comme je le souhaiterai.

Je ne comprends pas pourquoi cela ne fonctionne pas.
Est-ce quelqu’un aurait une idée, ou une autre solution :slight_smile: ?

Salut,

je crois que ta démarche du début est la bonne, mais tu cherches trop compliqué ou alors il y a eu confusion vers la fin :wink:

Le chemin que donne à nextcloud pendant l’installation de l’app est le chemin “web” via lequel il sera accessible (par exemple si tu donnes /toto, alors nextcloud sera accessible via https://ton.domaine.tld/toto).

Pour ce qui est d’avoir de l’espace “dans nextcloud”, tout est une question de monter également le disque dur “dans” Nextcloud .

Tu as déjà monté (au sens de Linux/Unix) ton disque dur sur /var/www/storage. Il suffit maintenant d’aller dans l’interface d’admin de nextcloud, et de rajouter un espace de stockage Local qui correspond à /var/www/storage. Normalement tu peux lui donner un nom (genre MonSuperDisqueDur). Cela rajoutera dans ta liste de dossiers un truc appelé MonSuperDisqueDur, et tout ce que tu met dedans sera sur ton disque dur !

2 Likes

Coool ! Merci @CaptainSqrt2 pour ton aide.

Effectivement je faisais fausse piste :slight_smile:
Pour ceux qui auraient le même problème que moi, voici comment procéder…

  1. cliquez sur le menu “Administration” et cliquez sur “+” pour ajouter une application.
  2. ajoutez l’application “External storage support” dans le sous-menu “Désactivées”
  3. vous pouvez maintenant paramétrer votre emplacement dans un nouveau sous-menu qui apparaît dans votre interface d’administration.

Une image c’est mieux qu’un grand discours:

1 Like

Deux choses pour améliorer ton installation :

  1. évites de monter tes médias (disque etc) dans /var/www afin d’éviter une faille de sécurité potentielle. Privilégies /media/tonDisque ou /mnt/tonDisque

  2. si tu veux changer l’emplacement du stockage par défaut de Nextclout, évite de passer par le “montage externe”. En effet nextcloud ne respecte pas les quotas d’espaces attribués aux utilisateurs dans les “montages externes” et les permissions sont plus dur à gérer. Dans ton dossier nextcloud tu peux trouver un dossier config et dedans config.php. Édite le en tant d’administrateur (root) et modifie ’datadirectory’ => ‘/media/raidHDD/dataNextcloud/’, pour correspondre à se que tu souhaites. N’oublie pas que le dossier que tu indiques doit être accessible en lecture+écriture par l’utilisateur qui éxécute ton serveur (www-data par défaut). (Si tu veux déplacer du dossier d’origine, si je ne m’abuse il faut copier le contenu du dossier /var/www/html/netxcloud/data/ vers le nouveau dossier )

Au plaisir de t’aider :wink:

PS: ça donne quoi sur RPI 3? (sur le 1 ça lag, sur le deux ça va co mais pas top top)

1 Like

Hello
Pour info sur ma Brique (avec port SATA) j’ai monté le /home et le /var sur des partitions du disque dur directement au niveau de l’OS, comme ça tout est sur le disque dur. L’alternative plus simple serait peut-être de faire des liens symboliques, ça m’éviterait de cloisonner les espaces via des partitions.

Bonne journée les gens !

Merci beaucoup pour tes explications, je vais mettre ça au propre comme tu l’indiques ^^
Alors je suis assez content des performances du Rpi3 :slight_smile:
J’avais anciennement un Pi2 et je sens nettement la différence :slight_smile:

Hello,

J’ai utiliser cette méthode external stockage pour accéder à une partition spécifique, le problème c’est que à part lire ce qu’il y a sur la partition je ne peux rien faire d’autre. Une idée des droits que je dois mettre sur la partition pour pouvoir y accéder pleinement via nextcloud ?

Sachant que le propriétaire de la partition à l’origine est un autre utilisateur qui n’a rien à voir avec ldap. Donc j’ai pensé à ajouter nextcloud ou moi même dessus mais le problème c’est que je ne connais pas la fonction Unix pour pouvoir le faire et sur Internet je ne trouve pas de bonne réponse.

Merci

Suite au commentaire de @voxdemonix voici comment j’ai procédé pour déplacer le répertoire par défaut de nextcloud sur un disque dur branché sur mon raspberry pi:

J’ai stopé nginx d’abord (si vous utilisez appache, stoppez apache):

  • sudo service nginx stop

Je me suis rendu dans le répertoire d’installation de nextcloud, dans le fichier config.php

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

J’ai commenté l’ancien chemin vers le dossier data avec un dièse (#) et copié la ligne du nouveau chemin vers mon disque dur externe, comme ceci:

  • # ‘datadirectory’ => /var/www/nextcloud/data’,
  • ‘datadirectory’ => /media/nextcloud_data’,

On sauvegarde les modifications su rle fichier config.php:

  • ctr+x
  • y (pour sauvegarder)

On déplace ensuite le dossier data existant, vers le nouvel emplacement sur le disque:

  • sudo mv /var/www/nextcloud/data /media/nextcloud_data

On redémarre le service nginx

  • sudo service nginx start

Lorsque je me connecte a mon nextcloud, on me dit qu’il manque un fichier .ocdata a la racine de mon dossier, je vais donc le créer:
Je me place dans mon nouveau répertoire data:

  • cd /media/nextcloud_data
    Je change d’utilisateur pour devenir l’utilisateur nextcloud:
  • su nextcloud
    Je crée le fichier manquant (.ocdata) (j’ai mis un espace vide pour pouvoir sauvegarder le fichier):
  • sudo nano .ocdata
    je sauvegarde:
  • ctr+x
  • y (pour sauvegarder)

Voilà, je peux désormais utiliser nextcloud avec 2To d’espace de stockage sur mon disque dur externe.
Je ne suis de loin pas un expert, en informatique, j’ai suivi les tutos ci-dessous et je m’appuie sur l’aide que j’ai reçu sur ce forum entre-autres :slight_smile:
Cela fonctionne pour moi, si vous avez des précisions ou améliorations a apporter a ce petit tuto, n’hésitez pas a le faire.
J’espère que cela pourra vous aider.

Je me suis aidé des tutos suivants:
[Tuto/HowTo] Raspberry Pi monter automatique disque dur externe
https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=287&sid=d2717129465f3c4e878eb76a81eafc7b

How to Move ownCloud data to new location on Ubuntu Server

1 Like

Je ne voudrais pas t’induire en erreur mais normalement pour changer l’utilisateur et le groupe tu utilises la commande:
chown
Documentation: https://doc.ubuntu-fr.org/permissions

Exemple:
sudo chown utilisateur:groupe /chemin/chemin/dossier

Oui mais chown modifi le propriétaire hors je souhaiterais ajouter un utilisateur supplémentaire en plus de l’existant

Tu voudrais ajouter un utilisateur existant à un groupe existant, c’est bien ça ?
Je ne suis pas très doué, car jamais eu besoin de faire ca ^^
mais je crois que c’est un truc comme ca:

Pour ajouter un “utilisateur” au groupe “www-data” par exemple:
useradd -g www-data utilisateur

Peut-être que ses liens peuvent t’aider:


Non non lol.
Pour être plus clair.
Actuellement c’est l’utilisateur download qui fait parti du groupe download qui est propriétaire, et je souhaiterais donner en plus de download les droits d’écriture/lecture à l’utilisateur nextcloud appartenant au groupe nextcloud.

En passant…

Affaire pour le moins complexe si tu connais un peu les droits unix. Si tu veux que 2 utilisateurs aient un droit d’écriture c’est très compliqué, car si même si tu ajoutes nextcloud au groupe download, il y a de forte chance que ton umask par défaut ne donne pas de droits d’écriture au groupe.

Une solution pour contourner ce problème est d’utiliser les droits avancés, les acl
https://linux.die.net/man/1/setfacl

Je dirais quelque chose comme ça (à vérifier)

sudo setfacl -RnL -m u:nextcloud:rwX,g::rwX,o:r-X "DOSSIER"
sudo setfacl -RnL -m d:u:nextcloud:rwX,g::rwX,o:r-X "DOSSIER"
sudo setfacl -RL -m m::rwx "DOSSIER"
1 Like

J’ai eu à peu près le même problème : un dossier contenant des fichiers téléchargés depuis un programme et devant être accessible pour certains utilisateurs de Nextcloud. J’ai eu rapidement deux problèmes :

  1. le problème des doits unix
  2. le fait que nextcloud ne fait pas automatiquement la mise à jours des fichiers présent dans le système de fichier (sauf si on lui a spécifié mais bonjour les perf)

Pour régler le soucis j’ai fait un script que j’appel régulièrement par cron (grand max une fois toutes les 6 heures car, sur mon installation, ils prend plus d’une heure pour s’éxécuter).

@ZatchBell68 à ta place je placerais l’utilisateur nextcloud dans le groupe download, ou l’utilisateur download dans le groupe qui gère ton dossier nextcloud (www-data sur un serveur faisant tourner apache2, je suppose que sur yunohostn c’est nextcloud).
Ensuite je ré-utiliserais le script pour forcer les droits sur les dossiers et sous dossiers, puis mettre à jours la base de données des fichiers de Nextcloud.

Voici mon script (je n’arrive pas à le poster ici) : https://www.0rion.netlib.re/forum4/viewtopic.php?f=63&t=349&p=1232#p1232 (en bas de page)
Il force les droits sur les dossiers puis fait l’update des fichiers de nextcloud.

@beer2beer as-tu testé le montage WebDAV/DAVFS2 sur RPI3? :slight_smile: C’est surtout lui qui lag à l’abus sur Raspberry Pi 1 et 2. (WebDav/DAVFS2 c’est un truc qui te permet de monter tes dossiers Nextcloud sur ton ordinateur local, un peu comme SSHFS, voici mon tuto sur le sujet)

Attention : je n’utilises pas yunohost, j’ai installé mon propre Nextcloud, il faut donc adapter mes informations à votre contexte qui diffère du miens :wink:

PS pour @beer2beer : quand tes 2To te sembleront petit, check du côté des JBOD/Raid0 pour créer une superPartition qui “enjambe” plusieurs disques :wink: (j’en ai testé quelques un, poke moi sur les réseaux sociaux si tu as besoin d’aide :wink: )

1 Like

@Maniack_Crudelis et @voxdemonix merci à vous deux pour vos réponses. Je vais essayer les différentes possibilités et voir la meilleur, je vous tiens au ju.

Merci

Salut @voxdemonix ,
Non je n’ai jamais testé le montage WebDAV/DAVFS2 (je ne connaissais pas) mais je vais peut-être m’amuser avec vu que ta documentation a l’air top ^^
Merci pour le lien, je te redonne des nouvelles dès que j’ai essayé ^
<

C’est à cet endroit que je cale. Quand je lance la commande, il me demande le mot de passe de l’utilisateur nextcloud. Je ne me souviens pas avoir défini un tel mot de passe et je n’ai aucune idée de ce qu’il peut être, vu que ce n’est même pas celui que j’utilise pour me connecter à nextcloud. Y a-t-il un moyen de le connaître ?

Tu devrait aussi pouvoir créer ce fichier en tant que root/admin normalement. Il faut juste que le fichier ait les bonnes permissions à la fin (par exemple tu peux faire un chown nextcloud:nextcloud lenomdufichier pour donner les permissions à nextcloud sur le fichier)

Voilà, c’est fait.

Maintenant, quand j’essaye d’y accéder via le web, j’ai «erreur interne du serveur» et mes outils de synchronisation me disent «server replied: forbidden» et «opération annulée».

J’ai réessayé en suivant ccrupuleusement la marche à suivre, avec le même résultat, à ceci près que cette fois, mon outil de synchro me dit «internal server error».

Est-ce que tu peux regarder ce qu’il se passe avec un tail -n 50 -f /var/log/nginx/*.log (cette commande continuera à tourner et afficher les nouvelles lignes dans le log jusqu’à ce que tu la quittes avec Ctrl+C) et que tu accèdes à la page qui fait provoque une erreur en parralèle ?