new release !

This commit is contained in:
julien committed 2026-10-18 19:54:55 +02:00
1 parent 7a64664d9f
commit df4e1824c5
3 files changed
+145 -63

No files matched your search

+7 -11
View File
@@ -1,19 +1,16 @@
# MariaDB # MariaDB
MYSQL_DATABASE=nextcloud MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud MYSQL_USER=nextcloud
#MYSQL_PASSWORD= MYSQL_HOST=mariadb
MYSQL_HOST=cloudnetignet_mariadb
#MYSQL_ROOT_PASSWORD=
# Admin account # Admin (utilise principalement lors de l'installation initiale)
NEXTCLOUD_ADMIN_USER=admin NEXTCLOUD_ADMIN_USER=admin
#NEXTCLOUD_ADMIN_PASSWORD=
# Trusted domains # Domaines de confiance
NEXTCLOUD_TRUSTED_DOMAINS=127.0.0.1 cloud.netig.net collabora.netig.net NEXTCLOUD_TRUSTED_DOMAINS=127.0.0.1 cloud.netig.net
# Redis # Redis
REDIS_HOST=cloudnetignet_redis REDIS_HOST=redis
# SMTP # SMTP
SMTP_HOST=mail.netig.net SMTP_HOST=mail.netig.net
@@ -21,16 +18,15 @@ SMTP_SECURE=tls
SMTP_PORT=587 SMTP_PORT=587
SMTP_AUTHTYPE=LOGIN SMTP_AUTHTYPE=LOGIN
SMTP_NAME=noreply@netig.net SMTP_NAME=noreply@netig.net
#SMTP_PASSWORD=
MAIL_FROM_ADDRESS=noreply MAIL_FROM_ADDRESS=noreply
MAIL_DOMAIN=netig.net MAIL_DOMAIN=netig.net
# Upload size # Taille des fichiers envoyes
PHP_MEMORY_LIMIT=1024M PHP_MEMORY_LIMIT=1024M
PHP_UPLOAD_LIMIT=1024M PHP_UPLOAD_LIMIT=1024M
APACHE_BODY_LIMIT=0 APACHE_BODY_LIMIT=0
# Reverse Proxy # Reverse proxy Caddy
OVERWRITEHOST=cloud.netig.net OVERWRITEHOST=cloud.netig.net
OVERWRITEPROTOCOL=https OVERWRITEPROTOCOL=https
OVERWRITECLIURL=https://cloud.netig.net OVERWRITECLIURL=https://cloud.netig.net
+114 -27
View File
@@ -1,43 +1,130 @@
# cloud.netig.net # 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`. ## Organisation
```
# Nextcloud - **Nextcloud** : accessible uniquement via `127.0.0.1:9002` sur l'hôte ; Caddy gère HTTPS.
*/5 * * * * /usr/bin/docker exec -u www-data cloudnetignet_nextcloud php /var/www/html/cron.php - **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 :
``` ```sh
# docker exec --user www-data cloudnetignet_nextcloud php occ background:cron docker compose exec -u www-data 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"
``` ```
## Maintenance ## Administration
``` ```sh
# docker exec --user www-data cloudnetignet_nextcloud php occ maintenance:repair --include-expensive # Statut et journaux
# docker exec --user www-data cloudnetignet_nextcloud php occ db:add-missing-indices 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. ## Versions et mises à jour
```
# docker exec --user www-data -ti cloudnetignet_nextcloud sed -i '/<div id="contactsmenu"><\/div>/d' core/templates/layout.user.php 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. 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`
# docker exec --user www-data -ti cloudnetignet_nextcloud sed -i '/<div id="unified-search"><\/div>/d' core/templates/layout.user.php aveuglément tant que les versions n'ont pas été choisies.
```
## Tips 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.
To Clear logs. ## Reverse proxy
```
# rm /srv/cloud.netig.net/volumes/nextcloud/data/nextcloud.log 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.
+24 -25
View File
@@ -1,18 +1,20 @@
name: cloudnetignet
services: services:
redis: redis:
image: redis:latest image: redis:latest
container_name: cloudnetignet_redis restart: unless-stopped
networks: command: redis-server --appendonly yes
- mailserver
volumes: volumes:
- ./volumes/redis:/data - ./volumes/redis:/data
command: redis-server --appendonly yes networks:
restart: unless-stopped default:
aliases:
- cloudnetignet_redis
mariadb: mariadb:
image: mariadb:11.4 image: mariadb:11.4
container_name: cloudnetignet_mariadb restart: unless-stopped
networks:
- mailserver
env_file: env_file:
- .env - .env
- ../passwords/cloudnetignet.pass - ../passwords/cloudnetignet.pass
@@ -24,26 +26,19 @@ services:
interval: 10s interval: 10s
timeout: 5s timeout: 5s
retries: 3 retries: 3
restart: unless-stopped
nextcloud-appapi-dsp:
image: ghcr.io/nextcloud/nextcloud-appapi-dsp
container_name: cloudnetignet_nextcloud-appapi-dsp
networks: networks:
- mailserver default:
env_file: aliases:
- .env - cloudnetignet_mariadb
- ../passwords/cloudnetignet.pass
volumes:
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
nextcloud: nextcloud:
image: nextcloud:latest image: nextcloud:latest
container_name: cloudnetignet_nextcloud restart: unless-stopped
networks:
- mailserver
depends_on: depends_on:
- mariadb mariadb:
- nextcloud-appapi-dsp condition: service_healthy
redis:
condition: service_started
env_file: env_file:
- .env - .env
- ../passwords/cloudnetignet.pass - ../passwords/cloudnetignet.pass
@@ -51,7 +46,11 @@ services:
- "127.0.0.1:9002:80" - "127.0.0.1:9002:80"
volumes: volumes:
- ./volumes/nextcloud:/var/www/html - ./volumes/nextcloud:/var/www/html
restart: unless-stopped networks:
- default
- mailserver
networks: networks:
default:
mailserver: mailserver:
external: true external: true