Cloud personnel, utilisé pour les notes et la veille technologique.
Architecture
| Conteneur | Rôle |
|---|---|
| nextcloud | Application (image LinuxServer.io) |
| nextcloud_db | Base MariaDB (image LinuxServer.io) |
Variables d'environnement
| Variable | Rôle |
|---|---|
| PUID, PGID | Utilisateur propriétaire des fichiers |
| TZ | Fuseau horaire |
| PORT | Port d'accès direct en local |
| MYSQL_ROOT_PASSWORD | Mot de passe root de la base |
| DATABASE_PASSWORD | Mot de passe de l'utilisateur nextcloud |
Stack
services:
nextcloud:
image: linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- <APPDATA>/Nextcloud/Config:/config
- <APPDATA>/Nextcloud/Data:/data
ports:
- ${PORT}:443
restart: unless-stopped
depends_on:
- nextcloud_db
networks:
- default
- proxy
nextcloud_db:
image: linuxserver/mariadb:latest
container_name: nextcloud_db
labels:
- com.centurylinklabs.watchtower.enable=false
environment:
- PUID=${PUID}
- PGID=${PGID}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${TZ}
- MYSQL_DATABASE=nextcloud_db
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${DATABASE_PASSWORD}
volumes:
- <APPDATA>/Nextcloud/DB:/config
restart: unless-stopped
networks:
- default
networks:
proxy:
external: true
nextcloud:
image: linuxserver/nextcloud:latest
container_name: nextcloud
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
volumes:
- <APPDATA>/Nextcloud/Config:/config
- <APPDATA>/Nextcloud/Data:/data
ports:
- ${PORT}:443
restart: unless-stopped
depends_on:
- nextcloud_db
networks:
- default
- proxy
nextcloud_db:
image: linuxserver/mariadb:latest
container_name: nextcloud_db
labels:
- com.centurylinklabs.watchtower.enable=false
environment:
- PUID=${PUID}
- PGID=${PGID}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- TZ=${TZ}
- MYSQL_DATABASE=nextcloud_db
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${DATABASE_PASSWORD}
volumes:
- <APPDATA>/Nextcloud/DB:/config
restart: unless-stopped
networks:
- default
networks:
proxy:
external: true
La base est exclue de la mise à jour automatique : son image est en latest et pourrait changer de version majeure sans prévenir.
Commandes occ
L'image LinuxServer.io fournit un raccourci occ, qui s'exécute avec le bon utilisateur (abc) :
docker exec -it nextcloud occ status # version, besoin de mise à niveau
docker exec -it nextcloud occ upgrade # après une mise à jour de l'image si demandé
docker exec -it nextcloud occ app:update --all # mettre à jour les applications
docker exec -it nextcloud occ db:add-missing-indices # après l'avertissement « index manquants »
docker exec -it nextcloud occ maintenance:mode --on # avant une opération lourde (--off ensuite)
docker exec -it nextcloud occ files:scan --all # fichiers ajoutés hors de Nextcloud
docker exec -it nextcloud occ upgrade # après une mise à jour de l'image si demandé
docker exec -it nextcloud occ app:update --all # mettre à jour les applications
docker exec -it nextcloud occ db:add-missing-indices # après l'avertissement « index manquants »
docker exec -it nextcloud occ maintenance:mode --on # avant une opération lourde (--off ensuite)
docker exec -it nextcloud occ files:scan --all # fichiers ajoutés hors de Nextcloud
Sécurité
Double authentification TOTP activée (application twofactor_totp).
Sauvegarde
- Base : dump SQL par l'utilisateur applicatif, fait par le script de Sauvegarde. Les fichiers bruts Nextcloud/DB sont exclus.
- Fichiers : <APPDATA>/Nextcloud/Data et Config, sauvegardés tels quels.