diff --git a/README.md b/README.md index 105ea9a..30f6da6 100644 --- a/README.md +++ b/README.md @@ -186,13 +186,13 @@ 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. Dans Docker Desktop, partager `/Volumes` (Réglages → Resources → File sharing → « + »), sinon le conteneur ne peut pas lire les disques externes. Ajouter le service `rtg` au `docker-compose.yml` du site : voir `exemples/docker-compose.yml`. Le conteneur voit `/Volumes` aux mêmes chemins que le Mac : la clé, le disque des rushs… Les sources notées dans les `voyage.toml` restent donc valables. +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`. 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** : `docker compose up -d rtg` l'ouvre, `docker compose stop rtg` 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 (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. -Après une mise à jour de RTG : `docker compose build rtg`. Un disque branché après le démarrage du conteneur peut demander `docker compose restart rtg`. 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. +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. Le bouton n'est qu'un lien : la protection est celle de l'interface (mot de passe, blocage après plusieurs essais faux, cookie de session limité à `/admin/`, envoyé seulement en HTTPS). diff --git a/exemples/admin.sh b/exemples/admin.sh new file mode 100755 index 0000000..68ace6b --- /dev/null +++ b/exemples/admin.sh @@ -0,0 +1,22 @@ +#!/bin/sh +# Ouvre ou ferme l'administration RTG du site. +# ./admin.sh ouvrir (avec les rushs si le LaCie est branché) +# ./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. +docker compose up -d --force-recreate rtg \ + && echo "Administration ouverte : https://roadtrips.ouaibe.fr/admin/ (se ferme seule après 2 h sans activité)" diff --git a/exemples/docker-compose.yml b/exemples/docker-compose.yml index d11b4be..6e6c216 100644 --- a/exemples/docker-compose.yml +++ b/exemples/docker-compose.yml @@ -16,7 +16,7 @@ services: - traefik.http.routers.ouaibe_roadtrip.entrypoints=websecure # Administration à la demande : elle ne démarre pas avec le reste. - # ouvrir : docker compose up -d rtg fermer : docker compose stop rtg + # ouvrir : ./admin.sh fermer : ./admin.sh stop # Elle se ferme d'elle-même après 2 h sans activité (RTG_ARRET_INACTIF, en minutes). rtg: build: /Volumes/CLEROADTRIPS/RoadTripsGenerator @@ -24,11 +24,12 @@ 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) : volumes: - # La clé, le LaCie… aux mêmes chemins que sur le Mac. Docker Desktop doit - # partager /Volumes : Réglages → Resources → File sharing → « + » → /Volumes. - - /Volumes:/Volumes - - ${HOME}/.config/rtg:/config/rtg # le mot de passe défini avec « rtg mot-de-passe » + - /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) networks: ouaibe_network: