5.3 KiB
cloud.netig.net
Déploiement Docker Compose de Nextcloud avec MariaDB et Redis, derrière Caddy.
Collabora est déployé séparément sous collabora.netig.net : l'intégration passe
par les adresses HTTPS publiques, sans réseau Docker partagé entre les deux projets.
Organisation
- Nextcloud : accessible uniquement via
127.0.0.1:9002sur l'hôte ; Caddy gère HTTPS. - MariaDB / Redis : réseau privé
cloudnetignet_default, sans port publié. - Nextcloud : connecté également au réseau externe
mailserverpour préserver l'accès éventuel aux services de messagerie déjà utilisés. - Données : répertoires
./volumes/{nextcloud,mysql,redis}(ne pas supprimer). - Secrets :
../passwords/cloudnetignet.pass(non inclus dans ce dépôt).
Le fichier .env contient les paramètres non secrets. Le fichier de mots de passe
existant doit conserver notamment MYSQL_PASSWORD, MYSQL_ROOT_PASSWORD,
NEXTCLOUD_ADMIN_PASSWORD et SMTP_PASSWORD suivant les besoins de l'installation.
Migration de la configuration existante
Sauvegarder avant toute modification la base MariaDB et les fichiers Nextcloud.
Ne jamais supprimer volumes/ ni utiliser docker compose down -v pour cette migration.
Le container_name a été retiré et les variables MYSQL_HOST / REDIS_HOST
utilisent maintenant les noms DNS de services mariadb et redis.
Important : une installation Nextcloud existante peut conserver l'ancien hôte
MariaDB (cloudnetignet_mariadb) dans config.php, malgré le nouveau .env.
Le Compose inclut donc deux alias DNS de compatibilité sur le réseau privé :
cloudnetignet_mariadb et cloudnetignet_redis.
-
Avec l'ancien Compose, noter la version et la configuration effective :
docker compose exec -u www-data nextcloud php occ status docker compose exec -u www-data nextcloud php occ config:system:get dbhost -
Sauvegarder, remplacer les fichiers, puis démarrer (les volumes sont conservés) :
docker compose config -q docker compose up -d --remove-orphans docker compose psSi l'ancien projet Compose portait un autre nom, l'arrêter d'abord avec son ancienne configuration :
docker compose down(sans-v). Le réseau externemailserverdoit déjà exister. -
Vérifier la configuration effective de Nextcloud :
docker compose exec -u www-data nextcloud php occ config:system:get dbhost docker compose exec -u www-data nextcloud php occ statusSi
dbhostvaut encorecloudnetignet_mariadb, le remplacer, une fois la nouvelle configuration démarrée, par :docker compose exec -u www-data nextcloud php occ config:system:set dbhost --value=mariadb docker compose exec -u www-data nextcloud php occ config:system:get dbhostVérifier également que Redis fonctionne et qu'une ouverture/édition de document avec Collabora est toujours possible. Les alias historiques peuvent être retirés du Compose lors d'une mise à jour ultérieure après vérification complète.
Cron (hôte)
Exécuter la tâche toutes les cinq minutes dans la crontab de l'utilisateur
ayant accès au démon Docker (généralement root) :
*/5 * * * * cd /srv/cloud.netig.net && /usr/bin/docker compose exec -T -u www-data nextcloud php -f /var/www/html/cron.php
-T désactive l'allocation d'un terminal, nécessaire depuis cron.
Activer le mode Cron dans l'administration Nextcloud, ou :
docker compose exec -u www-data nextcloud php occ background:cron
Administration
# Statut et journaux
docker compose ps
docker compose logs --tail=100 nextcloud
# Réglages de l'instance
docker compose exec -u www-data nextcloud php occ config:system:set maintenance_window_start --value=4 --type=integer
docker compose exec -u www-data nextcloud php occ config:system:set default_phone_region --value=FR
# Entretien ponctuel
docker compose exec -u www-data nextcloud php occ maintenance:repair --include-expensive
docker compose exec -u www-data nextcloud php occ db:add-missing-indices
Ne pas modifier core/templates/layout.user.php pour masquer des éléments
visuels : ces changements sont écrasés par les mises à jour Nextcloud.
Versions et mises à jour
Les tags nextcloud:latest et redis:latest sont volontairement conservés
dans cette migration pour ne pas changer de branche logicielle en même temps
que les réseaux et les noms des conteneurs. Ils devront ensuite être remplacés
par des tags de branche compatibles avec l'installation en place :
docker compose exec -u www-data nextcloud php occ status
docker compose exec redis redis-server --version
Les montées de version majeure de Nextcloud se font dans l'ordre, une version
à la fois, avec sauvegarde préalable. Ne pas lancer docker compose pull
aveuglément tant que les versions n'ont pas été choisies.
Le fichier compose.db-restore.yml monte une sauvegarde SQL sous
/docker-entrypoint-initdb.d/ : MariaDB ne l'exécute que si son répertoire
de données est vide, et jamais sur une base déjà initialisée.
Reverse proxy
Caddy doit faire suivre https://cloud.netig.net vers 127.0.0.1:9002.
La valeur de TRUSTED_PROXIES dans .env a été conservée : vérifier qu'elle
correspond aux véritables adresses sources du proxy vues par Nextcloud.