client_max_body_size Cozy


#1

Bonjour,

J’ai plusieurs problèmes avec la synchronisation android de mon Cozy que j’ai installé récemment. En effet, l’importation d’images, la synchronisation des contacts et de l’agenda ne fonctionne pas avec l’application. Je soupçonne, après avoir fait des recherches, la variable “client_max_body_size” de nginx d’être le responsable des problèmes. Sur mon VPS, Cozy et nginx sont des images docker mais il me semble que l’image Cozy embarque aussi un reverse-proxy nginx. Où dois-je donc modifier cette variable ?

Par ailleurs, j’ai un soucis avec Kresus (installation de Weboob requise). Comment le résoudre ?

Merci d’avance :slight_smile:


#2

Hello @Judiquael,

Bienvenue à bord du nuage douillet :smile:.

Effectivement l’image Docker de Cozy embarque bien un serveur NGinx qui définit la variable client_max_body_size à 1Go dans les fichiers /etc/nginx/sites-available/cozy et /etc/nginx/sites-available/cozy-ssl.

Si tu connais un peu Docker, et que tu veux utiliser ton propre serveur NGinx, je te conseille de te refaire une image Cozy sans Nginx, en partant de ce dépôt. Nginx sert juste de proxy devant Cozy pour gérer le TLS (Cozy refusera les connexions en http). Il suffit donc que tu configures l’autre serveur NGinx pour rediriger toutes les connexions du port 80 vers le 443, et de 443 vers 9104, le point d’entrée de Cozy lui-même.

Et si tu te refais une image Docker, profites-en pour y installer Webob:

mkdir /tmp/webob
cd /tmp/webob
git clone https://git.weboob.org/weboob/devel
cd weboob
./setup.py install

Cette image Cozy pour Docker n’est pas officielle. Elle n’a pas été mise à jour depuis fort fort longtemps, et nous ne la supportons pas. D’important changements sont en cours au cœur de Cozy, nous changeons de technologie pour le serveur, passant de Node.js à go. Je t’invite à lire ces informations pour les auto-hébergés.


#4

J’ai essayé de rentrer les commandes directement dans mon docker cozy, mais j’ai toujours l’erreur :

File "./weboob/main.py", line 12, in <module>
    from weboob.core import Weboob
ImportError: No module named weboob.core

Même après avoir installé le packet :
apt-get install python-weboob-core

Je me suis finalement résolu à installer Kresus dans un autre docker, ce qui marche très bien. Par contre, j’ai toujours le problème avec nginx : je ne peux pas uploader de fichiers de plus de 1Mb sur cozy.


#5

Est-ce que tu as modifié les deux fichiers de configuration de NGinx dans l’image Docker où apparaît cette configuration ?


#6

Mon docker-compose (https://orsilochos.richardantoine.fr/public/hastebin/GdcPfwWe.yml) est composé d’un reverse nginx qui configure automatiquement mes vhosts avec mes sous-domaines. Cependant, je suis allé voir dans le docker en question et le service nginx n’est pas démarré…


#7

Est-ce que tu as essayé de mettre client_max_body_size pour le vhost de Cozy dans ton NGinx réellement utilisé ?

Pour vérifier que le problème est bien en amont de Cozy, et non dans l’application Files, tu peux essayer d’ouvrir une console dans le Docker de ton Cozy, de créer un fichier de plus d’un Giga et de le publier dans files au moyen de la commande

curl -X POST -F name=tongrosfichier -F overwrite=true -F path= -F "file=@tongrosfichier" 'localhost:9121/files'

#8

Désolé pour mon long silence, je suis très occupé en ce moment. Je ne peux pas exécuter ta commande, j’ai l’erreur :

curl: (7) Failed to connect to localhost port 9121: Connection refused


#9

Hello @Judiquael,

Pas de souci, nous ne sommes pas aux pièces :wink:

Si le serveur ne répond pas sur le port 9121, c’est soit que l’application Files n’est pas démarrée (tu peux la démarrer avec cozy-monitor start files , soit, si elle est démarrée, qu’elle écoute sur un autre port (tu peux voir le port sur lequel elle écoute via cozy-monitor routes | grep -i files).

Le fait d’être dans Docker implique peut-être des configurations réseau différentes. Peut-être peux-tu essayer de remplacer localhost par 127.0.0.1.