new release !
This commit is contained in:
1 parent
7a64664d9f
commit
df4e1824c5
3 files changed
+145
-63
No files matched your search
@@ -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
|
||||
|
||||
@@ -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 id="contactsmenu"><\/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 '/<div id="unified-search"><\/div>/d' core/templates/layout.user.php
|
||||
```
|
||||
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.
|
||||
|
||||
## 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.
|
||||
```
|
||||
# rm /srv/cloud.netig.net/volumes/nextcloud/data/nextcloud.log
|
||||
```
|
||||
## 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:
|
||||
redis:
|
||||
image: redis:latest
|
||||
container_name: cloudnetignet_redis
|
||||
networks:
|
||||
- mailserver
|
||||
restart: unless-stopped
|
||||
command: redis-server --appendonly yes
|
||||
volumes:
|
||||
- ./volumes/redis:/data
|
||||
command: redis-server --appendonly yes
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
default:
|
||||
aliases:
|
||||
- cloudnetignet_redis
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11.4
|
||||
container_name: cloudnetignet_mariadb
|
||||
networks:
|
||||
- mailserver
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
- ../passwords/cloudnetignet.pass
|
||||
@@ -24,26 +26,19 @@ services:
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
nextcloud-appapi-dsp:
|
||||
image: ghcr.io/nextcloud/nextcloud-appapi-dsp
|
||||
container_name: cloudnetignet_nextcloud-appapi-dsp
|
||||
networks:
|
||||
- mailserver
|
||||
env_file:
|
||||
- .env
|
||||
- ../passwords/cloudnetignet.pass
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
restart: unless-stopped
|
||||
default:
|
||||
aliases:
|
||||
- cloudnetignet_mariadb
|
||||
|
||||
nextcloud:
|
||||
image: nextcloud:latest
|
||||
container_name: cloudnetignet_nextcloud
|
||||
networks:
|
||||
- mailserver
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- mariadb
|
||||
- nextcloud-appapi-dsp
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_started
|
||||
env_file:
|
||||
- .env
|
||||
- ../passwords/cloudnetignet.pass
|
||||
@@ -51,7 +46,11 @@ services:
|
||||
- "127.0.0.1:9002:80"
|
||||
volumes:
|
||||
- ./volumes/nextcloud:/var/www/html
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- default
|
||||
- mailserver
|
||||
|
||||
networks:
|
||||
default:
|
||||
mailserver:
|
||||
external: true
|
||||
Reference in new issue
Block a user