131 lines
5.3 KiB
Markdown
131 lines
5.3 KiB
Markdown
# 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:9002` sur l'hôte ; Caddy gère HTTPS.
|
|
- **MariaDB / Redis** : réseau privé `cloudnetignet_default`, sans port publié.
|
|
- **Nextcloud** : connecté également au réseau externe `mailserver` pour 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`.
|
|
|
|
1. Avec **l'ancien** Compose, noter la version et la configuration effective :
|
|
|
|
```sh
|
|
docker compose exec -u www-data nextcloud php occ status
|
|
docker compose exec -u www-data nextcloud php occ config:system:get dbhost
|
|
```
|
|
|
|
2. Sauvegarder, remplacer les fichiers, puis démarrer (les volumes sont conservés) :
|
|
|
|
```sh
|
|
docker compose config -q
|
|
docker compose up -d --remove-orphans
|
|
docker compose ps
|
|
```
|
|
|
|
Si 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 externe `mailserver` doit déjà exister.
|
|
|
|
3. Vérifier la configuration effective de Nextcloud :
|
|
|
|
```sh
|
|
docker compose exec -u www-data nextcloud php occ config:system:get dbhost
|
|
docker compose exec -u www-data nextcloud php occ status
|
|
```
|
|
|
|
Si `dbhost` vaut encore `cloudnetignet_mariadb`, le remplacer, **une fois la
|
|
nouvelle configuration démarrée**, par :
|
|
|
|
```sh
|
|
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 dbhost
|
|
```
|
|
|
|
Vé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`) :
|
|
|
|
```cron
|
|
*/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 :
|
|
|
|
```sh
|
|
docker compose exec -u www-data nextcloud php occ background:cron
|
|
```
|
|
|
|
## Administration
|
|
|
|
```sh
|
|
# 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 :
|
|
|
|
```sh
|
|
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.
|