Cette stack nextcloud complète comprend les services suivants :
- Nextcloud : un service de stockage et de partage de fichiers.
- OnlyOffice : un éditeur de documents en ligne intégré à Nextcloud.
- Nginx Proxy Manager : un gestionnaire de proxy inverse pour gérer les certificats SSL et les redirections.
- Let's Encrypt : pour obtenir des certificats SSL gratuits.
- PostgreSQL : une base de données pour Nextcloud et OnlyOffice.
- Redis : pour la mise en cache et la gestion des sessions.
- RabbitMQ : pour la gestion des files d'attente de messages.
Note
J'ai volontairement modifié certains fichiers de configuration du serveur web de Nextcloud pour corriger divers problèmes de synchronisations et de performances avec des fichiers de grande taille.
- Docker et Docker Compose installés sur votre machine.
- Un domaine pointant vers votre serveur pour Nginx Proxy Manager.
- Un accès à Internet pour Let's Encrypt.
- Un serveur SMTP pour nextcloud (optionnel mais recommandé pour les notifications et la récupération de mot de passe).
-
Clonez ce dépôt ou téléchargez les fichiers nécessaires.
git clone https://github.com/StanislasJEANGEY/nextcloud-onlyoffice-nginxproxymanager-letsencrypt.git
-
Accédez au répertoire du projet.
cd nextcloud-onlyoffice-nginxproxymanager-letsencrypt -
Modifiez le fichier
.envpour configurer les variables d'environnement nécessaires, telles que :DOMAINE: Votre nom de domaine pour Nginx Proxy Manager.TZ: Votre fuseau horaire (par exemple,Europe/Paris).NEXTCLOUD_REDIS_PASSWORD: Mot de passe pour Redis utilisé par Nextcloud.NEXTCLOUD_POSTGRES_PASSWORD: Mot de passe pour PostgreSQL utilisé par Nextcloud.ONLYOFFICE_POSTGRES_PASSWORD: Mot de passe pour PostgreSQL utilisé par OnlyOffice.JWT_SECRET: Clé secrète pour JWT (JSON Web Token) utilisée par Nextcloud.RABBITMQ_PASSWORD: Mot de passe pour RabbitMQ.
Note
Vous pouvez également modifier les noms d'utilisateur présent dans le fichier .env
-
Lancez la stack avec Docker Compose.
docker compose up -d
-
Accédez à Nginx Proxy Manager via votre navigateur à l'adresse
http://<votre_domaine>:81pour configurer les hôtes proxy et les certificats SSL.-
Connectez-vous avec les identifiants par défaut :
- Email :
admin@example.com - Mot de passe :
changeme
- Email :
-
Changez le mot de passe par défaut dès la première connexion.
-
Ajoutez un hôte proxy pour Nextcloud :
- Domaine :
nextcloud.votre_domaine - Schema :
https - Cible :
nextcloud - Port :
443 - Activez SSL et choisissez Let's Encrypt pour obtenir un certificat SSL.
- Cochez les options suivantes :
- Force SSL
- HTTP/2 Support
- HSTS Enabled
- HSTS Subdomains
- Domaine :
- Dans la section "Advanced", ajoutez les en-têtes suivants :
proxy_read_timeout 86400s; client_max_body_size 0; fastcgi_read_timeout 1200; proxy_hide_header Upgrade; proxy_connect_timeout 3600s; proxy_send_timeout 3600s; send_timeout 3600s; proxy_buffering off;
- Ajoutez un hôte proxy pour OnlyOffice :
- Domaine :
onlyoffice.votre_domaine - Schema :
http - Cible :
onlyoffice - Port :
80 - Activez SSL et choisissez Let's Encrypt pour obtenir un certificat SSL.
- Cochez les options suivantes :
- Force SSL
- HTTP/2 Support
- HSTS Enabled
- HSTS Subdomains
- Domaine :
-
-
Accédez à Nextcloud via votre navigateur à l'adresse
https://nextcloud.votre_domainepour terminer la configuration. -
Installez l'application OnlyOffice dans Nextcloud :
-
Configurez l'URL du serveur et la paramètres avancés dans les paramètres de l'application ONLYOFFICE.
- URL du serveur :
https://onlyoffice.votre_domaine - Clé secrète JWT : Utilisez la valeur de
JWT_SECRETdéfinie dans le fichier.env. - Dans les paramètres avancés, assurez-vous que les options suivantes sont activées :
- Adresse du ONLYOFFICE Docs pour les demandes internes du serveur :
https://onlyoffice.votre_domaine - Adresse du serveur pour les demandes internes du ONLYOFFICE Docs :
https://nextcloud.votre_domaine
- Adresse du ONLYOFFICE Docs pour les demandes internes du serveur :
- URL du serveur :
-
Enregistrez les paramètres
-
Rendez-vous dans le terminal de votre serveur pour modifier le fichier de configuration de Nextcloud :
nano nextcloud/config/www/nextcloud/config/config.php
Ajoutez les lignes suivantes dans le tableau de configuration :
'maintenance_window_start' => 1, 'default_phone_region' => '<phone_region>', 'memcache.local' => '\\OC\\Memcache\\Redis', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'trusted_proxies' => ['172.18.0.2'], 'overwrite.cli.url' => 'https://nextcloud.votre_domaine', 'overwriteprotocol' => 'https', 'overwritehost' => 'nextcloud.votre_domaine', 'enable_previews' => true, 'enabledPreviewProviders' => array ( 'OC\Preview\PNG', 'OC\Preview\JPEG', 'OC\Preview\GIF', 'OC\Preview\BMP', 'OC\Preview\XBitmap', 'OC\Preview\MP3', 'OC\Preview\TXT', 'OC\Preview\MarkDown', 'OC\Preview\OpenDocument', 'OC\Preview\Krita', 'OC\Preview\HEIC', ), 'redis' => [ 'host' => 'redis-nextcloud', 'port' => 6379, 'timeout' => 0.0, 'read_timeout' => 0.0, 'password' => '<password>', ],
- Remplacez
<password>par le mot de passe défini dans le fichier.envpourNEXTCLOUD_REDIS_PASSWORD. - Remplacez
<phone_region>par votre région téléphonique (par exemple,FRpour la France). - Sauvegardez et quittez l'éditeur.
- Remplacez
Warning
Par défaut, l'adresse ipv4 du reverse proxy est défini sur 172.18.0.2
Si cette adresse n'est pas disponible, pensez à la changer dans le docker compose et dans le fichier de configuration de nextcloud > trusted_proxies
- Configurer votre serveur SMTP pour Nextcloud : (optionnel mais recommandé)
- Allez dans Paramètres d'administration > Paramètre de base.
- Configurez les paramètres SMTP avec les informations de votre serveur de messagerie.
- Testez la configuration en envoyant un e-mail de test.
- Redémarrez les services Docker pour appliquer les modifications :
docker compose restart
Si dans la vue d'ensemble de Nextcloud, il est indiqué que vous devez exécuter certaines commandes, voici ce qu'il faut mettre au début de chacune d'elles :
# se placer dans le répertoire à côte du fichier docker-compose.yml
cd .../nextcloud-onlyoffice-nginxproxymanager-letsencrypt
docker compose exec nextcloud ...docker compose exec nextcloud occ maintenance:repair --include-expensive



