• Archive
  • [Discussion] Nextcloud version docker

Une erreur de plus qui vient de s'afficher dans mes logs de nextcloud sans raison apparente:
Fatal	webdav	Exception: {"Message":"HTTP\/1.1 400 expected filesize 1638671 got 184320","Exception":"Sabre\\DAV\\Exception\\BadRequest","Code":0,"Trace":"#0 \/nextcloud\/apps\/dav\/lib\/Connector\/Sabre\/Directory.php(137): OCA\\DAV\\Connector\\Sabre\\File->put(Resource id #102)\n#1 \/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(1036): OCA\\DAV\\Connector\\Sabre\\Directory->createFile('2013-03-11 11.1...', Resource id #102)\n#2 \/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/CorePlugin.php(523): Sabre\\DAV\\Server->createFile('HYGIFORM 2016\/E...', Resource id #102, NULL)\n#3 [internal function]: Sabre\\DAV\\CorePlugin->httpPut(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\n#4 \/nextcloud\/3rdparty\/sabre\/event\/lib\/EventEmitterTrait.php(105): call_user_func_array(Array, Array)\n#5 \/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(459): Sabre\\Event\\EventEmitter->emit('method:PUT', Array)\n#6 \/nextcloud\/3rdparty\/sabre\/dav\/lib\/DAV\/Server.php(248): Sabre\\DAV\\Server->invokeMethod(Object(Sabre\\HTTP\\Request), Object(Sabre\\HTTP\\Response))\n#7 \/nextcloud\/apps\/dav\/appinfo\/v1\/webdav.php(60): Sabre\\DAV\\Server->exec()\n#8 \/nextcloud\/remote.php(165): require_once('\/nextcloud\/apps...')\n#9 {main}","File":"\/nextcloud\/apps\/dav\/lib\/Connector\/Sabre\/File.php","Line":150,"User":"TEST"}
Edit:

Dans mes questions précédentes (dont j'attend encore les réponses ), j'utilise un seul Docker-compose, une mauvaise pratique puisque je lance deux applications (nextcloud et test) qui sont bien distinctes.
Mais il me vient une question: Comment lancer deux aplications de type compose en une seule ligne.
Genre est-il possible de créer un fichier qui lance les deux applications via leur docker-compose.xml respectifs ?
Cela serait pratique en cas de reboot pour que les deux apps se lancent.
Par la même occasion, cela m'oblige t-il à avoir deux containers nginx différents (un pour chaque apps) ?
Ok bon un autre problème, on change comment les paramètres apache de ce truc ?
J'ai besoin d'activer le keepalive histoire de permettre la sync de ceux qui ont de gros fichiers et une connexion en mousse.
J'ai essayé "docker attach nextcloud", mais ça fait que freezer le container...
14 jours plus tard
Salut DarkJohn, j'ai regardé ton docker-compose et je ne vois pas ce qui peut clocher pour les 2 nextcloud différents. Concernant apache, je ne peux pas trop t'aider, je n'utilise que nginx.
Bonjour tout le monde !

je rencontre des petits problèmes avec Nextcloud voici ma configuration :

Serveur dedie avec debian 8
Serveur Web : nginx & php 7 avec mysql et mariadb

Sur mon serveur je possède rutorrent et seedbox-manager.

Pour installer nextcloud j'ai suivi le tuto pour owncloud tout ce passe bien jusqu'à la première connexion une fois l'utilisateur crée et la base de données j'ai une page blanche qui apparait avec erreur! qui s'affiche.

j'ai bien donné les permissions au répertoire /var/www/nextcloud

merci d'avance pour votre aide
22 jours plus tard
Bonjour,

J'aimerais savoir s'il est possible et envisageable d'installer Collaboraonline ou une autre solution pour lire/ouvrir directement depuis nextcloud les fichiers type excel/word/powerpoint ? Je précise que je n'ai pas docker, donc le tuto indiqué ci-dessous n'est peut être pas utilisable ? A vous de me dire

https://nextcloud.com/collaboraonline/

Merci d'avance
    22 jours plus tard

    NOnoS

    Bonjour,

    regarde sur le site officielle de nextcloud, cette discussion qui parle effectivement d'utiliser collabora sans docker...

    Pour faire la manip, il faut quand même utiliser docker pour extraire l'application et les fichiers de conf.

    https://help.nextcloud.com/t/tutorial-collabora-without-using-docker/2546

    A voir si cela peut t'aider... Mais l'utilisation de docker pour cette application est vraiment simple surtout pour les mises à jours..

    a+

    Okey merci pour ton retour. Je n'avais pas trouvé ce topic. Si c'est trop compliqué, je peux toujours installer docker et faire cohabiter avec Nextcloud/Seafile.
    Seulement, je ne sais pas bien comment ça marche quand Collabora est en docker et pas le logiciel qui l'utilise..

      NOnoS

      je ne comprends pas ta question....

      si tu te veux savoir comment fonctionne nextcloud en "fixe" hors docker vers collabora docker, je pourrais t'aider car c'est ma configuration actuellement sur mon dédie perso...

        palouf34

        Oui je suis dans le même cas que toi. Et je ne sais pas comment faire la liaison.

          NOnoS

          le lien se fait lors du lancement du docker et dans la conf nginx....
          je suis pas chez moi actuellement... je vois cela se soir pour te transmettre ma conf...

          NOnoS

          Bonjour,

          Voici ma configuration pour faire fonctionné Nextcloud avec collabora.

          j’espére que cela t'aidera.

          pour le docker collabora

          docker run --name=collabora -t -d --restart=always -p 9980:9980 -e "domain=tld.domain.fr" --cap-add MKNOD collabora/code

          Fichier conf.d/proxy.conf

           proxy_redirect          off;
           proxy_set_header        Host            $host;
           proxy_set_header        X-Real-IP       $remote_addr;
           proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
           client_max_body_size    10m;
           client_body_buffer_size 128k;
           client_header_buffer_size 64k;
           proxy_connect_timeout   90;
           proxy_send_timeout      90;
           proxy_read_timeout      90;
           proxy_buffer_size   128k;
           proxy_buffers       32   256k; `

          Fichier rutorrent.conf section nextcloud

          ## début config nextcloud ##
                  location ^~ /nextcloud {
                      root /var/www;
                      include /etc/nginx/conf.d/php.conf;
                      include /etc/nginx/conf.d/cache.conf;
          
                      location ~ /\.svn {
                              deny all;
                      }
          
                      location ~ /\.ht {
                              deny all;
                      }
                  }
          
                  location ^~ /nextcloud/conf/ {
                          deny all;
                  }
          
                  location ^~ /nextcloud/share/ {
                          deny all;
                  }
          
                  ## fin config nextcloud ##

          Fichier nextcloud.conf

           server {
              listen 80;
              server_name tld.domain.fr;
              # enforce https
              return 301 https://$server_name$request_uri;
          }
          
          server {
              listen 443 ssl;
              server_name tld.domain.fr;
          
          
              ssl_certificate /etc/letsencrypt/live/tld.domain.fr/fullchain.pem;
              ssl_certificate_key /etc/letsencrypt/live/tld.domain.fr/privkey.pem;
          
              # Add headers to serve security related headers
              # Before enabling Strict-Transport-Security headers please read into this topic first.
              add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload;";
              add_header X-Content-Type-Options nosniff;
              add_header X-Frame-Options "SAMEORIGIN";
              add_header X-XSS-Protection "1; mode=block";
              add_header X-Robots-Tag none;
              add_header X-Download-Options noopen;
              add_header X-Permitted-Cross-Domain-Policies none;
          
              #LOGS
              access_log /var/log/nginx/nextcloud-access.log combined;
              error_log /var/log/nginx/nextcloud-error.log error;
          
              # Path to the root of your installation
              root /var/www/nextcloud/;
          
              location = /robots.txt {
                  allow all;
                  log_not_found off;
                  access_log off;
              }
              #rewrite url pour la synchronisation caldav/webdav.
          	rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
          	rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
          	rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;
          
              #location /.well-known/acme-challenge { }
          
              # set max upload size
              client_max_body_size 3G;
              fastcgi_buffers 64 4K;
          
              # Disable gzip to avoid the removal of the ETag header
              gzip off;
          
              # Uncomment if your server is build with the ngx_pagespeed module
              # This module is currently not supported.
              # pagespeed off;
          
              error_page 403 /core/templates/403.php;
              error_page 404 /core/templates/404.php;
          
              location / {
                  rewrite ^ /index.php$uri;
              }
          
              location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
                  return 404;
              }
              location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
                  return 404;
              }
          
              location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+|core/templates/40[34])\.php(?:$|/) {
                  fastcgi_split_path_info ^(.+\.php)(/.*)$;
                  include fastcgi_params;
                  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                  fastcgi_param PATH_INFO $fastcgi_path_info;
                  fastcgi_param HTTPS on;
                  fastcgi_param modHeadersAvailable true; #Avoid sending the security headers twice
                  fastcgi_param front_controller_active true;
                  fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
                  fastcgi_intercept_errors on;
                  fastcgi_request_buffering off;
          	#fastcgi_cache phpcache;
          	#fastcgi_cache_valid 200 301 302 60m;
          	#add_header X-FastCGI-Cache $upstream_cache_status;
              }
          
              location ~ ^/(?:updater|ocs-provider)(?:$|/) {
                  try_files $uri/ =404;
                  index index.php;
              }
          
              # Adding the cache control header for js and css files
              # Make sure it is BELOW the PHP block
              location ~* \.(?:css|js)$ {
                  try_files $uri /index.php$uri$is_args$args;
                  add_header Cache-Control "public, max-age=7200";
                  # Add headers to serve security related headers (It is intended to have those duplicated to the ones above)
                  # Before enabling Strict-Transport-Security headers please read into this topic first.
                  # add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;";
                  add_header X-Content-Type-Options nosniff;
                  add_header X-Frame-Options "SAMEORIGIN";
                  add_header X-XSS-Protection "1; mode=block";
                  add_header X-Robots-Tag none;
                  add_header X-Download-Options noopen;
                  add_header X-Permitted-Cross-Domain-Policies none;
                  # Optional: Don't log access to assets
          #        access_log off;
              }
          
              location ~* \.(?:svg|gif|png|html|ttf|woff|ico|jpg|jpeg)$ {
                  try_files $uri /index.php$uri$is_args$args;
                  # Optional: Don't log access to other assets
          #        access_log off;
              }
          
          #####pour libre office
          
          # static files
              location ^~ /loleaflet {
                  proxy_pass https://localhost:9980;
                  proxy_set_header Host $http_host;
              }
          
              # WOPI discovery URL
              location ^~ /hosting/discovery {
                  proxy_pass https://localhost:9980;
                  proxy_set_header Host $http_host;
              }
          
              # websockets, download, presentation and image upload
              location ^~ /lool {
                  proxy_pass https://localhost:9980;
                  proxy_set_header Upgrade $http_upgrade;
                  proxy_set_header Connection "upgrade";
                  proxy_set_header Host $http_host;
              } 
          } ```
          un mois plus tard

          Bonjour

          Suite a une réinstallation je rencontre quelques problème dans le fonctionnement de nextcloud.
          Je n'arrive pas a créer de nouveaux utilisateurs seul le profil créer lors de la création du conteneur docker existe .
          Quand je clique sur le bouton créer rien ne ce passe !!!

          J'ai aussi des difficulté pour configurer mon dossier torrents de rutorrents par External Storage de nextcloud.

          Bon j'ai réussis enfin a installer le tout, seul reste le problème du External Storage.

          2 mois plus tard

          Bonjour,

          j'ai suivi le tuto Nextcloud version docker avec attention et l'ai refait plusieurs fois. Je me confronte toujours au même problème ; une fois le docker-compose up -d lancé, je me rends sur l'url de ma machine (un serveur dans mon cas avec nom de domaine) et rien.

          J'ai cherché à savoir si cela venez de mon serveur mais j'y ai réinstallé debian Jessie plusieurs également, donc je pars bien d'un debian "propre".
          J'ai pu remarquer que tu utilises l'image wonderfall/nginx mais n'existant plus, l'image Nginx officiel convient-elle ?

          Merci d'avoir pris le temps de lire.
          La bise.

            Khykh Dans ce cas c'est simplement que le reverse proxy ne doit pas être configuré dans ton Docker/Nginx, si ?

              Effectivement l'image wonderfall/nginx ne fonctionne plus et a été remplacé par wonderfall/boring-nginx, d'aileurs utilisée par Hardware dans le docker-compose pour son serveur de messagerie mais mieux que le tuto qui date un peu, sers toi de ce docker-compose qui fait tout pour toi, même le reverse. tu lances le docker compose et c'est tout, tu n'as plus qu'a aller sur le sous domaine et tu rentres direct dans nextcloud

              > version: '2'
                 
               volumes:
                nextcloud-db-data:
                nextcloud-data:
                nextcloud-config:
                nextcloud-apps:
                 
              services:
                 
                 nginx-proxy:
                    restart: always
                    image: jwilder/nginx-proxy
                    ports:
                      - "80:80"
                      - "443:443"
                    volumes:
                      - /srv/docker/nginx/certs:/etc/nginx/certs:ro
                      - /etc/nginx/vhost.d
                      - /usr/share/nginx/html
                      - /var/run/docker.sock:/tmp/docker.sock:ro
                
                  nginx-proxy-companion:
                    image: jrcs/letsencrypt-nginx-proxy-companion
                    volumes:
                       - /srv/docker/nginx/certs:/etc/nginx/certs:rw
                       - /var/run/docker.sock:/var/run/docker.sock
                    volumes_from:
                       - nginx-proxy
                
                nextcloud-db:
                    image: mariadb
                    volumes:
                       - nextcloud-db-data:/var/lib/mysql
                    environment:
                       - MYSQL_ROOT_PASSWORD=motdepasse
                       - MYSQL_DATABASE=nextcloud
                       - MYSQL_USER=nextcloud
                       - MYSQL_PASSWORD=motdepasse
                
               nextcloud:
                   image: wonderfall/nextcloud
                   environment:
                     - VIRTUAL_HOST=sous.domaine.com
                     - LETSENCRYPT_HOST=sous.domaine.com
                     - LETSENCRYPT_EMAIL=adressemail
                     - UID=1000
                     - GID=1000
                     - UPLOAD_MAX_SIZE=10G
                     - APC_SHM_SIZE=128M
                     - OPCACHE_MEM_SIZE=128
                     - REDIS_MAX_MEMORY=64mb
                     - CRON_PERIOD=15m
                     - TZ=Europe/Berlin
                     - ADMIN_USER=admin
                     - ADMIN_PASSWORD=admin
                     - DB_TYPE=mysql
                     - DB_NAME=nextcloud
                     - DB_USER=nextcloud
                     - DB_PASSWORD=motdepasse
                     - DB_HOST=nextcloud-db
                  depends_on:
                     - nextcloud-db
                  volumes:
                     - nextcloud-data:/data
                     - nextcloud-config:/config
                     - nextcloud-apps:/apps2

              Modifie les mots de passe, le sous domaine et l'adresse mail et remet en forme le docker-compose en respectant les retraits

                Waouw ! Merci Aerya et laster13 !

                Je vais aller tester tout ça.
                Pour le reverse proxy, je me demandais si l'image de Wonderfall avait des specs spécifiques pour fonctionner avec son image nextcloud alors je me suis retrouvé un peu perdu avec l'image officiel Nginx.
                Avec la tête froide aujourd'hui, je vais tout reprendre à zéro et bien comprendre la totalité des manips.

                Merci encore !

                EDIT : J'ai bien tout rempli (sous-domaine, mail, etc...) tout démarre bien cependant sur mon sous-domain.domain.com , je n'ai toujours rien.
                Je vois avec docker ps que wonderfall/nextcloud tape sur 8888/tcp. Le nginx-proxy map le port 80. J'ai une conf à y faire là, non ? laster13
                Je remarque également en faisant docker ps j'ai 3 containers de lancés. Il manque le container nextcloud lui-même.

                En faisant 'docker ps -a' tu vois ton 4eme container qui doit etre en "exited". Essaie de le redemarrer en faisant

                docker start id_container

                Pour info ce docker compose te créer tes certificats let's encrypt et ton vhost, du coup tu n'as rien à faire

                ps : Si ca ne fonctionne pas, pense à nettoyer ton docker en supprimant tous les volumes inutiles avec la commande

                docker volume rm $(docker volume ls -qf "dangling=true")

                Puis recommence

                  laster13 merci à toi !

                  Effectivement j'ai supprimé les containers et volumes, tout relancer et bien starter mon container nextcloud et tout fonctionne.