[TUTO] Cozy + Raspberry PI 2 + Application android


#1

Amis du soir, bonsoir,

Je suis un tout récent utilisateur de Cozy et lors de l’installation de mon cloud maison, j’ai rencontré quelques problèmes. Je vais donc partager toutes les étapes dont j’ai eu besoin pour mon installation, en espérant que ça vous serve. Toutes les étapes ne vous seront peut-être pas nécessaires. A vous de voir. Ready ? Let’s go !!! :wink:

Premièrement, je suis donc l’heureux possesseur d’un Raspberry PI 2. J’ai également acheté un disque dur externe de 3To où j’ai l’intention de stocker mes données. Ce disque possède sa propre alimentation afin de ne pas mettre le Rasp sur les genoux.

Préparation du Rasp

Je suis parti d’un Rasp avec une installation toute fraiche. Si ce n’est pas le cas pour vous, vous allez pouvoir sauter cette section.

  • Activez le compte root : par défaut, sur un Rasp, le compte root n’est pas activé. Pour l’activer, il suffit de lui définir un mot de passe. Tapez la commande sudo passwd root et entrez votre mot de passe. Tapez ensuite su avec le mot de passe précédemment défini pour passer en root. Par la suite, je vous conseille d’être tout le temps en root pour entrer vos commandes.
  • Changez le mot de passe du compte pi. Tapez passwd pi et entrez votre nouveau mot de passe pour ce compte.
  • Mettre à jour votre Rasp : ce n’est pas une obligation mais je vous le conseille fortement. Tapez la commande apt-get update, puis apt-get upgrade. Vous avez le temps de prendre pas mal de cafés :smile:

Montez votre disque dur externe

Nous allons monter le disque dur externe de façon simple et définitive. Dans mon exemple, mon disque est /dev/sda1.

  • Editez le fichier /etc/fstab (via nano par exemple)
  • Ajoutez une nouvelle ligne à la fin de ce fichier : /dev/sda1 /mnt/storage/ ntfs uid=pi,gid=pi,umask=0000,sync,auto,nosuid,rw,nouser 0 0. Je définis donc que mon disque sera accessible via le répertoire /mnt/storage/, qui est formaté en ntfs (je veux pouvoir y avoir accès si je le branche sur un Windows mais vous pouvez changer ça). Dans mon cas, Je ne me prends pas trop la tête pour les droits concernant ce disque. En effet, je dis que ce répertoire appartient à l’utilisateur et au groupe pi et je ne définis pas de droits particuliers donc par défaut, tout le monde peut faire ce qu’il veut avec ce répertoire.
  • Tapez reboot pour redémarrer le Rasp.

Installer cozy

C’est le moment où vous allez reprendre des cafés :wink:. Enchainez les cinq commandes suivantes :

  • apt-get install ca-certificates apt-transport-https
  • wget -O - https://ubuntu.cozycloud.cc/cozy.gpg.key 2>/dev/null | apt-key add -
  • echo 'deb [arch=armhf] https://debian.cozycloud.cc/debian jessie main' > /etc/apt/sources.list.d/cozy.list
  • apt-get update
  • apt-get install cozy

Suivez les différentes étapes d’installation pour déployer Cozy.
Dans mon cas, l’application mail était cassée à cause d’une version de npm est trop ancienne. Il faut donc récupérer la version 2. Tapez la commande npm install -g npm@latest-2 et réinstallez l’application mail.

Augmenter l’espace disque

Il est maintenant temps d’utiliser votre disque. Mes données Cozy seront stockées dans le répertoire /mnt/storage/cozy

  • Editez le fichier /etc/couchdb/local.ini
  • Ajoutez une section couchdb si elle n’es pas déjà présente. Vous pouvez alors modifier le paramètre spécifiant le dossier où est stockée la base de données :
    [couchdb]
    database_dir = /mnt/storage/cozy
    view_index_dir = /mnt/storage/cozy
  • Tapez ensuite les commandes suivantes :
    • service couchdb stop
    • mkdir /mnt/storage/cozy
    • cp /var/lib/couchdb/* /mnt/storage/cozy
    • service couchdb start

Générer le certificat auto-signé

Dans mon cas, je n’ai pas de nom de domaine. Il faut donc que je génère un certificat avec mon adresse IP et non le nom de domaine renseigné pendant l’installation.

  • Vous pouvez éditer le fichier /etc/ssl/openssl.cnf mais je vous conseille de le dupliquer dans le répertoire de votre choix et de le modifier. Dans mon cas, je l’ai copié dans le répertoire /home/pi et je l’ai renommé en openssl-cozy.cnf
  • Editez ce fichier
  • Activez les extensions en décommentant la ligne : req_extensions = v3_req
  • Ajoutez les lignes suivantes dans la section [ v3_req ] :
    subjectAltName=IP:VOTRE_ADRESSE_IP
    basicConstraints = CA:TRUE (pour l’application android pour la suite)
  • Générez le certificat : openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/cozy/server.key -out /etc/cozy/server.crt -days 3650 -config /home/pi/openssl-cozy.cnf -subj "/CN=MON_NOM_DE_DOMAINE" -extensions v3_req
  • Redémarrez nginx : service nginx restart

Si vous préférez utiliser Let’s Encript, voici un lien vers l’article à lire !

Augmenter la taille maximale des fichiers uploadés

  • Pour désactiver la vérification de la taille des fichiers uploadés, éditez les fichiers /etc/nginx/nginx.conf et /etc/nginx/conf.d/cozy.conf et ajoutez la ligne client_max_body_size 0; (dans la section http pour le premier fichier et dans la section server dans le deuxième fichier).
  • Redémarrez nginx : service nginx restart

Configurer l’application android

Pour pouvoir utiliser l’application, il vous faut d’abord récupérer le certificat.

  • Téléchargez l’application CAdroid sur le Play Store
  • Lancez l’application, entrez l’adresse de votre instance Cozy et suivez les différentes étapes afin de récupérer et d’installer le certificat.
  • Lancez l’application Cozy et entrez à nouveau l’adresse de votre instance Cozy. Suivez les différentes étapes de paramétrages, en fonction de vos besoins.

C’est terminé !!!

Ça y est, votre Cozy est prêt à être utilisé. J’espère que vous serez satisfait. Vous pourrez toujours faire quelques réglages en fonction de vos besoins.
Si vous avez des commentaires ou des remarques sur ce tuto, n’hésitez pas :wink:


Plusieurs difficultés pour installer Cozy sur un Raspberry Pi 2
#2

Génial, merci beaucoup @chou-bacca pour ce super tutoriel ! :heart_eyes:


#3

Bonjour

J’ai fait exactement ce que tu mentionnes dans le tuto pourtant je me retrouve avec une page “502 Bad Gateway”.

J’ai alors fait la commande suivante : cozy-monitor status

Voici le résultat :

En regardant dans le logs je trouve ça :

Et pourtant le service à bien l’air en marche.

Une idée ?


#4

Salut @Flow791,

J’ai eu exactement le même problème à un moment. Cela est lié à un problème de droits sur ton disque dur externe. Regarde bien la partie “Montez votre disque dur externe” et peux-tu me confirmer que la ligne que tu as entrée est bien conforme à celle que je donne (pas de présence d’un umask) ?
Il serait aussi intéressant de taper la commande ls -l /mnt/storage/ et vérifier les droits sur le répertoire cozy.


#5

Il serait aussi interessant de rajouter un lien vers le tuto Let’s encrypt pour les cerificats, comme ça pas de problème de “connexion pas sécurisée”. Je l’ai fait sur RPI, et ça tourne nickel. Bravo pour le tuto.


#6

Oui la ligne exactement la meme a l’exception du ntfs qui est remplacé par vfat.

Voici le résultat d’un ls -l :


#7

@Flow791,
le seul utilisateur à avoir le droit d’écrire dans le dossier “Cozy” est l’utilisateur pi, et non l’utilisateur faisant tourner couchdb. Il faut changer les droits de ce dossier avec chown (l’utilisateur et le groupe associé doivent être dans le fichier /etc/couchdb/local.ini).


#8

@Flow791
Pour ma part, le fait de ne pas avoir précisé de mask donne des droits de type 777. Il faut donc que tu précises un umask. Essaye quelque chose du style /dev/sda1 /mnt/storage/ vfat uid=pi,gid=pi,umask=0000,sync,auto,nosuid,rw,nouser 0 0 (pas sûr à 100% du résultat, je fais ça de tête).

@ZeHiro, je vais rajouter ça :wink:


#9

@chou-bacca Parfait ça a marché. Merci beaucoup pour ton aide et merci pour le tuto :slight_smile:

@ZeHiro Je n’ai pas très bien compris où trouver l’utilisateur et le groupe car pas trouvé dans le fichier /etc/couchdb/local.ini
Je n’ai pas très bien compris aussi qui est l’utilisateur qui fait tourner couchdb je pensais que c’était pi
Merci de ton aide aussi.


#10

Si ça marche, on ne touche plus :stuck_out_tongue:


#11

@Flow791, quand tu installes cozy, un utilisateur (ainsi qu’un groupe du même nom) couchdb est créé. Et il a besoin d’accéder à ce répertoire. Les droits qui étaient générés donnaient tous les droits à l’utilisateur pi mais pas aux autres (juste les droits de lecture et d’exécution). Là, tu as donné tous les droits à tout le monde :smile:
Je vais modifier le tuto pour que l’umask soit précisé à chaque fois


#12

On pourrait peut être rajouter tout ça dans notre doc officielle. @Clochix qu’en penses-tu ?


#13

Bonjour,

Tout d’abord merci pour ce tuto qui m’a bien aidé ! Je suis totalement novice dans ce genre de système… Je m’essaye à créer un cozycloud en local sur un raspberry pi 2. Tout a bien fonctionné jusqu’à ce que je veuille uploader des fichiers supérieurs à 1 go. J’ai fait la manip pour modifier les deux fichiers de configuration, j’ai redémarré de multiple fois, j’ai aussi essayé un autre fichier au cas où, rien n’y fait. Il marque un message d’erreur à l’issue du transfert et le fichier disparait de la liste. Mais autre point étrange, la consommation d’espace disque augmente bien…
Que puis-je faire ?
Merci d’avance !


#14

Bonjour @UbiK,

Bienvenue sur ce forum, merci de tester Cozy :smile:

Je pense que ton souci est lié à la configuration par défaut de Nginx. Celle-ci limite par défaut la taille des téléversements à 1 Go. Pour modifier cette valeur, il faut que tu édites le fichier /etc/nginx/nginx.conf pour ajouter une variable client_max_body_size (ou modifier sa valeur si elle existe déjà).
Relance ensuite Nginx (service nginx restart) et tout devrait mieux se passer :wink:


#15

Ben c’est pourtant ce que j’ai fait, comme indiqué dans le tuto… Mais ça ne fonctionne pas :frowning: J’ai bien vérifié que la modif des fichiers à bien été enregistrée, j’ai redémarré nginx avec la commande que tu donnes et qui est donnée dans le tuto, j’ai même fait un redémarrage de la plateforme et un reboot du pi mais ça n’a rien changé…


#16

Je pense que c’est lié au fonctionnement de CouchDB. Dans Cozy, tous les fichiers de l’application Files sont stockés dans la base CouchDB et celle-ci est optimisée pour la rapidité des accès, pas pour minimiser l’espace disque occupé. Toute mise à jour d’un document dans la base augmente sa taille, et il faut régulièrement faire un peu de maintenance pour réduire la place qu’elle occupe sur le disque. Les différentes commandes sont détaillées dans la documentation et une interface graphique devrait bientôt être disponible dans l’application self-hosting qui devrait être installée par défaut sur ton serveur.


#17

Pardon, je n’avais pas compris que tu parlais de ces fichiers.

Est-ce que tu pourrais regarder dans les fichiers de logs de Nginx pour essayer d’y trouver des messages d’erreur correspondant à ces téléversements qui échouent.

Est-ce que tu n’aurais rien au niveau de ta configuration réseau qui pourrait expliquer ce problème ?


#18

Pas de souci :slight_smile: Par contre comment on affiche les logs de nginx ? (oui je débute…) Après j’ai réussi sur des fichiers inférieurs en taille, un de 6 mo et l’autre 350 mo, donc je me dis que le réseau doit fonctionner (raspberry connecté à la box en ethernet et transfert de fichier par le navigateur sur l’adresse locale 192…), à moins qu’une limite de taille se cache ailleurs ?


#19

Hello,

Désolé de revenir vers soi si tard :confused:

Les logs de nginx devraient se trouver dans /var/log/nginx.


#20

Bonjour, nan pas de souci :slight_smile: J’ai été absent un moment aussi.
Donc, j’ai pu ouvrir les logs, il y a un paquet de lignes… Mais en les parcourant en diagonale effectivement à un moment il met une sorte d’erreur sur la taille limite du fichier transféré. Pourtant j’ai bien modifié les fichiers de configuration donc je ne comprends pas. Si jamais tu as une idée, sinon je vais continuer ma quête :slight_smile:
Merci quoiqu’il en soit !