diff --git a/.env b/.env index 18ba764..162a1fe 100644 --- a/.env +++ b/.env @@ -1,19 +1,16 @@ # MariaDB MYSQL_DATABASE=nextcloud MYSQL_USER=nextcloud -#MYSQL_PASSWORD= -MYSQL_HOST=cloudnetignet_mariadb -#MYSQL_ROOT_PASSWORD= +MYSQL_HOST=mariadb -# Admin account +# Admin (utilise principalement lors de l'installation initiale) NEXTCLOUD_ADMIN_USER=admin -#NEXTCLOUD_ADMIN_PASSWORD= -# Trusted domains -NEXTCLOUD_TRUSTED_DOMAINS=127.0.0.1 cloud.netig.net collabora.netig.net +# Domaines de confiance +NEXTCLOUD_TRUSTED_DOMAINS=127.0.0.1 cloud.netig.net # Redis -REDIS_HOST=cloudnetignet_redis +REDIS_HOST=redis # SMTP SMTP_HOST=mail.netig.net @@ -21,16 +18,15 @@ SMTP_SECURE=tls SMTP_PORT=587 SMTP_AUTHTYPE=LOGIN SMTP_NAME=noreply@netig.net -#SMTP_PASSWORD= MAIL_FROM_ADDRESS=noreply MAIL_DOMAIN=netig.net -# Upload size +# Taille des fichiers envoyes PHP_MEMORY_LIMIT=1024M PHP_UPLOAD_LIMIT=1024M APACHE_BODY_LIMIT=0 -# Reverse Proxy +# Reverse proxy Caddy OVERWRITEHOST=cloud.netig.net OVERWRITEPROTOCOL=https OVERWRITECLIURL=https://cloud.netig.net diff --git a/README.md b/README.md index 3b44912..9d84546 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,130 @@ # cloud.netig.net -## Cron +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. -Add this line into the host crontab with `crontab -e`. -``` -# Nextcloud -*/5 * * * * /usr/bin/docker exec -u www-data cloudnetignet_nextcloud php /var/www/html/cron.php +## 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 ``` -## Config +`-T` désactive l'allocation d'un terminal, nécessaire depuis cron. +Activer le mode Cron dans l'administration Nextcloud, ou : -``` -# docker exec --user www-data cloudnetignet_nextcloud php occ background:cron -# docker exec --user www-data cloudnetignet_nextcloud php occ config:system:set maintenance_window_start --value="4" --type=integer -# docker exec --user www-data cloudnetignet_nextcloud php occ config:system:set default_phone_region --value="fr" +```sh +docker compose exec -u www-data nextcloud php occ background:cron ``` -## Maintenance +## Administration -``` -# docker exec --user www-data cloudnetignet_nextcloud php occ maintenance:repair --include-expensive -# docker exec --user www-data cloudnetignet_nextcloud php occ db:add-missing-indices +```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 ``` -## Privacy +Ne pas modifier `core/templates/layout.user.php` pour masquer des éléments +visuels : ces changements sont écrasés par les mises à jour Nextcloud. -Disable the contact menu. -``` -# docker exec --user www-data -ti cloudnetignet_nextcloud sed -i '/
<\/div>/d' core/templates/layout.user.php +## 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 ``` -Disable the unified search menu. -``` -# docker exec --user www-data -ti cloudnetignet_nextcloud sed -i '/