Skip to content
Landinux
  • Accueil
  • Agenda
  • L’association
    • Qui sommes nous ?
    • Contact / Accès
    • Adhérer
  • Docs
    • Docs Utilisateurs
      • Install-party : Linux pour toutes et tous
        • Préparer sa venue pour l’install party
      • Conférence : Libérez vos ordinateurs
      • Initiation : Utiliser GNU/Linux Ubuntu
      • Sur la route des Logiciels Libres
    • Docs Administrateurs
      • Trucs & Astuces
      • Le CHATONS de Landinux
  • Home
  • /
  • Création d’un CHATONS – 3 / 5 : NextCloud server

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]

Table des matières

Toggle
  • Installation sur le serveur www
    • Dossier de stockage des données
    • Script d’installation NextCloud
  • Encore des ajustements …
    • Config php.ini
    • HTTPS/SSL
    • Indicatif téléphonique par défaut / Réglages régionaux
    • Migrations de type MIME disponibles
    • Indices manquants de la base de données
    • MemCache
    • PHP-OPcache
    • PHP-Imagick
    • Modules PHP
    • Memcache
    • Verrouillage de fichiers transactionnels
    • Test d’e-mail
    • Dernière exécution du cron
    • Infrastructure de haute performance
    • AppAPI deploy daemon
  • Apps Nextcloud
    • Les essentiels
      • Client Push
      • Preview Generator
      • Maps
      • GpxPod
      • EPUB Viewer
      • Forum
      • Passwords
      • Secrets
      • Brute-force settings
      • Suspicious Login
      • Log Cleaner
      • Impersonate
    • Collabora Online vs Only-Office
  • Connexion à l’annuaire LDAP
  • Pour aller plus loin …
    • Permettre aux utilisateurs de changer certaines informations personnelles
    • Gestion des groupes
    • Applis NextCloud
  • La suite … 4/5 : Mise en production

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-indices pour 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 …

Création d’un CHATONS – 4/5 : Mise en production –>

Agenda

  • Pas d'actions prévues

Actualités

  • Du libre à la carte — Un nouveau plug-in MapLibre et l’importance de financer le logiciel libre
  • Intervention en collège
  • Situation Landinux

Copyleft Landinux 2025