new release !
This commit is contained in:
1 parent
f826ebe1e4
commit
e6862fcb75
1 file changed
+58
-102
@@ -1,130 +1,86 @@
|
||||
# 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.
|
||||
Instance Nextcloud avec MariaDB et Redis, déployée avec Docker Compose derrière Caddy.
|
||||
Collabora est hébergé séparément sur `collabora.netig.net`.
|
||||
|
||||
## Organisation
|
||||
## Déploiement
|
||||
|
||||
- **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).
|
||||
```sh
|
||||
docker compose up -d
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
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.
|
||||
- Nextcloud : `127.0.0.1:9002`, accessible publiquement via Caddy.
|
||||
- Configuration : `.env` et `../passwords/cloudnetignet.pass`.
|
||||
- Données : `volumes/nextcloud`, `volumes/mysql` et `volumes/redis`.
|
||||
- Réseau `mailserver` : doit exister avant le démarrage.
|
||||
|
||||
## Migration de la configuration existante
|
||||
Ne pas supprimer les répertoires `volumes/` : ils contiennent les données de l'instance.
|
||||
|
||||
**Sauvegarder avant toute modification** la base MariaDB et les fichiers Nextcloud.
|
||||
Ne jamais supprimer `volumes/` ni utiliser `docker compose down -v` pour cette migration.
|
||||
## Cron
|
||||
|
||||
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`) :
|
||||
Dans la crontab de `root`, toutes les cinq minutes :
|
||||
|
||||
```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 :
|
||||
Activer le mode Cron dans Nextcloud :
|
||||
|
||||
```sh
|
||||
docker compose exec -u www-data nextcloud php occ background:cron
|
||||
```
|
||||
|
||||
## Confidentialité
|
||||
|
||||
Les utilisateurs ne doivent pas pouvoir découvrir les autres comptes de l'instance.
|
||||
|
||||
Paramètres appliqués à Nextcloud :
|
||||
|
||||
```sh
|
||||
# Désactiver l'énumération des comptes
|
||||
docker compose exec -u www-data nextcloud php occ config:app:set core shareapi_allow_share_dialog_user_enumeration --value=no
|
||||
|
||||
# Désactiver la recherche par correspondance exacte
|
||||
docker compose exec -u www-data nextcloud php occ config:app:set core shareapi_restrict_user_enumeration_full_match --value=no
|
||||
|
||||
# Désactiver le carnet d'adresses système
|
||||
docker compose exec -u www-data nextcloud php occ config:app:set dav system_addressbook_exposed --value=no
|
||||
|
||||
# Désactiver les profils
|
||||
docker compose exec -u www-data nextcloud php occ config:system:set profile.enabled --type=boolean --value=false
|
||||
```
|
||||
|
||||
Dans l'application **Custom CSS** :
|
||||
|
||||
```css
|
||||
#contactsmenu {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.unified-search-menu {
|
||||
display: none !important;
|
||||
}
|
||||
```
|
||||
|
||||
Le CSS masque les menus, mais ne protège pas les données. Vérifier les restrictions avec deux comptes ordinaires, notamment dans la recherche de destinataires lors d'un partage. Des utilisateurs collaborant volontairement sur un même document peuvent se voir.
|
||||
|
||||
## Administration
|
||||
|
||||
```sh
|
||||
# Statut et journaux
|
||||
docker compose ps
|
||||
# Journaux
|
||||
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
|
||||
# État de Nextcloud
|
||||
docker compose exec -u www-data nextcloud php occ status
|
||||
docker compose exec redis redis-server --version
|
||||
|
||||
# Réglages de l'instance
|
||||
docker compose exec -u www-data nextcloud php occ config:system:set maintenance_window_start --type=integer --value=4
|
||||
docker compose exec -u www-data nextcloud php occ config:system:set default_phone_region --value=FR
|
||||
```
|
||||
|
||||
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.
|
||||
## Mises à jour
|
||||
|
||||
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.
|
||||
Sauvegarder la base de données et les fichiers avant toute mise à jour. Vérifier la version installée avant de changer d'image : Nextcloud doit être mis à niveau une version majeure à la fois.
|
||||
|
||||
## 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.
|
||||
Les tags `nextcloud:latest` et `redis:latest` sont encore utilisés : ne pas lancer `docker compose pull` sans vérifier les versions ciblées.
|
||||
Reference in new issue
Block a user