new release !
This commit is contained in:
1 parent
7a64664d9f
commit
df4e1824c5
3 files changed
+142
-60
No files matched your search
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
```
|
```
|
||||||
|
|
||||||
## Config
|
2. Sauvegarder, remplacer les fichiers, puis démarrer (les volumes sont conservés) :
|
||||||
|
|
||||||
```
|
```sh
|
||||||
# docker exec --user www-data cloudnetignet_nextcloud php occ background:cron
|
docker compose config -q
|
||||||
# docker exec --user www-data cloudnetignet_nextcloud php occ config:system:set maintenance_window_start --value="4" --type=integer
|
docker compose up -d --remove-orphans
|
||||||
# docker exec --user www-data cloudnetignet_nextcloud php occ config:system:set default_phone_region --value="fr"
|
docker compose ps
|
||||||
```
|
```
|
||||||
|
|
||||||
## Maintenance
|
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 :
|
||||||
# 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
|
||||||
|
docker compose exec -u www-data nextcloud php occ config:system:get dbhost
|
||||||
|
docker compose exec -u www-data nextcloud php occ status
|
||||||
```
|
```
|
||||||
|
|
||||||
## Privacy
|
Si `dbhost` vaut encore `cloudnetignet_mariadb`, le remplacer, **une fois la
|
||||||
|
nouvelle configuration démarrée**, par :
|
||||||
|
|
||||||
Disable the contact menu.
|
```sh
|
||||||
```
|
docker compose exec -u www-data nextcloud php occ config:system:set dbhost --value=mariadb
|
||||||
# docker exec --user www-data -ti cloudnetignet_nextcloud sed -i '/<div id="contactsmenu"><\/div>/d' core/templates/layout.user.php
|
docker compose exec -u www-data nextcloud php occ config:system:get dbhost
|
||||||
```
|
```
|
||||||
|
|
||||||
Disable the unified search menu.
|
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
|
||||||
# docker exec --user www-data -ti cloudnetignet_nextcloud sed -i '/<div id="unified-search"><\/div>/d' core/templates/layout.user.php
|
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
|
||||||
```
|
```
|
||||||
|
|
||||||
## Tips
|
`-T` désactive l'allocation d'un terminal, nécessaire depuis cron.
|
||||||
|
Activer le mode Cron dans l'administration Nextcloud, ou :
|
||||||
|
|
||||||
To Clear logs.
|
```sh
|
||||||
|
docker compose exec -u www-data nextcloud php occ background:cron
|
||||||
```
|
```
|
||||||
# rm /srv/cloud.netig.net/volumes/nextcloud/data/nextcloud.log
|
|
||||||
|
## 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.
|
||||||
+24
-25
@@ -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:
|
networks:
|
||||||
|
- default
|
||||||
|
- mailserver
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
mailserver:
|
mailserver:
|
||||||
external: true
|
external: true
|
||||||
Reference in new issue
Block a user