l’Almanet doLys Gnu/Linux – Open Source – Entreprises › Forums › L’almanet doLys Open Source › Tuto d’installation et d’optimisation de Nextcloud avec Nextcloud Office (Collabora Online) sur YunoHost
- This topic is empty.
- AuteurArticles
- mai 14, 2025 à 6:33 pm #12958
Je vais vous proposer ici un guide complet pour installer et optimiser Nextcloud avec Nextcloud Office (basé sur Collabora Online) sur un serveur YunoHost disposant de ressources limitées. Ce tuto est particulièrement adapté pour les petits VPS ou les serveurs à domicile ayant une configuration modeste (1 CPU, 2 Go de RAM).
Pour bien comprendre ce que nous allons faire :
- YunoHost est un système de gestion de serveur qui facilite l’auto-hébergement de nombreux services web. C’est la fondation sur laquelle nous allons tout installer.
- Nextcloud est une plateforme complète de stockage et de collaboration, comparable à Dropbox ou Google Drive, mais en version auto-hébergée et gratuite. Vous pourrez stocker vos fichiers, les synchroniser et collaborer dessus.
- Nextcloud Office est une application intégrée à Nextcloud qui permet d’éditer des documents bureautiques (textes, tableurs, présentations) directement dans votre navigateur, comme le fait Google Docs. C’est l’équivalent auto-hébergé et gratuit de Google Sheets/Docs/Slides.
- Collabora est une application YunoHost séparée qui fonctionne comme serveur pour Nextcloud Office. C’est elle qui gère le traitement des documents en coulisses.
Nextcloud possède d’autres applications intéressantes comme Deck (un équivalent de Trello pour la gestion de projets), Notes, Talk (vidéoconférence), etc. En suivant ce guide, vous pourrez créer votre propre écosystème collaboratif complet, hébergé chez vous et totalement sous votre contrôle !
Lisez tranquillement le tuto pour comprendre et choisir vos optimisations.
A – Prérequis et considérations initiales
Configuration minimale
- CPU : 1 cœur (virtual core)
- RAM : 2 Go minimum
- Stockage : Au moins 20 Go d’espace disque (mais plus c’est mieux !)
- YunoHost installé et fonctionnel (version 11+ recommandée)
- Un nom de domaine configuré (dans notre exemple : exemple.fr)
Avant de commencer
- Cette configuration permettra de gérer 3 à 5 utilisateurs simultanés maximum
- Prévoyez des sauvegardes régulières de votre système et de vos données
- Patience, l’installation peut prendre du temps sur une machine peu puissante
- Un sous-domaine dédié pour Office (office.exemple.fr) sera nécessaire
Comment se connecter en SSH à votre serveur YunoHost
Pour les opérations en ligne de commande, vous devrez vous connecter en SSH :
# Sous Linux/Mac : ssh admin@votre-serveur-yunohost # ou ssh admin@votre-ip-serveur # Sous Windows : utilisez PuTTY ou Windows Terminal # Nom d'hôte : votre-serveur-yunohost ou votre-ip-serveur # Utilisateur : admin
Le mot de passe est celui que vous avez défini lors de l’installation de YunoHost.
B – Installation de Nextcloud via YunoHost (GUI)
La méthode la plus simple est d’utiliser l’interface graphique de YunoHost :
- Connectez-vous à l’interface d’administration de YunoHost
- Allez dans « Applications » > « Installer »
- Recherchez « Nextcloud » et cliquez sur Installer
- Configurez l’installation
- Choisissez votre domaine principal (ex: exemple.fr)
- Créez éventuellement un sous-domaine (ex: cloud.exemple.fr)
- Choisissez un chemin d’installation (ex: /nextcloud)
- Sélectionnez les utilisateurs autorisés (ou tous les utilisateurs)
- Finalisez l’installation
- Cliquez sur « Installer » et patientez (ça peut être long !)
C – Installation de Collabora Online (GUI + CLI)
1. Créez un sous-domaine pour Collabora
Vous pouvez le faire via l’interface graphique de YunoHost (Domaines > Ajouter un domaine) ou en ligne de commande :
# Connectez-vous en SSH à votre serveur YunoHost ssh admin@votre-serveur-yunohost # Ajoutez un sous-domaine pour Collabora sudo yunohost domain add office.exemple.fr
2. Installez l’application Collabora via YunoHost
De préférence, utilisez l’interface graphique pour l’installation initiale :
- Allez dans « Applications » > « Installer »
- Recherchez « Collabora » et cliquez sur Installer
- Sélectionnez le domaine « office.exemple.fr » créé précédemment
Si vous préférez la ligne de commande :
# Connectez-vous en SSH à votre serveur YunoHost (si ce n'est pas déjà fait) ssh admin@votre-serveur-yunohost # Installez Collabora depuis les applications communautaires sudo yunohost app install collabora
3. Installez l’application « Nextcloud Office » dans Nextcloud
Cette étape se fait dans l’interface graphique de Nextcloud :
- Connectez-vous à votre instance Nextcloud en tant qu’administrateur
- Allez dans Applications > Office & texte
- Activez « Collabora Online » (pas « Collabora Online – Built-in CODE Server »)
D – Configuration de l’intégration Nextcloud + Collabora
C’est ici que la plupart des gens rencontrent des problèmes. Suivez bien ces étapes !
1. Configurez Nextcloud pour utiliser Collabora (GUI)
Dans l’interface d’administration Nextcloud :
- Allez dans « Paramètres » > « Administration » > « Collabora Online »
- Dans « URL de votre serveur Collabora », entrez :
https://office.exemple.fr
- Cochez « Désactiver la vérification du certificat (non recommandé) » si vous utilisez un certificat auto-signé
- Sous « Paramètres avancés », ajoutez votre adresse IP serveur dans « Plages d’adresses IP autorisées pour WOPI »
Pour déterminer l’adresse IP de votre serveur, utilisez cette commande en SSH :
# Pour trouver l'IP de votre serveur hostname -I | awk '{print $1}'
2. Configurez Collabora pour autoriser les domaines Nextcloud (CLI)
Maintenant, passons aux configurations qui nécessitent la ligne de commande :
# Connectez-vous en SSH à votre serveur ssh admin@votre-serveur-yunohost # Éditez le fichier de configuration de Collabora sudo nano /etc/coolwsd/coolwsd.xml
Trouvez la section
<storage desc="Backend storage">
et dans la sous-section<wopi>
, assurez-vous que les hôtes suivants sont autorisés (remplacez « exemple.fr » par votre vrai domaine) :<host desc="Regex pattern of hostname to allow or deny." allow="true">exemple\.fr</host> <host desc="Regex pattern of hostname to allow or deny." allow="true">.*\.exemple\.fr</host> <host desc="Regex pattern of hostname to allow or deny." allow="true">127\.0\.0\.1</host> <host desc="Regex pattern of hostname to allow or deny." allow="true">::1</host> <host desc="Regex pattern of hostname to allow or deny." allow="true">localhost</host>
Ou en utilisant sed (plus simple mais attention aux erreurs) :
# Configurez Collabora pour accepter les connexions de votre domaine # REMPLACEZ exemple.fr par votre nom de domaine réel ! sudo sed -i 's/<host desc="Regex pattern of hostname to allow or deny." allow="true">exemple.fr<\/host>/<host desc="Regex pattern of hostname to allow or deny." allow="true">exemple\\.fr<\/host>\n <host desc="Regex pattern of hostname to allow or deny." allow="true">.*\\.exemple\\.fr<\/host>\n <host desc="Regex pattern of hostname to allow or deny." allow="true">127\\.0\\.0\\.1<\/host>\n <host desc="Regex pattern of hostname to allow or deny." allow="true">::1<\/host>\n <host desc="Regex pattern of hostname to allow or deny." allow="true">localhost<\/host>/' /etc/coolwsd/coolwsd.xml
3. Configurez Nginx pour gérer correctement les requêtes (CLI)
# Créez ou modifiez la configuration Nginx pour Collabora # REMPLACEZ exemple.fr par votre vrai domaine ! cat > /etc/nginx/conf.d/office.exemple.fr.conf << 'EOF' map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; listen [::]:80; server_name office.exemple.fr; # Redirect all HTTP requests to HTTPS return 301 https://$host$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name office.exemple.fr; ssl_certificate /etc/yunohost/certs/office.exemple.fr/crt.pem; ssl_certificate_key /etc/yunohost/certs/office.exemple.fr/key.pem; # Augmenter la taille maximale des requêtes client_max_body_size 100M; # Include collabora config include /etc/nginx/conf.d/office.exemple.fr.d/collabora.conf; } EOF
4. Redémarrez les services (CLI)
# Redémarrez Collabora sudo systemctl restart coolwsd # Redémarrez Nginx sudo systemctl restart nginx
5. Vérifiez que l’API de découverte Collabora fonctionne (CLI)
# REMPLACEZ exemple.fr par votre vrai domaine ! curl -v https://office.exemple.fr/hosting/discovery
Vous devriez obtenir un long fichier XML qui liste les formats de documents supportés.
E – Optimisations pour les serveurs à ressources limitées
Voici les optimisations essentielles pour un serveur limité (1 CPU, 2 Go RAM) :
1. Optimisation de PHP-FPM (CLI)
# Modifier PHP-FPM pour utiliser le mode ondemand sudo sed -i 's/^pm = dynamic/pm = ondemand/' /etc/php/8.3/fpm/pool.d/www.conf sudo sed -i 's/^pm.max_children = 5/pm.max_children = 8/' /etc/php/8.3/fpm/pool.d/www.conf sudo sed -i '/^;pm.process_idle_timeout/a pm.process_idle_timeout = 90s' /etc/php/8.3/fpm/pool.d/www.conf sudo sed -i '/^;php_admin_value\[memory_limit\]/a php_admin_value[memory_limit] = 256M\nphp_admin_value[max_execution_time] = 300\nphp_admin_value[max_input_time] = 300\nphp_admin_value[upload_max_filesize] = 100M\nphp_admin_value[post_max_size] = 100M' /etc/php/8.3/fpm/pool.d/www.conf
2. Optimisation du cache PHP (CLI)
# Créer une configuration d'optimisation pour PHP sudo cat > /etc/php/8.3/fpm/conf.d/99-nextcloud.ini << 'EOF' opcache.enable=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000 opcache.revalidate_freq=60 opcache.save_comments=1 opcache.jit=1255 opcache.jit_buffer_size=128M apc.enabled=1 apc.shm_segments=1 apc.shm_size=128M apc.ttl=7200 apc.user_ttl=7200 realpath_cache_size=4096K realpath_cache_ttl=600 EOF
3. Optimisation de Collabora (CLI)
# Optimiser Collabora pour un serveur avec peu de ressources sudo sed -i 's/<max_concurrency.*type="uint".*>[0-9]*<\/max_concurrency>/<max_concurrency desc="The maximum number of threads to use while processing a document." type="uint" default="4">2<\/max_concurrency>/' /etc/coolwsd/coolwsd.xml sudo sed -i 's/<num_prespawn_children.*type="uint".*>[0-9]*<\/num_prespawn_children>/<num_prespawn_children desc="Number of child processes to keep started in advance and waiting for new clients." type="uint" default="1">1<\/num_prespawn_children>/' /etc/coolwsd/coolwsd.xml sudo sed -i 's/<limit_dirty_mem_mb.*type="uint".*>[0-9]*<\/limit_dirty_mem_mb>/<limit_dirty_mem_mb desc="Minimum memory usage for a document to be candidate for bad state" type="uint" default="3072">1024<\/limit_dirty_mem_mb>/' /etc/coolwsd/coolwsd.xml
4. Optimisation de Nextcloud (GUI + CLI)
Connectez-vous à Nextcloud en tant qu’administrateur puis :
- Désactivez les applications non essentielles (GUI)
- Allez dans Paramètres > Administration > Paramètres de base (GUI)
- Activez le cache APCu et Redis si disponible (GUI)
- Configurez les tâches de fond pour utiliser le cron système (GUI)
Via la ligne de commande (CLI) :
# Configurez Nextcloud pour utiliser le cache APCu sudo -u nextcloud php /var/www/nextcloud/occ config:system:set memcache.local --value='\OC\Memcache\APCu' # Activez la génération préventive des miniatures sudo -u nextcloud php /var/www/nextcloud/occ config:system:set preview_max_x --value=1024 sudo -u nextcloud php /var/www/nextcloud/occ config:system:set preview_max_y --value=1024 sudo -u nextcloud php /var/www/nextcloud/occ config:system:set jpeg_quality --value=60
5. Script de maintenance automatique (CLI)
sudo cat > /usr/local/bin/nextcloud-optimize.sh << 'EOF' #!/bin/bash echo "Nettoyage des fichiers temporaires..." find /tmp -type f -atime +7 -delete find /var/tmp -type f -atime +7 -delete echo "Maintenance Nextcloud..." sudo -u nextcloud php /var/www/nextcloud/occ maintenance:repair sudo -u nextcloud php /var/www/nextcloud/occ files:scan-app-data sudo -u nextcloud php /var/www/nextcloud/occ preview:generate-all -f echo "Optimisation de la base de données..." sudo -u nextcloud php /var/www/nextcloud/occ db:add-missing-indices sudo -u nextcloud php /var/www/nextcloud/occ db:convert-filecache-bigint echo "Nettoyage des vieux fichiers de logs..." find /var/log -name "*.gz" -mtime +30 -delete EOF sudo chmod +x /usr/local/bin/nextcloud-optimize.sh # Ajouter au cron pour une exécution hebdomadaire sudo echo "0 2 * * 0 /usr/local/bin/nextcloud-optimize.sh" > /etc/cron.d/nextcloud-optimize
F – Résolution des problèmes courants
Erreur « Hôte WOPI non autorisé »
Si vous obtenez cette erreur lors de l’ouverture d’un document :
- Vérifiez les journaux Nextcloud :
sudo -u nextcloud php /var/www/nextcloud/occ log:tail
- Si vous voyez une erreur comme « WOPI request denied from X.X.X.X as it does not match the configured ranges », ajoutez cette adresse IP à la liste des adresses autorisées dans Nextcloud :
sudo -u nextcloud php /var/www/nextcloud/occ config:app:get richdocuments wopi_allowlist sudo -u nextcloud php /var/www/nextcloud/occ config:app:set richdocuments wopi_allowlist --value="127.0.0.1,X.X.X.X"
- Redémarrez les services :
sudo systemctl restart php8.3-fpm sudo systemctl restart coolwsd
Problèmes de certificats SSL
Si vous avez des erreurs liées aux certificats :
- Vérifiez que les certificats existent et sont valides :
# REMPLACEZ exemple.fr par votre domaine réel sudo ls -la /etc/yunohost/certs/office.exemple.fr/
- Renouvelez le certificat au besoin :
# REMPLACEZ exemple.fr par votre domaine réel sudo yunohost domain cert renew office.exemple.fr --force
Problèmes de performances
Si les documents s’ouvrent trop lentement :
- Vérifiez la charge système :
htop
- Augmentez les limites de mémoire si nécessaire :
# Augmenter la mémoire allouée à PHP sudo sed -i 's/memory_limit = 256M/memory_limit = 512M/' /etc/php/8.3/fpm/conf.d/99-nextcloud.ini
- Désactivez plus d’applications Nextcloud non essentielles
G – Bonus : Ajout d’extensions utiles
Extensions Nextcloud recommandées pour petite configuration
- Calendar (calendrier)
- Contacts (carnet d’adresses)
- Files PDF viewer (visualiseur PDF intégré)
- Notes (prise de notes simple)
Évitez les extensions gourmandes en ressources comme :
- Talk (visioconférence)
- Audio Player
- Photos (préférez « Gallery » qui est plus léger)
Conclusion
Voilà, vous avez maintenant un Nextcloud avec Nextcloud Office fonctionnel sur un petit serveur YunoHost ! Cette configuration vous permettra de travailler confortablement avec 3-5 utilisateurs maximum simultanément.
N’oubliez pas de :
- Faire des sauvegardes régulières
- Surveiller l’espace disque disponible
- Exécuter occasionnellement le script de maintenance
Si vous souhaitez accueillir plus d’utilisateurs ou améliorer les performances, envisagez de passer à un serveur avec 2 cœurs CPU et 4 Go de RAM minimum.
Profitez de votre cloud personnel et de votre suite bureautique collaborative auto-hébergés !
Problème de notifications répétitives LDAP
Si vous recevez des notifications répétitives concernant l’ajout/retrait d’utilisateurs des groupes (toutes les heures environ), c’est généralement dû à une mauvaise configuration des filtres LDAP et à un intervalle de synchronisation trop court. Voici comment résoudre ce problème :
- Corrigez les filtres LDAP :
# Corriger le filtre de groupe sudo -u nextcloud php /var/www/nextcloud/occ ldap:set-config "" ldapGroupFilter "(objectClass=posixGroup)" # Corriger le filtre utilisateur sudo -u nextcloud php /var/www/nextcloud/occ ldap:set-config "" ldapUserFilter "(&(objectclass=posixAccount)(permission=cn=nextcloud.main,ou=permission,dc=yunohost,dc=org))"
- Ajustez l’intervalle de synchronisation en fonction de vos besoins :
# Pour une synchronisation quotidienne (recommandé pour la plupart des cas) sudo -u nextcloud php /var/www/nextcloud/occ config:app:set user_ldap background_sync_interval --value="86400" # Pour une synchronisation hebdomadaire (si vous modifiez rarement les utilisateurs/groupes) sudo -u nextcloud php /var/www/nextcloud/occ config:app:set user_ldap background_sync_interval --value="604800"
- Testez que la configuration fonctionne correctement :
# Tester la configuration LDAP sudo -u nextcloud php /var/www/nextcloud/occ ldap:test-config "" # Vérifier qu'un utilisateur est toujours reconnu (remplacez "nom_utilisateur" par un utilisateur réel) sudo -u nextcloud php /var/www/nextcloud/occ ldap:check-user nom_utilisateur
- Redémarrer PHP pour appliquer les changements :
systemctl restart php8.3-fpm
Ces modifications devraient résoudre le problème de notifications répétitives. Sachez que même avec un intervalle de synchronisation long, les nouveaux utilisateurs pourront se connecter immédiatement après leur création dans YunoHost, sans attendre la synchronisation. L’intervalle n’affecte que les mises à jour des appartenances aux groupes et autres attributs utilisateur.
Un jeune site que j'aime bien, la ferrari du T-shirt ...bio en plus : GoudronBlanc
- AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.