Nginx PHP MariaDB Nextcloud Hub
Nextcloud est une suite de logiciels client-serveur permettant de créer et d’utiliser des services d’hébergement de fichiers.

Nginx extras
Paquet nginx-extras
1
2
3
4
# en mode su
apt -o Dpkg::Options::="--force-confnew" install nginx-extras -y
rm /usr/local/lib/x86_64-linux-gnu/perl/5.36.0/nginx.pm
systemctl restart nginx
Modifier fichier /etc/nginx/nginx.conf
1
2
3
4
5
6
7
8
9
10
types_hash_max_size 2048;
variables_hash_max_size 2048;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
Supprimer la configuration active par défaut et recharger nginx
1
2
3
sudo rm -r /etc/nginx/sites-*
sudo rm -r /var/www/
sudo systemctl restart nginx
PHP 8.4
Pour installer la version de 8 de php, ajouter le dépôt sury.
1
2
3
sudo apt install -y lsb-release apt-transport-https ca-certificates wget
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" |sudo tee /etc/apt/sources.list.d/php.list
Mise à jour des dépôts :
1
sudo apt update && sudo apt upgrade -y
Installation PHP8.4 + Modules nécessaires à Nextcloud
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
sudo apt -y install \
php8.4 \
php8.4-apcu \
php8.4-bcmath \
php8.4-bz2 \
php8.4-cgi \
php8.4-cli \
php8.4-common \
php8.4-curl \
php8.4-dev \
php8.4-fpm \
php8.4-gd \
php8.4-gmp \
php8.4-igbinary \
php8.4-imagick \
php8.4-imap \
php8.4-intl \
php8.4-ldap \
php8.4-mbstring \
php8.4-mysql \
php8.4-opcache \
php8.4-readline \
php8.4-redis \
php8.4-soap \
php8.4-xml \
php8.4-zip \
php8.4-memcached \
imagemagick
Le fichier php.ini CLI (Command Line Interface) est la configuration PHP qui s'applique lorsque vous exécutez des scripts PHP en ligne de commande.(Nextcloud : Corriger l’erreur Memcache \OC\Memcache\APCu not available for local cache)
Pour assurer le fonctionnement optimal de Nextcloud, il peut être nécessaire d’activer l’extension APCu dans ce fichier.(en mode su)
1
echo "apc.enable_cli = 1" >> /etc/php/8.4/cli/php.ini
Modifier configuration /etc/php/8.4/fpm/pool.d/www.conf
1
2
3
4
5
6
7
user = www-data
group = www-data
listen = /run/php/php8.4-fpm.sock
listen.owner = www-data
listen.group = www-data
MariaDB
Installer MariaDB :
1
2
sudo apt install mariadb-server
sudo mysql_secure_installation # Y à tout et nouveau mot de passe n
Base ‘nextcloud’ , en mode su
1
2
3
4
MOTPASSEDB="Mot_passe_base_bextcloud"
mysql -uroot -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; \
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY '$MOTPASSEDB'; \
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY '$MOTPASSEDB'; FLUSH PRIVILEGES;"
Pour info
Effacer une base : mysql -uroot -e 'DROP DATABASE nextcloud'
Effacer un utilisateur : mysql -uroot -e 'DROP USER "nextcloud"@"localhost";'
Nextcloud PHP Nginx
Référence: Nextcloud Install
Dernière version Nextcloud
en mode super utilisateur
Lien des versions Nextcloud server https://download.nextcloud.com/server/releases/
On choisit “latest” dans la version

Installer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# mode su
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
# checksum et vérification
#wget https://download.nextcloud.com/server/releases/latest.tar.bz2.sha256
#sha256sum -c latest.tar.bz2.sha256 < latest.tar.bz2
# Décompression, déplacement et effacement
tar -xvf latest.tar.bz2
mv nextcloud /var/www/
rm latest.tar.bz2
# Utilisateur nextcloud et droits
useradd -r nextcloud
chown -R nextcloud:www-data /var/www/nextcloud
chmod -R o-rwx /var/www/nextcloud
# Nextcloud data
mkdir -p /srv/nextcloud-data/
chown -R nextcloud:nextcloud /srv/nextcloud-data/
chmod -R o-rwx /srv/nextcloud-data/
Pool nextcloud-fpm.conf
Création
1
sudo cp /etc/php/8.4/fpm/pool.d/www.conf /etc/php/8.4/fpm/pool.d/nextcloud-fpm.conf
Pool PHP-FPM 8.4 nextcloud nextcloud: /etc/php/8.4/fpm/pool.d/nextcloud-fpm.conf
en mode su
Modifier
1
2
3
4
5
6
7
8
9
[nextcloud]
user = www-data
group = www-data
listen = /run/php/php8.4-fpm-nextcloud.sock
listen.owner = www-data
listen.group = www-data
Le fichier complet `/etc/php/8.4/fpm/pool.d/nextcloud-fpm.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[nextcloud]
user = www-data
group = www-data
listen = /run/php/php8.4-fpm-nextcloud.sock
listen.owner = www-data
listen.group = www-data
;pm = dynamic
;pm.max_children = 5
;pm.start_servers = 2
;pm.min_spare_servers = 1
;pm.max_spare_servers = 3
pm = dynamic
pm.max_children = 100
pm.start_servers = 32
pm.min_spare_servers = 16
pm.max_spare_servers = 32
pm.max_requests = 200
; Additional php.ini defines, specific to this pool of workers.
env[PATH] = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
php_value[upload_max_filesize] = 10G
php_value[post_max_size] = 10G
php_value[default_charset] = UTF-8
php_value[opcache.enable_cli]=1
php_value[opcache.memory_consumption]=512
php_value[opcache.interned_strings_buffer]=128
php_value[opcache.max_accelerated_files]=32530
php_value[opcache.save_comments]=1
php_value[opcache.revalidate_freq]=60
php_value[opcache.jit]=1255
php_value[opcache.jit_buffer_size]=128M
php_value[apc.enabled]=1
php_value[apc.enable_cli]=1
Relancer et vérifier
1
2
systemctl restart php8.4-fpm
systemctl status php8.4-fpm
Le status
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
● php8.4-fpm.service - The PHP 8.4 FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php8.4-fpm.service; enabled; preset: enabled)
Active: active (running) since Sat 2025-11-01 13:21:46 CET; 2s ago
Invocation: 7e7472cd2f9c46e1a722188e310ea0fc
Docs: man:php-fpm8.4(8)
Process: 36055 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /et>
Main PID: 36050 (php-fpm8.4)
Status: "Ready to handle connections"
Tasks: 5 (limit: 38031)
Memory: 20.1M (peak: 20.4M)
CPU: 105ms
CGroup: /system.slice/php8.4-fpm.service
├─36050 "php-fpm: master process (/etc/php/8.4/fpm/php-fpm.conf)"
├─36051 "php-fpm: pool nextcloud"
├─36052 "php-fpm: pool nextcloud"
├─36053 "php-fpm: pool www"
└─36054 "php-fpm: pool www"
Nginx mimes
Les sections Activité et Logging dans le cadre de l’administration affiche des pages vierges
C’est une indication que votre serveur web n’est pas configuré pour gérer correctement les fichiers mjs.
Il faut modifier le fichier “mime.types” situé dans /etc/nginx/, remplaçer la ligne suivante:
1
application/javascript js;
par
1
application/javascript js mjs;
Nginx domaine et certificats
Serveur , installer et renouveler les certificats SSL Let’s encrypt via Acme
Disposer d’un sous-domaine (ici cloud.rnmkcy.eu) avec des certficats SSL valides (Let’s Encrypt)
Ce qui va être ajouté au fichier de configuration nginx nextcloud
- Les paramètres ssl du domaine
- Les paramètres issus du générateur mozilla
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ssl_certificate /etc/ssl/private/rnmkcy.eu-fullchain.pem;
ssl_certificate_key /etc/ssl/private/rnmkcy.eu-key.pem;
#------------------------------------------------------
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
# nginx 1.26.3 OpenSSL 3.5.1 OCSP Stapling disable
# intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
# see also ssl_session_ticket_key alternative to stateful session cache
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
# curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam
ssl_dhparam "/etc/ssl/private/dhparam";
#------------------------------------------------------
Le fichier dhparam est déplacé dans /etc/ssl/private/
1
2
curl https://ssl-config.mozilla.org/ffdhe2048.txt > dhparam
sudo mv dhparam /etc/ssl/private/
Nginx vhost
Nextcloud in the webroot of NGINX
Nexcloud sur le domaine cloud.rnmkcy.eu avec certificats Let’s Encrypt
ATTENTION !!! Remplacer rnmkcy.eu par le nom de votre domaine
Le fichier de configuration web cloud.rnmkcy.eu.conf /etc/nginx/conf.d/cloud.rnmkcy.eu.conf
Etendre Réduire cloud.rnmkcy.eu.conf
# Version 2025-07-23
upstream php-handler {
server unix:/run/php/php8.4-fpm-nextcloud.sock;
}
# Set the `immutable` cache control options only for assets with a cache busting `v` argument
map $arg_v $asset_immutable {
"" "";
default ", immutable";
}
server {
listen 80;
listen [::]:80;
server_name cloud.rnmkcy.eu;
# Prevent nginx HTTP Server Detection
server_tokens off;
# Enforce HTTPS
return 301 https://$server_name$request_uri;
}
server {
# With NGinx >= 1.25.1 you should use this instead:
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name cloud.rnmkcy.eu;
# Path to the root of your installation
root /var/www/nextcloud;
ssl_certificate /etc/ssl/private/rnmkcy.eu-fullchain.pem;
ssl_certificate_key /etc/ssl/private/rnmkcy.eu-key.pem;
#------------------------------------------------------
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
# nginx 1.26.3 OpenSSL 3.5.1 OCSP Stapling disable
# intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ecdh_curve X25519:prime256v1:secp384r1;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
# see also ssl_session_ticket_key alternative to stateful session cache
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
# curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam
ssl_dhparam "/etc/ssl/private/dhparam";
#------------------------------------------------------
# Prevent nginx HTTP Server Detection
server_tokens off;
# HSTS settings
# WARNING: Only add the preload option once you read about
# the consequences in https://hstspreload.org/. This option
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
#add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# set max upload size and increase upload timeout:
client_max_body_size 512M;
client_body_timeout 300s;
fastcgi_buffers 64 4K;
# Proxy and client response timeouts
# Uncomment an increase these if facing timeout errors during large file uploads
#proxy_connect_timeout 60s;
#proxy_send_timeout 60s;
#proxy_read_timeout 60s;
#send_timeout 60s;
# Enable gzip but do not remove ETag headers
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 text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm 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;
# Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off;
# The settings allows you to optimize the HTTP2 bandwidth.
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
# for tuning hints
client_body_buffer_size 512k;
# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
# Remove X-Powered-By, which is an information leak
fastcgi_hide_header X-Powered-By;
# Set .mjs and .wasm MIME types
# Either include it in the default mime.types list
# and include that list explicitly or add the file extension
# only for Nextcloud like below:
include mime.types;
# types {
# text/javascript mjs;
# application/wasm wasm;
# }
# Specify how to handle directories -- specifying `/index.php$request_uri`
# here as the fallback means that Nginx always exhibits the desired behaviour
# when a client requests a path that corresponds to a directory that exists
# on the server. In particular, if that directory contains an index.php file,
# that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;
# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
location = / {
if ( $http_user_agent ~ ^DavClnt ) {
return 302 /remote.php/webdav/$is_args$args;
}
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
# Make a regex exception for `/.well-known` so that clients can still
# access it despite the existence of the regex rule
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
# for `/.well-known`.
location ^~ /.well-known {
# The rules in this block are an adaptation of the rules
# in `.htaccess` that concern `/.well-known`.
location = /.well-known/carddav { return 301 /remote.php/dav/; }
location = /.well-known/caldav { return 301 /remote.php/dav/; }
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
# Let Nextcloud's API for `/.well-known` URIs handle all other
# requests by passing them to the front-end controller.
return 301 /index.php$request_uri;
}
# Rules borrowed from `.htaccess` to hide certain paths from clients
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
# which handle static assets (as seen below). If this block is not declared first,
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
# Required for legacy support
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode(_arm64)?\/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
fastcgi_param front_controller_active true; # Enable pretty urls
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
fastcgi_request_buffering on; # Required as PHP-FPM does not support chunked transfer encoding and requires a valid ContentLength header.
# PHP-FPM 504 response timeouts
# Uncomment and increase these if facing timeout errors during large file uploads
#fastcgi_read_timeout 60s;
#fastcgi_send_timeout 60s;
#fastcgi_connect_timeout 60s;
fastcgi_max_temp_file_size 0;
}
# Serve static files
location ~ \.(?:css|js|mjs|svg|gif|ico|jpg|png|webp|wasm|tflite|map|ogg|flac)$ {
try_files $uri /index.php$request_uri;
# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Cache-Control "public, max-age=15778463$asset_immutable";
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
access_log off; # Optional: Don't log access to assets
}
location ~ \.(otf|woff2?)$ {
try_files $uri /index.php$request_uri;
expires 7d; # Cache-Control policy borrowed from `.htaccess`
access_log off; # Optional: Don't log access to assets
}
# Rule borrowed from `.htaccess`
location /remote {
return 301 /remote.php$request_uri;
}
location / {
try_files $uri $uri/ /index.php$request_uri;
}
}Vérifier : nginx -t
Relancer php-fpm et nextcloud
1
2
sudo systemctl restart php8.4-fpm
sudo systemctl reload nginx
Paramétrage Nextcloud
Finaliser installation Nextcloud
Tout est paramétré avec le domaine ouestyan.fr qu'il faut remplacer par votre domaine
Ouvrir le lien https://cloud.rnmkcy.eu
Créer un compte administrateur et son mot de passe
Renseigner les éléments de la base mysql


Modifier le fichier /var/www/nextcloud/config/config.php
Ajouter 'default_phone_region' => 'FR', et les lignes suivantes dans le fichier /var/www/nextcloud/config/config.php avant le tag de fin de fichier );
1
2
3
4
5
6
7
8
9
10
11
'default_locale' => 'fr_FR',
'default_phone_region' => 'FR',
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.local' => '\\OC\\Memcache\\APCu',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
'password' => '',
),
Messagerie pour notifications
Serveur de messagerie, ajouter les lignes dans le fichier /var/www/nextcloud/config/config.php avant le tag de fin de fichier );
1
2
3
4
5
6
7
8
9
'mail_from_address' => 'yack',
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'cinay.eu',
'mail_smtphost' => 'cinay.eu',
'mail_smtpport' => '587',
'mail_smtpauth' => 1,
'mail_smtpname' => 'yack',
'mail_smtppassword' => 'mot_passe_yann',
Nextcloud Travaux cron
Vous pouvez programmer des tâches cron de trois façons : en utilisant AJAX, Webcron ou cron.
La méthode recommandée est cron</u>.
Note : Il n’est pas obligatoire de sélectionner l’option Cron dans le menu d’administration pour les travaux en arrière-plan, car une fois que cron.php est exécuté à partir de la ligne de commande ou du service cron, il sera automatiquement réglé sur Cron.
Vérifier ou créer la tâche cron.php exécutée par utilisateur “nextcloud”
1
2
sudo -u nextcloud crontab -l # affiche la tâche
sudo -u nextcloud crontab -" #mode création tâche
La tâche est exécutée tous les 5 minutes
1
2
# m h dom mon dow command
*/5 * * * * php -f /var/www/nextcloud/cron.php
Nextcloud maintenance_window_start
Le paramètre
maintenance_window_startn’est pris en compte qu’en mode cron.
Dans le fichier config/config.php, vous pouvez spécifier cette configuration. Certaines tâches de fond ne s’exécutent qu’une fois par jour. Lorsqu’une heure est définie (le fuseau horaire est UTC) pour cette configuration, les tâches d’arrière-plan qui s’annoncent comme non sensibles au temps seront retardées pendant les heures “ouvrables” et ne s’exécuteront que dans les 4 heures suivant l’heure donnée. Ceci est par exemple utilisé pour l’expiration des activités, la formation aux connexions suspectes et les vérifications de mise à jour.
Une valeur de 1, par exemple, n’exécutera ces tâches d’arrière-plan qu’entre 01h00 UTC et 05h00 UTC.
Ajouter le paramètre au fichier /var/www/nextcloud/config/config.php
1
'maintenance_window_start' => 1,
Journal level
Les niveaux de journalisation vont de DEBUG, qui enregistre toutes les activités, à FATAL, qui n’enregistre que les erreurs fatales.
- 0 : DEBUG : Toutes les activités ; la journalisation la plus détaillée.
- 1 : INFO : Activités telles que les connexions d’utilisateurs et les activités de fichiers, ainsi que les avertissements, les erreurs et les erreurs fatales.
- 2 : WARN : Les opérations réussissent, mais avec des avertissements sur les problèmes potentiels, ainsi que des erreurs et des erreurs fatales.
- 3 : ERROR : Une opération échoue, mais d’autres services et opérations se poursuivent, ainsi que des erreurs fatales.
- 4 : FATAL : Le serveur s’arrête.
Par défaut, le niveau de journalisation est fixé à 2 (WARN). Utilisez DEBUG lorsque vous avez un problème à diagnostiquer, puis réinitialisez votre niveau de journalisation à un niveau moins verbeux, car DEBUG produit beaucoup d’informations et peut affecter les performances de votre serveur.
Les paramètres du niveau de journalisation sont définis dans le fichier config/config.php
1
'loglevel' => 3,
Récapitulatifs des ajouts au fichier config.php
Tout ce qui suit est ajouté au fichier avant la balise finale
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'default_locale' => 'fr_FR',
'default_phone_region' => 'FR',
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'memcache.local' => '\\OC\\Memcache\\APCu',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
'password' => '',
),
'mail_from_address' => 'yack',
'mail_smtpmode' => 'smtp',
'mail_sendmailmode' => 'smtp',
'mail_domain' => 'cinay.eu',
'mail_smtphost' => 'cinay.eu',
'mail_smtpport' => '587',
'mail_smtpauth' => 1,
'mail_smtpname' => 'yack',
'mail_smtppassword' => 'mot_passe_yann',
'maintenance_window_start' => 1,
'loglevel' => 3,
LLDAP - Gestion des utilisateurs
Préalable, le module php8.x-ldap doit être installé
Ouvrir nextcloud avec “admin”, “Applications mises en avant” et Activer LDAP puis Télécharger et activer pour que l’application apparaisse dans les “Applications actives”

Ensuite ouvrir “Paramètres d’administration” , “Intégration LDAP/AD”

- Host: 127.0.0.1
- Port: 3890
- Utilisateur DN : uid=admin,ou=people,dc=rnmkcy,dc=eu
- Mot de passe admin LLDAP
- DN de base: dc=rnmkcy,dc=eu
- Clic Continuer
On va modifier la requête
(|(objectclass=inetOrgPerson) (memberOf=cn=nextcloud_users,ou=groups,dc=rnmkcy,dc=eu))
Il s’affiche “3 utilisateurs trouvés”
La configuration LLDAP est terminée
Gestion des utilisateurs, ouvrir nextcloud avec admin , puis “Utilisateurs”
Créer un groupe Utilisateurs et y affecter les comptes concernés , désactiver les autres comptes

Se déconnecter, puis se reconnecter avec le nouvel administrateur “yann” et supprimer “admin” , l’utilisateur qui a servi à l’installation de nextcloud

Applications Nextcloud
Messagerie
Si vous avez installé un serveur mail, installer at activer l’application mail de nextcloud

SnappyMail (INACTIF)
Contacts et Calendrier
Télécharger et activer les applications

Cliquer sur l’icône “Contact”



Pour le lien

Lien interne utilisateur : https://cloud.rnmkcy.eu/remote.php/dav/addressbooks/users/dentifiant_hexa_utilisateur/contacts/
Pour les partages

Adresse caldav principal : https://cloud.rnmkcy.eu/remote.php/dav
Pour les clients android, thunderbird
Cliquer sur le lien “Modifier et partager l’agenda” de l’utilisateur yann

Lien interne utilisateur : https://cloud.rnmkcy.eu/remote.php/dav/calendars/Identifiant_hexa_utilisateur/personal/
Login mot de passe application
Les applications clientes de nextcloud ne peuvent pas se connecter sur nextcloud avec une authentification à 2 facteurs, il faut créer un accès login + mot de passe
Se connecter à Nextcloud puis : Personnel → Sécurité → Appareils & sessions
Sauvegarder les 2 paramètres (utilisateur et mot de passe) pour une utilisation sur les applications clientes…
Nextcloud Music
« Music » est une application pour OwnCloud et Nextcloud qui joue à la fois le rôle de serveur de musique et celui de client Web.
Les principales fonctionnalités de Nextcloud Music sont :
- l’indexation de la musique présente sur le stockage Nextcloud,
- la navigation dans sa bibliothèque et l’écoute de sa musique via une interface Web intégrée à Nextcloud,
- et la fourniture d’APIs permettant à des applications tierces de s’y connecter.
« Smart playlist » est une sélection (aléatoire ?) de 100 titres que vous pouvez écouter en un clic. Contrairement aux autres playlists, la « Smart playlist » n’est pas accessible en dehors de l’interface Web, mais il est possible de l’enregistrer vers une playlist régulière qui sera alors accessible aux applications tierces.
« Internet radio » et permet d’ajouter et d’écouter des Web radio. Elle fonctionne bien, mais il est important de noter que si votre instance Nextcloud est accessible en HTTPS [elle devrait !], le flux de la radio devra impérativement utiliser ce protocole également. Il s’agit-là d’une limitation liée au navigateur, qui pour des raisons de sécurité empêche d’accéder à des ressources HTTP depuis une page servie en HTTPS.
Et la dernière fonctionnalité permet de s’abonner à des Podcast via des flux RSS.
Ouvrir l’application “Music” et cliquer sur Settings

Pour les applications android, un accès avec mot de passe

Android Power Ampache 2 (https://github.com/icefields/Power-Ampache-2)
Power Ampache 2 est un client musical riche en fonctionnalités conçu pour Ampache, Nextcloud Music et les backends compatibles. Il offre toutes les fonctionnalités des autres lecteurs de musique grand public, tels que Spotify, YouTube Music et Apple Music, et bien plus encore. Avec Power Ampache 2, profitez « réellement » du téléchargement et de l’exportation de fichiers musicaux, de l’accès aux paroles, de la prise en charge de plusieurs comptes et d’une expérience sans publicité et sans suivi.
- Listes de lecture générées uniques (smartlists)
- “Spin it!” bouton pour générer une liste de lecture pour vous.
- Mode sombre et clair avec couleurs d’interface adaptatives, ou choisissez/créez votre propre thème.
- Prise en charge des touches multimédias
- Chaque fonctionnalité Bluetooth est disponible dans l’application.
- Notifications de chansons avec commandes de lecture. Également sur l’écran de verrouillage.
- Collections d’albums, d’artistes et de chansons
- Recherche avancée
- Mode hors ligne puissant
- Créez, modifiez et partagez vos listes de lecture
Télécharger APK, Signature PGP
Office
OnlyOffice (INACTIF)
OnlyOffice YunoHost, Nextcloud et Archlinux
Collabora Online (INACTIF)
Nextcloud WebDAV
Dans le domaine des réseaux informatiques, davfs2 est un outil Linux permettant de se connecter à des partages WebDAV comme s’il s’agissait de disques locaux. Il s’agit d’un système de fichiers open-source sous licence GPL pour le montage de serveurs WebDAV. Il utilise l’API du système de fichiers FUSE pour communiquer avec le noyau et la bibliothèque neon WebDAV pour communiquer avec le serveur web.
- Accès aux fichiers Nextcloud avec WebDAV
- How to mount WebDAV share using systemd
- How to mount WebDAV share
- davfs2 archwiki
- Linux: Mount WebDav-Share using fstab and davfs2
Nextcloud Notes
Notes
L’application Notes est une application de prise de notes pour Nextcloud. Elle fournit des catégories pour une meilleure organisation et supporte le formatage en utilisant la syntaxe Markdown. Les notes sont sauvegardées comme des fichiers dans votre Nextcloud, vous pouvez donc les voir et les éditer avec n’importe quel client Nextcloud. De plus, une API REST séparée permet une intégration facile dans des applications tierces (actuellement, il existe des applications de notes pour Android, iOS et la console qui permettent un accès pratique à vos notes Nextcloud). D’autres fonctionnalités permettent de marquer des notes comme favorites.
QOwnNotesAPI
QOwnNotesAPI est l’API Nextcloud/ownCloud pour QOwnNotes, le bloc-notes open source pour Linux, macOS et Windows, qui fonctionne avec l’application de notes de Nextcloud/ownCloud.
Le seul but de cette application est de fournir un accès API à votre serveur Nextcloud/ownCloud pour votre installation de bureau QOwnNotes, vous ne pouvez pas utiliser cette application pour autre chose, si vous n’avez pas QOwnNotes installé sur votre ordinateur de bureau !
Archlinux QOwnNotes
1
yay -S qownnotes
Partage
Fédération Nextcloud
Un service est dit fédéré si deux usagers de ce service peuvent interagir sans utiliser le même prestataire de service.
Entre deux comptes sur des Nextcloud différents
carla (compte cloud.xoyize.xyz) souhaite partager le dossier Camera avec yann (compte cloud.rnmkcy.eu)
yann (compte cloud.rnmkcy.eu)
Il faut récupérer l’ID de fédération

Du type 5bcd25ef-356abc-a5@cloud.rnmkcy.eu
carla (compte cloud.xoyize.xyz)
- Il faut cliquer sur le symbole de partage en bout de ligne du dossier Camera

- Puis saisir l’identifiant fédération Nextcloud de yann (compte cloud.rnmkcy.eu) 5bcd25ef-356abc-a5@cloud.rnmkcy.eu

- Autoriser la modification et Enregistrer

Le partage est établi avec yann


Vérification sur yann (compte cloud.rnmkcy.eu)
Il faut aller dans les notifications et accepter le partage


Synchroniser deux serveurs Nextcloud
depuis deux sites différents
La synchronisation de deux serveurs multiples Nextcloud à partir de deux sites différents implique la mise en place d’une fédération de serveur à serveur, qui permet aux deux instances de partager des fichiers, des dossiers et d’autres données. Voici un guide étape par étape sur la façon d’y parvenir :
Conditions requises :
- Deux instances Nextcloud, chacune installée sur un site différent.
- URLs accessibles au public pour les deux instances.
- Connectivité réseau entre les deux sites (accès internet ou connexion directe).
Etapes pour synchroniser deux serveurs Nextcloud :
Activer l’application Federation : Sur les deux instances Nextcloud, s’assurer que l’application “Federation” est activée. Cette application permet aux serveurs de communiquer et de partager des données.
Configurer le serveur de confiance sur la première instance Nextcloud (Site A) :
- Se connecter en tant qu’administrateur.
- Aller dans “Paramètres d’administration” > “Administration” > “Partage”.
- Descendez jusqu’à la section “Serveurs de confiance” et cliquez sur “Ajouter un serveur de confiance”.
- Entrez l’URL de la deuxième instance Nextcloud (Site B) et générez un jeton.

Configurer le serveur de confiance sur la deuxième instance (Site B)
- Se connecter en tant qu’administrateur.
- Aller dans “Paramètres d’administration” > “Administration” > “Partage”.
- Descendez jusqu’à la section “Serveurs de confiance” et cliquez sur “Ajouter un serveur de confiance”.
- Entrez l’URL de la première instance Nextcloud (Site A)

Lancez le partage
Sur l’une des instances (disons le site A) :
- Connectez-vous en tant qu’utilisateur.
- Naviguez jusqu’au fichier ou dossier que vous souhaitez partager avec l’autre instance (Site B).
- Cliquez sur le bouton “Partager” et entrez l’adresse e-mail d’un utilisateur sur la deuxième instance (Site
Choisissez les permissions appropriées (lecture seule, lecture/écriture, etc.).
- Cliquez sur “Partager”.
Accepter l’invitation au partage :
Sur l’autre instance (Site B) :
- Connectez-vous en tant qu’utilisateur ayant reçu l’invitation de partage.
- Vous devriez voir une notification ou une invitation de partage entrante. Acceptez le partage.
Synchronisation des données :
Une fois le partage accepté, les données seront synchronisées entre les deux instances. Les modifications effectuées sur une instance seront répercutées sur l’autre. Notez que la synchronisation peut prendre un certain temps en fonction de la taille des données et de la bande passante disponible sur le réseau.
Surveiller et gérer :
Vous pouvez surveiller l’état des connexions de serveur à serveur et des fichiers partagés par le biais de l’interface Nextcloud. Toute mise à jour ou modification sera propagée entre les deux instances.
Répéter pour d’autres partages :
Vous pouvez répéter le processus pour partager d’autres fichiers et dossiers entre les deux instances.
Rappelez-vous que cette configuration nécessite que les deux instances disposent d’une connectivité internet fiable ou d’une connexion réseau dédiée entre les sites. Veillez également à ce que les deux instances soient à jour et correctement sécurisées afin de préserver l’intégrité et la confidentialité des données partagées.
Nextcloud Authentification
Mot de passe d’application
créer un mot de passe d’application afin de permettre à des applications de se connecter rapidement et de façon sécurisée à votre compte Nextcloud
En cas de problème, vous pouvez notamment en cliquant sur les trois points à côté de votre mot de passe d’application

- Effacer l’appareil commande l’effacement à distance , ce qui ordonne à l’appareil (s’il a été volé par exemple) d’effacer tous les fichiers de votre compte Nextcloud qu’il contient.
- Révoquer le mot de passe, ce qui le désactive et empêche toute connexion ultérieure par ce mot de passe à votre compte Nextcloud, sans aucun impact sur votre mot de passe principal Nextcloud, qui reste sûr.
Connexion mobile Android à un compte Nextcloud
Créer un mot de passe application, voir ci-dessus. Le mot de passe d’application se nomme “Mobiles”
Sur votre mobile, installez l’application Nextcloud, disponible sur le Play Store ou sur F-Droid.
Lancez l’application et cliquez sur Se connecter.

L’application lance un navigateur, cliquez sur Authentification alternative en utilisant un mot de passe d’application.

Connexion établie

Double facteur - TOTP
Paramètres → Applications → Applications mises en avant

Activer “Two-Factor TOTP Provider”
Paramètres → Administration settings → Sécurité dans la rubrique Administration
Puis cliquer sur Enregistrer les modifications
Aller ensuite sur Paramètres personnels → Sécurité dans la rubrique Personnel

Après avoir activé authentification TOTP (saisie du mot de passe)
Enter le secret TOTP dans le ou les applications TOPT
Saisir le code de vérification générer par votre application et cliquer sur “Vérifier”
Ensuite cliquer sur “Générer des codes de récupération”

Double facteur - Clé de sécurité
YubiKey 5 Series Une gamme multiprotocole (FIDO2/WebAuthn, U2F, Smart Card, OpenPGP, OTP) qui est le premier choix des entreprises et qui prend en charge la fonction sans mot de passe
- La clé “Yubikey 5 NFC” est connectée sur un port USB de l’ordinateur
- Nextcloud, Paramétrage “Personnel” -> “Sécurité” -> “Authentification à deux facteurs” cliquer sur “Ajouter une clé de sécurité”
- Valider la prise en charge

- Donner un nom :

Faire la même opération avec les autres clés
Se déconnecter de nextcloud
Sans mot de passe - WebAuthnn
YubiKey 5 Series Une gamme multiprotocole (FIDO2/WebAuthn, U2F, Smart Card, OpenPGP, OTP) qui est le premier choix des entreprises et qui prend en charge la fonction sans mot de passe
ATTENTION: Fonctionne uniquement sur les navigateurs Chrome, Firefox et Edge
Paramètres → Applications → Applications mises en avant

Télécharger et activer l’application Two-Factor WebAuthnn
- La clé “Yubikey 5 NFC” est connectée sur un port USB de l’ordinateur
- Nextcloud, Paramétrage “Personnel” -> “Sécurité” -> “Authentification sans mot de passe” cliquer sur “Ajouter un périphérique WebAuthnn”

- Valider la prise en charge

- Donner un nom :

Faire la même opération avec les autres clés
Se déconnecter de nextcloud
Utilisation connexion sans mot de passe
Ouvrir Nextcloud


Saisir le nom utilisateur puis cliquer sur Se connecter

Ensuite vous aurez le message suivant, cliquer sur “Clé de sécurité”

Firefox linux desktop
ouvrir le lien https du cloud

-> 
Firefox android mobile
Le fonctionnement de la clé NFC est utilisé
Nextcloud Sauvegarde Restauration
Accès boîte de stockage
Créer un accès à la boîte de stockage u326239@u326239.your-storagebox.de via sftp et un jeu de clé ed25519
Générer une paire de clé curve25519-sha256 (ECDH avec Curve25519 et SHA2)
1
ssh-keygen -t ed25519 -o -a 100 -f ~/.ssh/bx11-xoyize.net
Ajouter la clé publique bx11-xoyize.net.pub au fichier .ssh/authorized_keys de la boîte de stockage
Tester la connexion, créer dossier xoyize.net et sortir
1
sftp -P 23 -i ~/.ssh/bx11-xoyize.net u326239@u326239.your-storagebox.de
Première connexion
1
2
3
4
5
6
7
8
The authenticity of host '[u326239.your-storagebox.de]:23 ([2a01:4f8:261:59d3::2]:23)' can't be established.
ED25519 key fingerprint is SHA256:XqONwb1S0zuj5A1CDxpOSuD2hnAArV1A3wKY7Z3sdgM.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[u326239.your-storagebox.de]:23' (ED25519) to the list of known hosts.
Connected to u326239.your-storagebox.de.
sftp> mkdir backup/xoyize.net
sftp> exit
Sauvegarde nextcloud
En mode su dans le dossier /var/www/nextcloud
1
2
sudo -s
cd /var/www/nextcloud
Pour sauvegarder une installation Nextcloud, quatre choses principales
- Le dossier de configuration
- Le dossier de données /srv/nextcloud-data/
- Le dossier thématique
- La base de données
ATTENTION : Utilisateur nextcloud au lieu de www-data pour les dossiers
Créer un dossier pour stocker le mot de passe de la base de données
1
2
mkdir -p /home/yani/.local/share/nextcloud
echo "mot_passe_mysql_nextcloud" > /home/yani/.local/share/nextcloud/dbpassword
Mode maintenance
Le mode maintenance verrouille les sessions des utilisateurs connectés et empêche les nouvelles connexions afin d’éviter les incohérences de vos données. Vous devez exécuter occ comme utilisateur HTTP ou nextcloud
1
sudo -u nextcloud php occ maintenance:mode --on
Renvoie Maintenance mode enabled
Sauvegarde dossiers
Il suffit de copier vos dossiers de configuration, de données et de thème (ou même votre dossier d’installation et de données de Nextcloud) vers un endroit à l’extérieur de votre environnement Nextcloud
1
2
3
4
5
# dossier /var/www/nextcloud
rsync -Aavx --delete --rsync-path='rsync' -e 'ssh -p 23 -i /home/yani/.ssh/bx11-xoyize.net -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' /var/www/nextcloud u326239@u326239.your-storagebox.de:backup/xoyize.net/nextcloud-dirbkp_`date +"%Y%m%d"`/
# nextcloud data
rsync -Aavx --delete --rsync-path='rsync' -e 'ssh -p 23 -i /home/yani/.ssh/bx11-xoyize.net -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' /srv/nextcloud-data/ u326239@u326239.your-storagebox.de:backup/xoyize.net/nextcloud-databkp_`date +"%Y%m%d"`/
Sauvegarde base de données MySql
Pour un support 4 octets MySQL/MariaDB (Enabling MySQL Support 4 octets, nécessaire pour emoji), vous devrez ajouter --default-character-set=utf8mb4
Syntaxe
1
mysqldump --single-transaction --default-character-set=utf8mb4 -h [serveur] -u [nom d'utilisateur] -p[mot de passe] [db_name] > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
Commande
1
2
3
4
5
# base mysql
mysqldump --single-transaction --default-character-set=utf8mb4 -h localhost -unextcloud -p`cat /home/yani/.local/share/nextcloud/dbpassword` nextcloud > /home/yani/.local/share/nextcloud/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
# nextcloud database mariadb
rsync -Aavx --delete --rsync-path='rsync' -e 'ssh -p 23 -i /home/yani/.ssh/bx11-xoyize.net -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null' /home/yani/.local/share/nextcloud/nextcloud-sqlbkp_`date +"%Y%m%d"`.bak u326239@u326239.your-storagebox.de:backup/xoyize.net/nextcloud-databkp_`date +"%Y%m%d"`/
Restauration nextcloud
Restaurer les dossiers
Note : Ce guide suppose que votre sauvegarde précédente est appelée “nextcloud-dirbkp”
Il suffit de copier votre dossier de configuration et de données (ou même votre dossier d’installation et de données Nextcloud) dans votre environnement Nextcloud. Vous pouvez utiliser cette commande:
1
rsync -Aax nextcloud-dirbkp/ nextcloud/
Restaurer la base de données
Attention
Avant de restaurer une sauvegarde, vous devez vous assurer de supprimer toutes les tables de base de données existantes.
La manière la plus facile de le faire est de déposer et de recréer la base de données. SQLite le fait automatiquement.
MySQL est le moteur de base de données recommandé. Pour restaurer MySQL:
1
2
3
mysql -e "DROP DATABASE nextcloud"
mysql -e "DROP USER 'nextcloud'@'localhost';"
mysql -e "CREATE DATABASE nextcloud"
Si vous utilisez UTF8 avec support multioctet (par exemple pour les emojis dans les noms de fichiers), utilisez:
1
2
mysql -e "DROP DATABASE nextcloud"
mysql -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci"
Note Ce guide suppose que votre sauvegarde précédente est appelée «nextcloud-sqlbkp.bak»
MySQL est le moteur de base de données recommandé. Pour restaurer MySQL:
1
mysql -h [serveur] -u [nom d'utilisateur] -p[mot de passe] [db_name]
Synchronisation avec les clients
après la récupération de données
Par défaut, le serveur Nextcloud est considéré comme la source pour les données. Si les données sur le serveur et le client diffèrent, les clients récupèrent par défaut les données sur le serveur.
Si la sauvegarde récupérée est dépassée, l’état des clients peut être plus à jour que l’état du serveur. Dans ce cas également assurez-vous de lancer la commande maintenance:data-fingerprint par la suite. Il modifie la logique de l’algorithme de synchronisation pour essayer de récupérer autant de données que possible. Les fichiers manquants sur le serveur sont donc récupérés auprès des clients et en cas de contenu différent les utilisateurs seront demandés.
Note:
L’utilisation de la maintenance : l’empreinte de données peut provoquer des dialogues de conflit et des difficultés à supprimer des fichiers sur le client. Par conséquent, il est seulement recommandé d’empêcher la perte de données si la sauvegarde a été dépassée.
Si vous exécutez plusieurs serveurs d’applications, vous devrez vous assurer que les fichiers de configuration sont synchronisés entre eux de sorte que l’empreinte de données actualisée est appliquée sur tous les cas.
Scripts Bash Sauvegarde-Restauration Nextcloud
Scripts Bash pour la sauvegarde/restauration de Nextcloud.
Il est basé sur une installation Nextcloud utilisant nginx et PostgreSQL/MariaDB (voir le tutoriel (allemand) Nextcloud auf Ubuntu Server 22.04 LTS mit nginx, PostgreSQL/MariaDB, PHP, Let’s Encrypt, Redis und Fail2ban).
Les scripts peuvent également être utilisés lorsqu’Apache est utilisé comme serveur Web.
Informations générales
Pour une sauvegarde complète de n’importe quelle instance Nextcloud, vous devrez sauvegarder ces éléments :
- Le répertoire de fichiers Nextcloud (généralement /var/www/nextcloud )
- Le répertoire de données de Nextcloud (il est recommandé qu’il ne se trouve pas à la racine Web, donc par exemple /var/nextcloud_data )
- La base de données Nextcloud
- Eventuellement un stockage externe local monté dans Nextcloud
Avec ces scripts, tous ces éléments peuvent être inclus dans une sauvegarde.
Exigences
- tar
- pigz (https://zlib.net/pigz/) lors de l’utilisation de la compression de sauvegarde. S’il n’est pas déjà installé, il peut être installé avec
apt install pigz(Debian/Ubuntu).
S’il n’est pas disponible, vous pouvez utiliser un autre algorithme de compression (par exemple gzip)
Remarques importantes sur l’utilisation des scripts
- Après avoir cloné ou téléchargé les scripts, ceux-ci doivent être configurés en exécutant le script setup.sh(voir ci-dessous).
- Si vous ne souhaitez pas utiliser l’installation automatisée, vous pouvez également utiliser le fichier
NextcloudBackupRestore.conf.samplecomme point de départ. Assurez-vous simplement de renommer le fichier lorsque vous avez terminé (cp NextcloudBackupRestore.conf.sample NextcloudBackupRestore.conf) - Le fichier de configuration
NextcloudBackupRestore.confdoit se trouver dans le même répertoire que les scripts de sauvegarde/restauration. - Les scripts supposent que le répertoire de données de Nextcloud n'est pas un sous-répertoire de l'installation de Nextcloud (répertoire de fichiers). La recommandation générale est que le répertoire de données ne doit pas se trouver quelque part dans le dossier Web de votre serveur Web (généralement /var/www/), mais dans un dossier différent (par exemple /var/nextcloud_data ). Pour plus d’informations, voir ici.
- Cependant, si votre répertoire de données se trouve sous le répertoire de fichiers Nextcloud, vous devrez modifier la configuration du script (fichier
NextcloudBackupRestore.confaprès exécutionsetup.sh) afin que le répertoire de données ne fasse pas partie de la sauvegarde/restauration (sinon, il serait copié deux fois) - Les scripts sauvegardent uniquement le répertoire de données Nextcloud et peuvent sauvegarder un stockage externe local monté dans Nextcloud. Si vous disposez d’un autre stockage externe monté dans Nextcloud (par exemple FTP), ces fichiers doivent être traités séparément.
- Les scripts prennent en charge nginx et Apache comme serveur Web.
- Les scripts prennent en charge MariaDB/MySQL et PostgreSQL comme base de données.
- Vous devriez avoir activé la prise en charge de 4 octets (voir Nextcloud Administration Manual) sur votre base de données Nextcloud. Sinon, lorsque vous n’avez pas activé le support 4 octets, vous devez éditer le script de restauration, afin que la base de données ne soit pas créée avec le support 4 octets activé (variable
dbNoMultibyte). - Les scripts peuvent exclure le répertoire de données Nextcloud de la sauvegarde et de la restauration. ATTENTION : L’exclusion du répertoire de données n’est PAS RECOMMANDÉE car cela laisse la sauvegarde dans un état incohérent et peut entraîner une perte de données !
Installation
- Clonez le dépôt:
git clone https://codeberg.org/DecaTec/Nextcloud-Backup-Restore.git - Définir les autorisations:
chown -R root Nextcloud-Backup-Restorecd Nextcloud-Backup-Restorechmod 700 *.sh
- Appelez le script (interactif) de configuration automatisée (cela créera un fichier
NextcloudBackupRestore.confcontenant la configuration souhaitée):./setup.sh - Important: Vérifiez ce fichier de configuration si tout a été configuré correctement (voir TODO dans les commentaires du fichier de configuration)
- Commencez à utiliser les scripts : voir les sections Sauvegarde et restauration ci-dessous
Gardez à l’esprit que le fichier de configuration NextcloudBackupRestore.conf doit être situé dans le même répertoire que les scripts de sauvegarde/restauration, sinon la configuration ne sera pas trouvée.
Certaines options facultatives ne sont pas configurées à l’aide de setup.sh, mais sont définies sur les valeurs par défaut dans NextcloudBackupRestore.conf. Ce sont les options “dangereuses” qui ne doivent généralement pas être modifiées et qui sont marquées comme ‘OPTIONAL’ dans NextcloudBackupRestore.conf
Sauvegarde
Afin de créer une sauvegarde, appelez simplement le script NextcloudBackup.sh sur votre machine Nextcloud. Si ce script est appelé sans paramètre, la sauvegarde est enregistrée dans un répertoire avec l’horodatage actuel dans votre répertoire de sauvegarde principal : à titre d’exemple, ce serait /media/hdd/nextcloud_backup/20170910_132703. Le script de sauvegarde peut également être appelé avec un paramètre spécifiant le répertoire de sauvegarde principal, par exemple ./NextcloudBackup.sh /media/hdd/nextcloud_backup. Dans ce cas, le répertoire spécifié sera utilisé comme répertoire principal de sauvegarde.
Vous pouvez également appeler ce script par cron. Exemple (à 2h du matin tous les soirs, avec sortie de journal) :
0 2 * * * /path/to/scripts/Nextcloud-Backup-Restore/NextcloudBackup.sh > /path/to/logs/Nextcloud-Backup-$(date +\%Y\%m\%d\%H\%M\%S).log 2>&1
Restauration
Appelez NextcloudRestore.sh afin de restaurer une sauvegarde.
Lorsque ce script est appelé sans paramètres, il répertorie les sauvegardes disponibles pour la restauration.
Afin de restaurer une sauvegarde, appelez ce script avec un paramètre précisant le nom (c’est-à-dire l’horodatage) de la sauvegarde à restaurer. Dans cet exemple, ce serait 20170910_132703. La commande complète pour une restauration serait ./NextcloudRestore.sh 20170910_132703.
Vous pouvez également spécifier le répertoire de sauvegarde principal avec un deuxième paramètre, par exemple ./NextcloudRestore.sh 20170910_132703 /media/hdd/nextcloud_backup.
Mise à jour des scripts
Après avoir mis à jour les scripts vers une version plus récente, il est recommandé d’exécuter (setup.sh) à nouveau le script de configuration afin de s’assurer que les dernières modifications sont appliquées au fichier de configuration NextcloudBackupRestore.conf.
Gardez à l’esprit qu’une version déjà existante de NextcloudBackupRestore.conf sera écrasée au cours de cette procédure.
Il est également recommandé d’exécuter à nouveau le script de configuration si vous souhaitez modifier certains paramètres de base de sauvegarde/restauration (par exemple activer ou désactiver la compression).
Authentification double facteur
Activer application (seul un administrateur est autorisé)

Les opérations suivantse sont à effectuer sur chaque utilisateur
Connexion utlisateur Personnel –> Sécurité

Il faut rentrer le code secret ou le QR code et vérifier

Générer des codes de récupération
Maintenance
- Manuel utilisateur de Nextcloud
- Nextcloud Server Administration Guide
- Configuration et administration avec le script OCC
IPV6 mal identifié
Il y a quelques erreurs concernant votre configuration. Votre adresse réseau a été identifiée comme « 2a01:e0a:9c8:2080:e4df:3427:584e:b684 » et elle est bridée par le mécanisme anti-intrusion ce qui ralentit la performance de certaines requêtes. Si cette adresse réseau n’est pas la vôtre, cela peut signifier qu’il y a une erreur de configuration d’un proxy.
Il faut activer l’application Brute-force-settings
Puis dans “Paramètres d’administration” , “Sécurité”

Base de données, index manquants
La base de données a quelques index manquants. L’ajout d’index dans de grandes tables peut prendre un certain temps. Elles ne sont donc pas ajoutées automatiquement. En exécutant “occ db:add-missing-indices”, ces index manquants pourront être ajoutés manuellement pendant que l’instance continue de tourner. Une fois les index ajoutés, les requêtes sur ces tables sont généralement beaucoup plus rapides. Index optionnels manquants « mail_messages_strucanalyz_idx » dans la table « mail_messages ». Index optionnels manquants « mail_class_creat_idx » dans la table « mail_classifiers ». Index optionnels manquants « mail_acc_prov_idx » dans la table « mail_accounts ». Index optionnels manquants « mail_alias_accid_idx » dans la table « mail_aliases ».
Procédure pour la correction
1
2
3
sudo -s
cd /var/www/nextcloud
sudo -u nextcloud /usr/bin/php8.2 occ db:add-missing-indices
Résultat
1
2
3
4
5
6
7
8
Adding additional mail_messages_strucanalyz_idx index to the oc_mail_messages table, this can take some time...
oc_mail_messages table updated successfully.
Adding additional mail_class_creat_idx index to the oc_mail_classifiers table, this can take some time...
oc_mail_classifiers table updated successfully.
Adding additional mail_acc_prov_idx index to the oc_mail_accounts table, this can take some time...
oc_mail_accounts table updated successfully.
Adding additional mail_alias_accid_idx index to the oc_mail_aliases table, this can take some time...
oc_mail_aliases table updated successfully.
Ouvrir Nextcloud, Administration → Vue d’ensemble
Intégrité des fichiers
1
2
3
4
5
6
7
8
9
10
11
12
13
Technical information
=====================
The following list covers which files have failed the integrity check. Please read
the previous linked documentation to learn more about the errors and how to fix
them.
Results
=======
- core
- EXTRA_FILE
- nextcloud.log
[...]
Supprimer les fichiers nextcloud.log et rescanner
Fichiers absents après mise à jour
Il arrive parfois que les fichiers n’apparaissent pas après une mise à niveau . Une nouvelle analyse des fichiers peut aider
1
2
3
sudo -u www-data php console.php files:scan --all
# si nextcloud propriétaire
sudo -u nextcloud php console.php files:scan --all
Parfois, Nextcloud peut rester bloqué lors d’une mise à niveau si le processus de mise à niveau basé sur le Web est utilisé. Cela est généralement dû au fait que le processus prend trop de temps et rencontre un délai d’attente PHP.
Arrêtez le processus de mise à niveau de cette façon :
1
sudo -u www-data php occ maintenance:mode --off
Démarrez ensuite le processus manuel :
1
sudo -u www-data php occ upgrade
Si cela ne fonctionne pas correctement, essayez la fonction de réparation :
1
sudo -u www-data php occ maintenance:repair
Entretien de Nextcloud (corbeille, PHP et cache)
En mode sudo : sudo -s
Vider la corbeille
Il peut arriver, lorsque la corbeille devient très chargée, qu’il ne soit plus possible de la vider via l’interface graphique. Dans ce cas-ci, il est recommandé d’utiliser la ligne de commande pour effectuer une vidange manuelle. De plus, cette méthode permet d’accomplir le travail pour plusieurs comptes à la fois, ou même pour l’ensemble de l’installation.
Premièrement, on va se positionner dans le répertoire d’installation de Nextcloud, généralement /var/www/nextcloud
1
cd /var/www/nextcloud
Si votre installation est native, l’utilisateur sera www-data. Si, par contre, vous utilisez Yunohost, votre utilisateur est nextcloud, car il crée des utilisateurs pour chaque application.
1
nc_user=nextcloud # changer ici au besoin
Nous allons exécuter la commande suivante pour nettoyer le système de fichiers et la corbeille
1
sudo -u ${nc_user} php occ trashbin:cleanup --all-users
Limiter la durée de rétention des fichiers
On peut limiter la durée de rétention des fichiers. Pour ce faire, il faut modifier le fichier /var/www/nextcloud/config/config.php
À la fin du fichier, après la dernière ligne de paramètres, ajouter la ligne suivante:
1
'trashbin_retention_obligation' => '30, 35',
Maintenance automatique
Nextcloud inclus une routine PHP pour effectuer des tâches de maintenance automatique. Nous pouvons augmenter la fréquence d’exécution en ajoutant cette ligne de commande à la table de CRON de l’utilisateur root. Pour modifier, utiliser cette commande:
1
sudo crontab -u ${nc_user} -e
Ajouter la ligne suivante:
1
*/15 * * * * php -f /var/www/nextcloud/cron.php
Nettoyer le cache des fichiers
Pour nettoyer le cache des fichiers, la commande est similaire à celle utilisée précédemment pour vider la corbeille
1
2
sudo -u ${nc_user} php occ files:scan --all
sudo -u ${nc_user} php occ files:cleanup
Avertissements et Erreurs de mise à jour
Passage Nextcloud Hub 9 (30.0.0) septembre 2024
1
2
3
4
5
6
7
8
9
10
Detected some missing optional indices. Occasionally new indices are added (by Nextcloud or installed applications) to improve database performance. Adding indices can sometimes take awhile and temporarily hurt performance so this is not done automatically during upgrades. Once the indices are added, queries to those tables should be faster. Use the command `occ db:add-missing-indices` to add them. Index manquants : "fs_name_hash" in table "filecache". Pour plus d’information, voir la documentation ↗.
sudo -u nextcloud php occ maintenance:mode --on # Maintenance mode enabled
sudo -u nextcloud php occ db:add-missing-indices
sudo -u nextcloud php occ maintenance:mode --off # Maintenance disabled
---
One or more mimetype migrations are available. Occasionally new mimetypes are added to better handle certain file types. Migrating the mimetypes take a long time on larger instances so this is not done automatically during upgrades. Use the command `occ maintenance:repair --include-expensive` to perform the migrations.
sudo -u nextcloud php occ maintenance:repair --include-expensive
BUG NON RESOLU le 20/09/2024
1
2
3
4
5
6
7
8
9
10
11
12
13
14
An exception occured while running the setup check: ValueError: The arguments array must contain 3 items, 1 given in /var/www/nextcloud/lib/private/L10N/L10NString.php:68 Stack trace:
#0 /var/www/nextcloud/lib/private/L10N/L10NString.php(68): vsprintf()
#1 /var/www/nextcloud/lib/private/L10N/L10N.php(107): OC\L10N\L10NString->__toString()
#2 /var/www/nextcloud/lib/private/L10N/LazyL10N.php(38): OC\L10N\L10N->n()
#3 /var/www/nextcloud/apps/user_ldap/lib/SetupChecks/LdapConnection.php(87): OC\L10N\LazyL10N->n()
#4 /var/www/nextcloud/lib/private/SetupCheck/SetupCheckManager.php(34): OCA\User_LDAP\SetupChecks\LdapConnection->run()
#5 /var/www/nextcloud/apps/settings/lib/Controller/CheckSetupController.php(147): OC\SetupCheck\SetupCheckManager->runAll()
#6 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(208): OCA\Settings\Controller\CheckSetupController->check()
#7 /var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php(114): OC\AppFramework\Http\Dispatcher->executeController()
#8 /var/www/nextcloud/lib/private/AppFramework/App.php(161): OC\AppFramework\Http\Dispatcher->dispatch()
#9 /var/www/nextcloud/lib/private/Route/Router.php(302): OC\AppFramework\App::main()
#10 /var/www/nextcloud/lib/base.php(1001): OC\Route\Router->match()
#11 /var/www/nextcloud/index.php(24): OC::handleRequest()
#12 {main}
Le(s) lien(s)
Passage Nextcloud Hub 9 (30.0.2) novembre 2024
Avertissement sur un problème de cache
Le module PHP OPcache n’est pas correctement configuré. Le tampon mémoire des chaînes internes OPcache est presque plein. Pour vous assurer que les chaînes répétitives peuvent être mise en cache, il est recommandé de définir la variable “opcache.interned_strings_buffer” de votre fichier de configuration PHP à une valeur supérieure à “16”
Correction dans le fichier /etc/php/8.4/fpm/pool.d/nextcloud.conf
php_value[opcache.interned_strings_buffer]=256
Relancer fpm : sudo systemctl restart php8.4-fpm
Upgrade HUB 9 vers HUB 10
1
2
3
4
sudo -s
cd /var/www/nextcloud/
sudo -u nextcloud php occ maintenance:repair --include-expensive
sudo -u nextcloud php occ db:add-missing-indices
Après les opérations de mainenance

Passer à 512 dans le fichier /etc/php/8.4/fpm/pool.d/nextcloud.conf
1
php_value[opcache.memory_consumption]=512
Recharger le service php-fpm
1
systemctl reload php8.4-fpm
Upgrade HUB 25 Autumn
Version:Nextcloud Hub 25 Autumn (32.0.1)
Mise à jour 27/10/2025
Avertissements de sécurité & configuration
Il est important pour la sécurité et la performance de votre instance que celle-ci soit correctement configurée. Afin de vous aider, votre instance Nextcloud effectue des vérifications automatiques. Pour de plus amples informations, veuillez consulter la documentation liée.
Il y a quelques erreurs concernant votre configuration.
AppAPI deploy daemon
AppAPI default deploy daemon is not set. Please register a default deploy daemon in the settings to install External Apps (Ex-Apps).
Migrations de type MIME disponibles
Une ou plusieurs migrations de types MIME sont disponibles. De nouveaux types MIME sont parfois ajoutés pour mieux gérer certains types de fichiers. La migration des types MIME prend beaucoup de temps sur les instances plus volumineuses, elle n’est donc pas effectuée automatiquement lors des mises à niveau. Utilisez la commande occ maintenance:repair --include-expensive pour effectuer les migrations.
sudo -u nextcloud php occ maintenance:repair --include-expensive
Indices manquants de la base de données
Des indices facultatifs manquants ont été détectés. De nouveaux indices sont parfois ajoutés (par Nextcloud ou les applications installées) pour améliorer les performances de la base de données. L’ajout d’indices peut parfois prendre un certain temps et nuire temporairement aux performances. Cette opération n’est donc pas effectuée automatiquement lors des mises à niveau. Une fois les indices ajoutés, les requêtes sur ces tables devraient être plus rapides. Utilisez la commande occ db:add-missing-indices pour les ajouter. Index manquants : “properties_name_path_user” dans le tableau “properties”, “calobjects_by_uid_index” dans le tableau “calendarobjects”
sudo -u nextcloud php occ db:add-missing-indices
Mises à jour Nextcloud
Interface
Cliquer sur Ouvrir l’interface de mise à jour


Cette dernière action peut occasionner une erreur
Si aucune erreur

Retour sur la page d’accueil à la fin de la mise à jour
Si erreur
Il faut se rendre dans le dossier /var/www/nextcloud
Puis basculer en root : sudo -s
Exécuter la commande : sudo -u nextcloud php occ upgrade
Pour un résultat similaire à ce qui suit

Manuellement
Si vous effectuez une mise à niveau à partir d’une version majeure précédente, veuillez d’abord consulter les modifications critiques (en)
Commencez toujours par effectuer une nouvelle sauvegarde et en désactivant toutes les applications tierces.
1 - Sauvegardez vos fichiers Nextcloud Server existants ,votre base de données, votre répertoire de données et config.php. (Voir Backup , pour les informations de restauration, voir Restoring backup )
2 - Téléchargez et décompressez la dernière version de Nextcloud Server (fichier d’archive) depuis https://download.nextcloud.com/server/releases/ dans un répertoire vide en dehors de votre installation actuelle.
Pour décompresser votre nouvelle archive tar, exécutez : unzip nextcloud-[version].zip ou tar -xjf nextcloud-[version].tar.bz2
1
2
3
4
mkdir -p ~/temp
cd ~/temp
wget https://download.nextcloud.com/server/releases/latest-28.tar.bz2
tar -xjf latest-28.tar.bz2
3 - Arrêtez votre serveur Web.
1
sudo systemctl stop nginx
4 - Si vous exécutez une tâche cron pour la gestion interne de nextcloud, désactivez-la en commentant l’entrée dans le fichier crontab.(Le proriétaire du dossier est www-data ou nextcloud (ls -la /var/www)
1
2
3
4
#sudo crontab -u www-data -e
sudo crontab -u nextcloud -e
# commenter
#*/5 * * * * php -f /var/www/nextcloud/cron.php
(Mettez un # au début de la ligne correspondante.)
5 - Renommez votre répertoire Nextcloud actuel, par exemple nextcloud-old.
1
sudo mv /var/www/nextcloud /var/www/nextcloud-old
6 - La décompression de la nouvelle archive crée un nouveau répertoire nextcloud rempli avec vos nouveaux fichiers serveur. Déplacez ce répertoire et son contenu vers l’emplacement d’origine de votre ancien serveur. Par exemple /var/www/, pour qu’une fois de plus vous ayez /var/www/nextcloud
1
sudo mv ~/temp/nextcloud /var/www/
7 - Copiez le config/config.phpfichier de votre ancien répertoire Nextcloud vers votre nouveau répertoire Nextcloud.
1
sudo cp /var/www/nextcloud-old/config/config.php /var/www/nextcloud/config/
8 - Si vous conservez votre data/répertoire dans votre nextcloud/répertoire, copiez-le de votre ancienne version de Nextcloud vers votre nouveau nextcloud/. Si vous le conservez à l’extérieur nextcloud/, vous n’avez rien à faire avec, car son emplacement est configuré dans votre fichier d’origine config.phpet aucune des étapes de mise à niveau ne le touche.
9 - Si vous utilisez une application tierce, il se peut qu’elle ne soit pas toujours disponible dans votre instance Nextcloud mise à niveau/nouvelle. Pour vérifier cela, comparez une liste des applications du nouveau nextcloud/apps/dossier à une liste des applications de votre dossier sauvegardé/ancien nextcloud/apps/. Si vous trouvez des applications tierces dans l’ancien dossier qui doivent se trouver dans l’instance nouvelle/mise à niveau, copiez-les simplement et assurez-vous que les autorisations sont configurées comme indiqué ci-dessous.
10 - Si vous avez des dossiers d’applications supplémentaires comme par exemple nextcloud/apps-extras ou nextcloud/apps-external, assurez-vous de les transférer/conserver également dans le dossier mis à niveau.
11 - Si vous utilisez un thème tiers, assurez-vous de le copier de votre themes/répertoire vers votre nouveau. Il est possible que vous deviez y apporter quelques modifications après la mise à niveau.
12 - Ajustez la propriété et les autorisations des fichiers :
1
2
3
4
5
6
7
8
# en mode su
sudo -s
# si propriétaire www-data
chown www-data:www-data -R /var/www/nextcloud
# si propriétaire nextcloud
chown nextcloud:www-data -R /var/www/nextcloud
find /var/www/nextcloud/ -type d -exec chmod 750 {} \;
find /var/www/nextcloud/ -type f -exec chmod 640 {} \;
13 - Redémarrez votre serveur Web.
1
sudo systemctl start nginx
14 - Lancez maintenant la mise à niveau depuis la ligne de commande en utilisant occ
1
2
3
4
5
6
sudo -s
cd /var/www/nextcloud
# si propriétaire www-data
sudo -u www-data php occ upgrade
# si propriétaire nextcloud
sudo -u nextcloud php occ upgrade
(!) cela DOIT être exécuté à partir de votre répertoire d’installation nextcloud
15 - L’opération de mise à niveau prend de quelques minutes à quelques heures, selon la taille de votre installation. Une fois l’opération terminée, vous verrez un message de réussite ou un message d’erreur qui vous indiquera où l’erreur s’est produite.
16 - Réactivez la tâche cron nextcloud. (Voir l’étape 4 ci-dessus.)
1
2
3
4
# si propriétaire www-data
sudo crontab -u www-data -e
# si propriétaire nextcloud
sudo crontab -u nextcloud -e
(Supprimez le # au début de la ligne correspondante dans le fichier crontab.)
Connectez-vous
- jetez un œil au bas de votre page d’administration pour vérifier le numéro de version.
- Vérifiez vos autres paramètres pour vous assurer qu’ils sont corrects.
- Accédez à la page Applications et examinez les applications principales pour vous assurer que les bonnes sont activées.
- Réactivez vos applications tierces.
Réglages PHP-FPM
Des erreurs “504 Time-out” liés à PHP dans l’utilisation de nextcloud
Test, modification de php8.4-fpm.conf
On passe de dynamic à ondemand, fichier /etc/php/8.4/fpm/pool.d/nextcloud-fpm.conf
1
2
3
4
5
6
pm = ondemand
pm.max_children = 100
pm.start_servers = 32
pm.min_spare_servers = 16
pm.max_spare_servers = 32
pm.max_requests = 200



















