Docker : /Volumes en lecture seule sauf le site, MACHD masqué, mot de passe à côté du compose

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
This commit is contained in:
FabriceandClaude Opus 5.5 committed 2026-10-10 08:54:04 +00:00
1 parent ff7e13ad28
commit b54ae69b19
3 files changed
+15 -17

No files matched your search

+3 -3
View File
@@ -185,12 +185,12 @@ Pour administrer le site depuis son adresse publique (bouton « Connexion » en
Plutôt que de laisser `rtg interface` ouvert dans un Terminal, on peut le faire tourner dans un conteneur, à côté du nginx du site. Le `Dockerfile` est à la racine de RoadTripsGenerator (Python, ffmpeg, exiftool).
1. Définir le mot de passe sur le Mac, une fois : `rtg mot-de-passe`. Le conteneur lit le même fichier.
2. Ajouter le service `rtg` au `docker-compose.yml` du site (voir `exemples/docker-compose.yml`) et copier `exemples/admin.sh` à côté. Le conteneur ne voit que le dossier du site (lecture et écriture), le dossier des rushs (lecture seule) et le mot de passe (lecture seule), aux mêmes chemins que sur le Mac : les sources notées dans les `voyage.toml` restent valables. Dans Docker Desktop (Réglages → Resources → File sharing), seuls ces deux dossiers doivent être partagés, pas tout `/Volumes`.
1. Définir le mot de passe sur le Mac, une fois : `rtg mot-de-passe`, puis en copier l'empreinte à côté du `docker-compose.yml` : `mkdir -p rtg-acces && cp ~/.config/rtg/acces.toml rtg-acces/`.
2. Ajouter le service `rtg` au `docker-compose.yml` du site (voir `exemples/docker-compose.yml`) et copier `exemples/admin.sh` à côté. Le conteneur voit les disques de `/Volumes` aux mêmes chemins que sur le Mac, ce qui garde valables les sources notées dans les `voyage.toml`. Tous sont en lecture seule, sauf le dossier du site. Le disque interne (ici `MACHD`) est masqué par un dossier vide ; quant au lien `/Volumes/Macintosh HD`, il pointe dans le conteneur vers le système du conteneur, pas vers celui du Mac. Docker Desktop doit partager `/Volumes` (Réglages → Resources → File sharing) ; ce réglage permet seulement aux conteneurs de le demander, et seul `rtg` le fait.
3. Dans `nginx.conf`, faire pointer `/admin/` vers ce conteneur : voir `exemples/nginx-admin.conf`. Le site reste en ligne même si le conteneur RTG est arrêté.
4. `docker compose build rtg`, puis `docker compose up -d` (le site ; l'administration ne démarre pas avec lui).
L'administration est **à la demande** : `./admin.sh` l'ouvre (avec les rushs si leur disque est branché, sans eux sinon), `./admin.sh stop` la ferme, et elle se ferme d'elle-même après 2 heures sans activité (variable `RTG_ARRET_INACTIF`, en minutes). Fermée, `/admin/` affiche « Administration fermée » et le site reste en ligne.
L'administration est **à la demande** : `./admin.sh` l'ouvre, `./admin.sh stop` la ferme, et elle se ferme d'elle-même après 2 heures sans activité (variable `RTG_ARRET_INACTIF`, en minutes). Fermée, `/admin/` affiche « Administration fermée » et le site reste en ligne.
Après une mise à jour de RTG : `docker compose build rtg`. Disque des rushs branché après l'ouverture : relancer `./admin.sh`. L'encodage utilise les processeurs attribués à Docker (réglages de Docker Desktop, « Resources ») ; l'encodeur matériel VideoToolbox du Mac n'est pas disponible dans le conteneur.
+3 -9
View File
@@ -1,22 +1,16 @@
#!/bin/sh
# Ouvre ou ferme l'administration RTG du site.
# ./admin.sh ouvrir (avec les rushs si le LaCie est branché)
# ./admin.sh ouvrir
# ./admin.sh stop fermer
# À placer à côté du docker-compose.yml du site.
cd "$(dirname "$0")" || exit 1
GOPRO=/Volumes/LaCie/Perso/Gopro
if [ "$1" = "stop" ]; then
docker compose stop rtg && echo "Administration fermée."
exit
fi
if [ -d "$GOPRO" ]; then
export RUSHS="$GOPRO"
echo "Rushs : $GOPRO (lecture seule)"
else
echo "LaCie débranché : administration sans les rushs (pas d'encodage vidéo)."
fi
# --force-recreate : le conteneur suit l'état du LaCie à chaque ouverture.
[ -d /Volumes/LaCie ] || echo "LaCie débranché : les rushs ne seront pas accessibles (pas d'encodage vidéo)."
# --force-recreate : le conteneur voit les disques branchés au moment de l'ouverture.
docker compose up -d --force-recreate rtg \
&& echo "Administration ouverte : https://roadtrips.ouaibe.fr/admin/ (se ferme seule après 2 h sans activité)"
+9 -5
View File
@@ -17,6 +17,7 @@ services:
# Administration à la demande : elle ne démarre pas avec le reste.
# ouvrir : ./admin.sh fermer : ./admin.sh stop
# Mot de passe, une fois : mkdir -p rtg-acces && cp ~/.config/rtg/acces.toml rtg-acces/
# Elle se ferme d'elle-même après 2 h sans activité (RTG_ARRET_INACTIF, en minutes).
rtg:
build: /Volumes/CLEROADTRIPS/RoadTripsGenerator
@@ -24,12 +25,15 @@ services:
restart: "no"
networks:
- ouaibe_network
# Seulement ce dont RTG a besoin, aux mêmes chemins que sur le Mac (les
# sources notées dans les voyage.toml restent valables) :
# Disques du Mac aux mêmes chemins que sur le Mac (les sources notées dans
# les voyage.toml restent valables), tous en lecture seule sauf le site.
# Docker Desktop doit partager /Volumes (Réglages → Resources → File sharing).
volumes:
- /Volumes/CLEROADTRIPS/Road-Trips:/Volumes/CLEROADTRIPS/Road-Trips # le site (lecture et écriture)
- ${RUSHS:-./sans-rushs}:/Volumes/LaCie/Perso/Gopro:ro # les rushs (lecture seule), voir admin.sh
- ${HOME}/.config/rtg:/config/rtg:ro # le mot de passe (rtg mot-de-passe)
- /Volumes:/Volumes:ro # tous les disques, lecture seule
- /Volumes/CLEROADTRIPS/Road-Trips:/Volumes/CLEROADTRIPS/Road-Trips # le site, lecture et écriture
- type: tmpfs # MACHD masqué : vide dans le conteneur
target: /Volumes/MACHD
- ./rtg-acces:/config/rtg:ro # mot de passe (copie de acces.toml)
networks:
ouaibe_network: