Création d’un CHATONS – 3 / 5 : NextCloud server
Tous les pré-requis étant remplis, nous pouvons enfin installer le cœur de métier de notre CHATONS ; à savoir l’installation à proprement parler de l’applicatif NextCloud tant attendu !!
Pour rappel, tout ceci s’appuie sur le manuel de référence fourni par NextCloud : Installation and server configuration [en]
Installation sur le serveur www
Nous allons télécharger le script PHP pour l’installation de NextCloud server ici :
https://nextcloud.com/install/
Plus précisément, plus en bas de page :
Download server –> Community projects –> Web installer –> Get the web installer
Dans cet exemple rédigé fin 2025, nous utilisons la version Hub 25 Autumn (32.0.1).
Dossier de stockage des données
Pour être cohérent, nous créons tout d’abord le répertoire dédié au stockage de données au sein de l’aire RAID5 précédemment crée, à savoir dans /home :
sudo mkdir /home/_nextcloud
sudo chown -R manager:www-data /home/_nextcloud
sudo chmod -R ug+rwX /home/_nextcloud
sudo chmod -R o-rwX /home/_nextcloud
Script d’installation NextCloud
Nous allons télécharger le script d’install dans le répertoire du vhost via le lien indiqué :
cd /var/www/vhosts/cloud.landinux.lan &&\
wget 'https://download.nextcloud.com/server/installer/setup-nextcloud.php'
Enfin on peut le lancer via son navigateur, et découvrir le wizard :
http://cloud.landinux.lan/setup-nextcloud.php



Il nous est ensuite demandé de renseigner :
- Des identifiants d’administration à conserver précieusement. Éviter le trop traditionnel « admin »
- L’emplacement du dossier pour le stockage des données
- La configuration pour la connection à la base de donnée, en l’occurrence PostgreSQL

Les applis principales sont proposées, installons les toutes (même si NextCloud Office peut poser des problèmes …).


Enfin NextCloud est installé pour de bon, pour de vrai !

Encore des ajustements …
… réglages … configurations
En se rendant dans les « Paramètres d’administration », outre de remarquer un nombre assez important de réglages divers, nous sommes alertés de diverses configurations manquantes :

Nous allons les traiter, dans le désordre, sinon ce n’est pas assez amusant !
Config php.ini
La limite de mémoire PHP est inférieure à la valeur recommandée de 512 Mo.
La mémoire à allouer dépend des usages, et surtout de laquantité de RAM disponible sur le serveur. Nous disposons de 4Go, nous allons voir en allouant 1Go à PHP-FPM …
Ceci sera pour nous l’occasion de modifier quelques variable dans /etc/php/8.4/fpm/php.ini :
memory_limit = 1024M
upload_max_filesize = 2048M
max_file_uploads = 30
Appliquer les changements :
sudo service php8.4-fpm restart
HTTPS/SSL
Accès non sécurisé au site via HTTP. Il est fortement conseillé de configurer votre serveur pour exiger HTTPS à la place
Ce point sera réglé au chapitre suivant, lors de la mise en production.
À noter qu’excepté les certificats SSL auto-signés, il n’est pas prévu de moyens permettant de générer un certificat valide sur un nom de domaine .LAN n’étant pas basé sur un TLS (Top Levels Domains), en l’occurrence landinux.lan dans notre exemple :
Indicatif téléphonique par défaut / Réglages régionaux
Votre installation n’a pas de préfixe de région par défaut.
Ajouter ces lignes au fichier /var/www/vhosts/cloud.landinux.lan/config/config.php :
'default_phone_region' => 'FR',
'default_language' => 'fr',
'default_locale' => 'fr',
'force_locale' => 'fr',
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 …
Ici nous découvrons l’utilitaire occ qui permet d’effectuer un grand nombre d’opération en ligne de commende (interface CLI).
Il peut être nécessaire de récupérer le php.ini utilisé pour php-fpm :
sudo cp /etc/php/8.4/cli/php.ini /etc/php/8.4/cli/php.ini.bck sudo cp -f /etc/php/8.4/fpm/php.ini /etc/php/8.4/cli/
Donc pour appliquer les optimisations des index de la base de donnée MariaDB/MySQL :
sudo -u www-data php8.4 /var/www/vhosts/cloud.landinux.org/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-indicespour les ajouter. Index manquants : …
Exécuter l’utilitaire occ de cette façon :
sudo -u www-data php8.4 /var/www/vhosts/cloud.landinux.org/occ db:add-missing-indices
MemCache
Pas de mémoire cache configurée.
sudo apt install php8.4-memcache
sudo service php8.4-fpm restart
PHP-OPcache
sudo apt install php8.4-opcache
sudo service php8.4-fpm restart
PHP-Imagick
Le module php-imagick n’a aucun support SVG dans cette instance.
sudo apt install libmagickcore-6.q16-6 libmagickcore-6.q16-6-extra
sudo service php8.4-fpm restart
Modules PHP
… gmp requis pour le stockage SFTP et recommandé pour les performances de WebAuthn
sudo apt install php8.4-gmp
sudo service php8.4-fpm restart
Memcache
Aucun cache mémoire n’a été configuré. Pour améliorer les performances, veuillez configurer un memcache, si disponible.
Pour y remédier, il nous faut mettre en lace les caches APcu :
sudo apt install php8.4-apcu
Par la même occasion, nous configurons aussi opcache.jit dans /etc/php/8.4/fpm/php.ini :
opcache.jit = 1255
opcache.jit_buffer_size = 256M
apc.enable_cli=1
Et toujours et encore redémarrer le service php8.4-fpm.
Enfin, dans la conf de Nexcloud /var/www/vhosts/cloud.landinux.lan/config/config.php , nous ajoutons cette ligne :
'memcache.local' => '\OC\Memcache\APCu',
Verrouillage de fichiers transactionnels
Nous suivrons cet article de it-connect.fr Nextcloud : activer et configurer le cache Redis , celui-ci étant à destination de le distribution CentOS, nous changerons l’utilitaire de paquets yum pour celui de Debian : apt.
apt install redis redis-server redis-tools php8.4-redis
Nous vérifions que l’extension redis est bien activé dans /etc/php/8.4/fpm/conf.d/25-redis.ini :
; enable redis extension
extension=redis
Nous vérifions que le service redis-server est fonctionnel, puis l’activons si nécessaire :
sudo systemctl status redis-server
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; preset: enabled)
Active: active (running) since Wed 2025-11-19 18:47:39 CET; 3min 3s ago
[...]
systemctl enable redis-server
Afin de s’assurer que tout cela soit bien pris en compte, nous relançons le service php8.4-fpm :
sudo service php8.4-fpm restart
Enfin nous allons ajouter ceci à la fin du fichier du fichier de config de Nextcloud /var/www/vhosts/cloud.landinux.lan/config/config.php pour activer cette optimisation :
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
'password' => '',
),
Test d’e-mail
Dans un premier temps, nous configurons les envois d’e-mail via un relay SMTP, nous aborderons l’utilisation d’un serveur Postfix local ultérieurement (ou pas).
Au préalable il faut renseigner une adresse mail d’expéditeur dans les paramètre personnels de l’administrateur.
Menu de gauche, aller dans « Paramètres de base », et configurer les paramètres mails dont vous disposez auprès de votre fournisseur de boites e-mail :

En dernier lieu effectuer un test d’envoi, vérifier la bonne réception sur l’adresse renseignée.
Début de la fenêtre de maintenance
Début de la fenêtre de maintenance
Le serveur n’a pas aucune heure de début de fenêtre de maintenance configurée. Cela signifie que les tâches quotidiennes d’arrière-plan, gourmandes en ressources, seront également exécutées pendant votre période d’utilisation principale …
Ajouter cette ligne dans la config de Nextcloud /var/www/vhosts/cloud.landinux.lan/config/config.php :
'maintenance_window_start' => 1,
Dernière exécution du cron
Quelque chose s’est mal passé lors de l’exécution de la dernière tâche de fond Il y a 14 heures. Check the background job settings.
les cron sur Linux peut se traduire en tâches planifiées. Certaines opérations doivent être effectuées régulièrement pour assurer une expérience utilisateur la plus fluide possible.
Nous nous référons à la documentation officielle au chapitre Background jobs :: Cron jobs :
Pour éditer la crontab en tant qu’utilisateur www-data :
crontab -u www-data -e
Et y ajouter cette ligne :
*/5 * * * * /usr/bin/php -f /var/www/vhosts/cloud.landinux.org/cron.php
Ensuite aller dans les « Paramètres de base » (menu de gauche) et sélectionner la 3ème option : Cron (Recommandé).
Infrastructure de haute performance
Aucun serveur haute performance configuré – Utiliser Nextcloud Talk sans serveur haute performance n’est possible que pour les appels limités à quelques personnes (maximum 2-3 participants) …
La chose est à priorie hardie, un package Debian est disponible, mais ne fera pas forcément l’affaire :
apt-cache search nextcloud-spreed-signaling
nextcloud-spreed-signaling - Standalone signaling server for Nextcloud Talk (program)
Ce point ne sera pas traité pour l’instant.
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).
Apps Nextcloud
En plus des apps proposées par défaut (Calendriers, Contacts, Notes, Talk, … )La communauté Nextcloud propose de nombreuses applications proposant des fonctionnalités variées répondant à divers besoins listées ici : apps.nextcloud.com.
Il est fortement conseillé de se limiter aux apps testées et validées !
À noter que le gestionnaires d’apps n’est pas forcément très ergonomique, il est difficile d’y trouver certaines apps, l’outil de recherche n’est pas très performant, etc …
Il peut être plus pratique de les gérer en ligne de commande via occ : doc Nextcloud : Using the occ command :: Apps commands
Enfin, parfois certaines apps ne résistent pas très bien aux mises-à-jour du cœur Nextcloud, ainsi il convient de vérifier cela avant de se lancer là dedans …
Les essentiels
Client Push
Permet de propager plus rapidement sur les terminaux clients les modifications effectuées sur les contacts (CarDAV) et agendas (CalDAV)
Preview Generator
Permet de fluidifier l’affichage des photos/image en pré-générant les vignettes (thumbnails).
Comme indiqué sur la page www de l’app, effectuer une première génération qui peut être (très) longue :
sudo -u www-data php8.4 /var/www/vhosts/cloud.landinux.org/occ preview:generate-all -vvv
Puis ajouter dans la crontab de l’utilisateur www-data, dans ce cas toutes les heures :
15 * * * * /usr/bin/php8.4 /var/www/vhosts/cloud.landinux.org/occ preview:pre-generate
Maps
Permet d’afficher des cartes Openstreetmap et d’y inclure : favoris, contacts, photos, …
GpxPod
Permet d’afficher et analyser des traces GPX sur fonds de cartes Openstreetmap. Très utile pour les randonneurs.
EPUB Viewer
Comme son nom l’indique, permet de lire des livres numériques au format EPUB, CBZ et PDF.
Forum
Échange de discussions. Après installation de l’app, executer ceci :
sudo -u www-data php8.4 /var/www/vhosts/cloud.landinux.org/occ forum:repair-seeds
Passwords
Permet de stocker des mots-de-passes en les chiffrant.
Secrets
Permet de partager de façon sécurisée des messages via lien.
Brute-force settings
Comme son nom l’indique, permet d’éviter les attaques de type brute-force (sécurité).
Suspicious Login
Permet d’éviter certaines attaques … (sécurité).
Log Cleaner
Permet de vider/nettoyer les journaux.
Impersonate
Permet de changer d’utilisateur à partir d’un compte admin.
Collabora Online vs Only-Office
…
Connexion à l’annuaire LDAP
Nous nous baserons sur une installation déjà fonctionnelle, ainsi que bien sûr la doc officielle fournie par docs.nextcloud.com : User authentication with LDAP.
Ou encore ce guide sur GitHUB : user_auth_ldap
Nous nous assurons de la présence du module php-ldap :
dpkg --get-selections | grep php8.4-ldap
php8.4-ldap install
Nous nous connectons en administrateur sur l’interface http://cloud.landinux.lan/ :

Aller dans la barre latérale : Administration –> Integration LDAP/AD et renseigner les paramètres :
- Serveur : localhost, « Détecter le port » –> 389
- admin DN : cn=admin,dc=landinux,dc=org
- Mot de passe admin
- DN de base : dc=landinux,dc=org
On remarquera le petit voyant en bas se mettre au vert : Configuration OK

Filtrer les utilisateurs de la classe ldap InetOrgPerson.
Vérifier si les utilisateurs « remontent » avec le bouton en bas « Vérifier les paramètres et compter les utilisateurs »

Renseigner Nom d’utilisateur LDAP/AD + autres attributs : uid

Se rendre dans l’administration des utilisateurs.
Les utilisateurs crées dans la base LDAP apparaissent : ça semble fonctionner !

Nous allons tout de même vérifier (via un autre navigateur) que les identifiants LDAP fonctionnent :

La première connexion est un peu longue, c’est normal, il faut générer un nouveau profil utilisateur …
Et nous voilà ravis d’accéder au dashboard de notre instance NextCloud :

Pour aller plus loin …
Permettre aux utilisateurs de changer certaines informations personnelles
Notamment le mot-de-passe
Gestion des groupes
Applis NextCloud
La suite … 4/5 : Mise en production
À présent que l’applicatif NextCloud fonctionne « pile-poil », nous allons pouvoir le mettre en production, accessible à tous via la grande toile d’Internet …

