[Tuto] installation de Nextcloud en Docker sur Raspberry Pi

Orwell

Nouveau membre
Salut !

Merci pour ton tuto. :)
J'utilise un raspberry pi 4 avec 8GB de ram et debian 10 64 bits. Mon serveur de stockage est un AS1002T v2 monté en NFS.

J'ai précédemment suivi ton tuto pour installer portainer que je ne connaissais pas et je m'en suis ensuite servi pour déployer next cloud. J'ai simplement reporté dans l'onglet /stack le fichier docker-compose que tu as fourni et cela fonctionne parfaitement.

J'ajouterais pour ceux qui, comme moi, utilisent leurs applications derrière un reverse proxy, que j'ai pris le parti de rediriger le port 80 du container pour le faire transiter par haproxy qui gère tous mes certificats et occupe le port 443.

Pour ce faire, il faut modifier la ligne "port" dans le docker-compose :

Code:
    ports:
      - {PORT_PERSO}:80

Puis lancer le service, attendre la génération des fichier de configs, et modifier le fichier de conf de nginx dans nextcloud/config/nginx/site-confs/default pour ne plus utiliser le port 443.

Il faut aussi rajouter son domaine perso dans les domaines de confiance dans nextcloud/config/www/nextcloud/config/config.php, relancer la stack et continuer la configuration normalement.

Bonne continuation. ;)
 

LennVilardi

Nouveau membre
Salut !

Merci pour ton tuto. :)
J'utilise un raspberry pi 4 avec 8GB de ram et debian 10 64 bits. Mon serveur de stockage est un AS1002T v2 monté en NFS.

J'ai précédemment suivi ton tuto pour installer portainer que je ne connaissais pas et je m'en suis ensuite servi pour déployer next cloud. J'ai simplement reporté dans l'onglet /stack le fichier docker-compose que tu as fourni et cela fonctionne parfaitement.

J'ajouterais pour ceux qui, comme moi, utilisent leurs applications derrière un reverse proxy, que j'ai pris le parti de rediriger le port 80 du container pour le faire transiter par haproxy qui gère tous mes certificats et occupe le port 443.

Pour ce faire, il faut modifier la ligne "port" dans le docker-compose :

Code:
    ports:
      - {PORT_PERSO}:80

Puis lancer le service, attendre la génération des fichier de configs, et modifier le fichier de conf de nginx dans nextcloud/config/nginx/site-confs/default pour ne plus utiliser le port 443.

Il faut aussi rajouter son domaine perso dans les domaines de confiance dans nextcloud/config/www/nextcloud/config/config.php, relancer la stack et continuer la configuration normalement.

Bonne continuation. ;)
Déjà je remercie l'auteur de ce tuto et je te remercie également Orwell pour l'astuce pour repasser sur le port 80 par contre pourrais-tu partager le contenu du fichier de configuration default ?
J'ai trouvé cette modification :
upstream php-handler {
server 127.0.0.1:9000;
}
server {
listen 80;
listen [::]:80;
server_name _;
add_header X-Content-Type-Options nosniff;
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;
add_header Referrer-Policy no-referrer;
fastcgi_hide_header X-Powered-By;
root /config/www/nextcloud/;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
client_max_body_size 10G;
fastcgi_buffers 64 4K;
gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
location / {
rewrite ^ /index.php$request_uri;
}
location ~ ^\/(?:build|tests|config|lib|3rdparty|templates|data)\/ {
deny all;
}
location ~ ^\/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location ~ ^\/(?:index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|ocm-provider\/.+)\.php(?:$|\/) {
fastcgi_split_path_info ^(.+?\.php)(\/.*|)$;
include /etc/nginx/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;
fastcgi_param front_controller_active true;
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering off;
}

location ~ ^\/(?:updater|ocs-provider|ocm-provider)(?:$|\/) {
try_files $uri/ =404;
index index.php;
}
location ~ \.(?:css|js|woff2?|svg|gif)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463";
add_header X-Content-Type-Options nosniff;
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;
add_header Referrer-Policy no-referrer;
access_log off;
}
location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
try_files $uri /index.php$request_uri;
access_log off;
}
}
Et pour ajouter un domaine de confiance j'ai suivi avec :
'trusted_domains' =>
array (
0 => '192.168.0.XX',
1 => 'cloud.example.com',
),

Par contre quand je me logue via l'ip local j'ai un message d'erreur :
SSL a reçu un enregistrement qui dépasse la longueur maximale autorisée. Code d’erreur : SSL_ERROR_RX_RECORD_TOO_LONG
que je n'ai pas en passant par le ndd et l'url repasse sous firefox en https
 

Fabwiss

Padawan
Bonjour le forum,

@EVOTk merci pour ce tuto qui comme d'hab est excellent !!!

Je l'ai suivi et tout fonctionne aux petits oignons.
Toutefois, j'ai une question...

Dans les paramètres du système, je vois qua j'ai la version Version: 7.4.26 de PHP
Il me semble que cette version date un peu. Comment faire pour updater vers une version plus récente (8.1.x par exemple) ?

Par avance merci pour ton aide.

Fabwiss.
 

EVOTk

Modérateur
Membre du personnel
Dans les paramètres du système, je vois qua j'ai la version Version: 7.4.26 de PHP
C'est normal, le conteneur est encore basé sur php7.4 qui est encore d'actualité.

Si tu souhaite forcer le passage en php8.0 tu le peu en changeant le nom de l’image par :
linuxserver/nextcloud:php8
 

Fabwiss

Padawan
C'est normal, le conteneur est encore basé sur php7.4 qui est encore d'actualité.

Si tu souhaite forcer le passage en php8.0 tu le peu en changeant le nom de l’image par :
linuxserver/nextcloud:php8
Merci pour ce retour rapide.
Vu que tout fonctionne bien, je ne vais pas trop prendre le risque de tout casser en forçant le passage à php8.0.

On verra bien plus tard, non ?
 

EVOTk

Modérateur
Membre du personnel
On verra bien plus tard, non ?
Php7.4 est pour le moment maintenu est mis a jour, il n'y a donc effectivement aucune urgence.

Qui dit MAJ dit forcément un risque, il faut bien sauvegarder avant :) Pour ma part je n'ai pas eu de soucis a passer de php7.4 a php8.0.
 

moacc95

Apprenti
Bonjour,
J'ai remarqué des anomalies dans Nextcloud mais je n'arrive pas à les solutionner :

1668841482065.png

Vu que ces problèmes semblent être liés à la bdd, je me demande si je ne vais pas avoir le choix et la recréer...

Avez-vous une idée ?
 

Nincha

Padawan
Bonjour,
J'ai remarqué des anomalies dans Nextcloud mais je n'arrive pas à les solutionner :

Voir la pièce jointe 7041

Vu que ces problèmes semblent être liés à la bdd, je me demande si je ne vais pas avoir le choix et la recréer...

Avez-vous une idée ?
Pourquoi la recréer ?
En lisant ce qui est écrit, il y'a juste à entrer les lignes de commande indiquées pour créer les index et convertir les colonnes demandées.
J'ai déjà eu ces warning et passer les lignes de commande en question, c'est rapide et ne pose pas de problèmes
 

moacc95

Apprenti
Merci pour ce retour. Vu que je passe par docker, il faut que je me connecte via la console du container de ma base de donnée pour exécuter ces commandes ? j'avoue ne pas être très à l'aise dès qu'il faut toucher au bases de données...😰
 

Nincha

Padawan
Oui il faut se connecter au container en mode console.
Ensuite il faut précéder la commande "occ blabla..." par php. Attention si vous êtes en php8 ce sera php8 qu'il faudra utiliser.
Le lien vers la documentation qui est visible sur votre capture devrait vous permettre de trouver tout le détail des actions "occ".
Notamment comment mettre en mode hors ligne/maintenance comme c'est demandée pour l'une des deux actions.
 

Nincha

Padawan
A l'écriture juste php tout court ou php8.
Pour la mécanique interne je ne saurais pas dire.
De mémoire, le passage à php8 a permis d'améliorer la vitesse de réponse de nextcloud.

Félicitations pour avoir réussi 😉
 
Dernière édition:

EVOTk

Modérateur
Membre du personnel
Hello,
J'arrive un peu apres la guerre, mais il faut faire ceci :
docker exec -it -u <PUID> <container_name> php /config/www/nextcloud/occ db:add-missing-indices
et
docker exec -it -u <PUID> <container_name> php /config/www/nextcloud/occ db:convert-filecache-bigint

<PUID> est a remplacer par le PUID de ton utilisateur qui execute le conteneur
<container_name> est a remplacer par le nom de ton conteneur
php doit etre remplacé par php8 si tu est sous php8
 

moacc95

Apprenti
Bonjour Evotk,

Merci pour la réponse.

Je me suis connecté sur la console du container Nextcloud puis j'ai éxécuté les commandes "occ db:add-missing-indices" et "occ db:convert-filecache-bigint" (en prenant soin de passer en mode maintenance pour la seconde).
 
Haut Bas