Administration native sur le Mac, réencodage sélectif et aide intégrée
- admin.sh : RTG lancé directement sur le Mac (plus de conteneur), nginx joint l'interface par host.docker.internal:8765 ; variante conteneur conservée (admin-docker.sh, docker-compose-conteneur.yml) - Compression : réglages lus dans les fichiers (CRF, codec), refaire seulement le 1080p ou le 720p, seulement si les réglages ont changé ; réglages vidéo propres à chaque voyage ; « Compression actuelle » affichée - Plus d'arrêt automatique après 2 h d'inactivité (--arret-inactif, 0 par défaut) ; arrêt propre qui attend la fin des encodages en cours - Aide contextuelle dans l'interface (rtg/interface/aide) ; README centré sur l'installation et la mise en place - Cœurs attribués au conteneur détectés (cgroup) et signalés Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
This commit is contained in:
1 parent
b54ae69b19
commit
ada3d76f50
38 files changed
+1067
-264
No files matched your search
@@ -0,0 +1,22 @@
|
||||
# Accès et sécurité
|
||||
|
||||
L'interface permet de modifier le site et de parcourir les disques : elle est protégée.
|
||||
|
||||
## Deux façons d'entrer
|
||||
|
||||
- **La clé d'accès** : à chaque lancement de l'interface, une clé tirée au hasard est ajoutée à l'adresse ouverte dans le navigateur (`…/?jeton=…`) et affichée dans le Terminal ou le journal. Seul celui qui la voit peut entrer. Elle change à chaque lancement.
|
||||
- **Le mot de passe** : défini dans le Terminal avec `rtg mot-de-passe` (10 caractères au moins). Indispensable depuis une autre machine ou depuis le site. `rtg mot-de-passe --tester` vérifie un mot de passe ; `--supprimer` l'efface.
|
||||
|
||||
Le mot de passe n'est enregistré nulle part en clair : seule une empreinte est gardée, hors du site, dans `~/.config/rtg/acces.toml`.
|
||||
|
||||
## Session
|
||||
|
||||
Une fois entré, le navigateur garde une session de 12 heures après la dernière action. Elle est perdue quand l'interface s'arrête. **Se déconnecter** la ferme tout de suite.
|
||||
|
||||
## Protections
|
||||
|
||||
- Après 5 mots de passe faux, l'adresse IP doit attendre une minute, puis deux, quatre… jusqu'à une heure.
|
||||
- Le cookie de session n'est lisible que par l'interface, et n'est envoyé qu'en HTTPS quand le site l'est.
|
||||
- Une autre page ouverte dans le navigateur ne peut rien modifier, et l'interface refuse d'être affichée dans un cadre.
|
||||
|
||||
Pour l'accès depuis le site, voir [Administration depuis le site](administration.md).
|
||||
@@ -0,0 +1,41 @@
|
||||
# Administration depuis le site
|
||||
|
||||
Le bouton **Connexion** de l'accueil mène à `https://roadtrips.ouaibe.fr/admin/`. Le serveur web y fait suivre les demandes vers l'interface RTG, qui tourne directement sur le Mac :
|
||||
|
||||
```
|
||||
Traefik (HTTPS) → nginx (le site, dans Docker) → /admin/ → RTG sur le Mac
|
||||
```
|
||||
|
||||
L'interface ne tourne que quand on en a besoin. Fermée, `/admin/` affiche « Administration fermée » et le site reste en ligne.
|
||||
|
||||
## Au quotidien
|
||||
|
||||
Dans le dossier du `docker-compose.yml` du site :
|
||||
|
||||
```
|
||||
./admin.sh ouvrir l'administration
|
||||
./admin.sh stop la fermer
|
||||
```
|
||||
|
||||
Elle tourne en arrière-plan : inutile de garder le Terminal ouvert. Son journal est dans `rtg-admin.log`, à côté du script. Fermer pendant un encodage l'arrête proprement ; les vidéos finies sont gardées.
|
||||
|
||||
À la maison, devant le Mac, on peut aussi simplement taper `rtg interface` dans le Terminal : ce sont les mêmes écrans, sans passer par le site.
|
||||
|
||||
## Disques et vitesse
|
||||
|
||||
L'interface tourne sur le Mac : elle voit tous les disques branchés, comme n'importe quelle application, et encode à pleine vitesse (tous les cœurs performance, encodeur matériel possible dans les [Réglages du site](reglages.md)).
|
||||
|
||||
Un disque des sources débranché est signalé dans [Sources](sources.md) ; les vidéos déjà encodées restent en ligne.
|
||||
|
||||
## Avant d'éjecter un disque
|
||||
|
||||
- **Disque de sources** : attendre la fin de l'encodage en cours, ou fermer l'administration.
|
||||
- **Clé du site** : nginx s'en sert en permanence ; `docker compose stop` d'abord, `docker compose up -d` une fois rebranchée.
|
||||
|
||||
## Après une mise à jour de RTG
|
||||
|
||||
`./admin.sh stop`, puis `./admin.sh`.
|
||||
|
||||
## Mise en place
|
||||
|
||||
L'installation (nginx, mot de passe, `admin.sh`) est décrite dans le README de RoadTripsGenerator, sur git, section « Administration depuis le site : mise en place ».
|
||||
@@ -0,0 +1,22 @@
|
||||
# Carte et corrections
|
||||
|
||||
Corriger à la souris ce que les fichiers d'origine ont de faux. Les corrections sont enregistrées aussitôt dans `voyage.toml` (ou `site.toml` pour une zone privée) et appliquées **à la prochaine génération** ; les fichiers d'origine ne changent pas.
|
||||
|
||||
## Photos et vidéos
|
||||
|
||||
- **Déplacer** : glisser le marqueur (rouge pour une photo, bleu pour une vidéo). Un marqueur cerclé d'orange a une position corrigée à la main ; sa bulle propose de revenir à la position d'origine.
|
||||
- **Placer un média sans position** : cliquer son nom dans « Médias sans position », puis cliquer sur la carte. Échap annule.
|
||||
- Le sélecteur **Jour** et les cases **Photos** / **Vidéos** filtrent l'affichage. Le fond **Satellite** (bouton des calques) aide à placer précisément.
|
||||
|
||||
## Zones masquées
|
||||
|
||||
Les points de trace situés dans une zone sont retirés des pages : autour de chez soi, ou sur une erreur du GPS.
|
||||
|
||||
1. **+ Masquer une zone**, puis cliquer au centre ; un nouveau clic déplace la zone.
|
||||
2. Régler le **rayon**.
|
||||
3. Cocher **Zone privée** pour la retirer de **tous les voyages** (elle est alors notée dans `site.toml`).
|
||||
4. **Enregistrer la zone**.
|
||||
|
||||
Une zone se supprime depuis la liste, bouton **Supprimer**.
|
||||
|
||||
Après des corrections, régénérer le voyage ([Générer](generer.md)) ; pour une zone privée, régénérer les voyages concernés.
|
||||
@@ -0,0 +1,49 @@
|
||||
# Générer
|
||||
|
||||
Fabrique tout ce que le site affiche pour ce voyage, puis refait l'accueil.
|
||||
|
||||
## Les étapes
|
||||
|
||||
1. **Sources** : les traces sont réparties par jour, les photos copiées.
|
||||
2. **Positions** : dates et positions GPS des photos et des vidéos (exiftool).
|
||||
3. **Vidéos** : encodage des rushs.
|
||||
4. **Photos** : versions allégées pour le web, et une image d'aperçu par vidéo.
|
||||
5. **Pages** : cartes du voyage et de chaque jour.
|
||||
6. **Accueil** : page d'accueil, rubriques, carte globale.
|
||||
|
||||
Ce qui est déjà à jour n'est pas refait. Le journal s'affiche en dessous. **Arrêter** interrompt proprement : les vidéos finies sont gardées.
|
||||
|
||||
## Compression des vidéos
|
||||
|
||||
Chaque rush donne deux vidéos :
|
||||
|
||||
- **1080p en HEVC (H.265)**, environ 40 % plus léger que du H.264 à qualité égale ;
|
||||
- **720p en H.264**, chargée par défaut et lisible partout.
|
||||
|
||||
Le tableau **Compression des vidéos** montre, pour chaque version :
|
||||
|
||||
- **Vidéos actuelles** : les réglages relus dans les fichiers eux-mêmes (les encodeurs x265 et x264 y inscrivent leurs réglages, par exemple « HEVC CRF 26 »). **conforme** ou **différent** les compare aux prochains encodages. Pour un voyage de plus de 40 vidéos, un échantillon est lu.
|
||||
- **Prochains encodages** : ce que donneraient les réglages actuels.
|
||||
|
||||
Le **CRF** règle la qualité : plus il est élevé, plus les fichiers sont légers et moins la qualité est bonne. Les qualités du site correspondent à : Économe 28 / 27, Équilibrée 26 / 25, Haute 23 / 22 (1080p / 720p).
|
||||
|
||||
## Réglages vidéo propres à ce voyage
|
||||
|
||||
Pour tester une compression sur un seul voyage, sans toucher au reste du site : qualité, vitesse de l'encodeur (plus lent = un peu plus léger à qualité égale), ou un **CRF précis** pour le 1080p et le 720p. Laisser vide pour suivre les réglages du site. Ces réglages sont notés dans `voyage.toml`, table `[video]`.
|
||||
|
||||
## Quelles vidéos encoder
|
||||
|
||||
- **Seulement celles qui manquent** (par défaut).
|
||||
- **Aussi celles faites avec d'autres réglages** : RTG relit les réglages de chaque vidéo et ne refait que celles qui diffèrent. Relancé avec les mêmes réglages, il ne refait rien.
|
||||
- **Tout réencoder**.
|
||||
|
||||
**Versions concernées** limite le travail au **1080p** ou au **720p** ; l'autre version est gardée telle quelle. Le journal affiche pour chaque vidéo la nouvelle taille et l'ancienne (« avant … »).
|
||||
|
||||
**Ne pas toucher aux vidéos** saute l'encodage (utile quand le disque des rushs n'est pas branché). **Refaire aussi les photos web et les pages** les refait même si elles sont à jour.
|
||||
|
||||
## Boutons
|
||||
|
||||
- **Générer le voyage** : toutes les étapes.
|
||||
- **Encoder les vidéos seulement** : l'étape Vidéos seule, avec les choix ci-dessus.
|
||||
|
||||
Pour essayer un réglage sur Aisne, par exemple : réglages propres au voyage, puis « aussi celles faites avec d'autres réglages », « 1080p seulement » et « Encoder les vidéos seulement ».
|
||||
@@ -0,0 +1,25 @@
|
||||
# Prise en main
|
||||
|
||||
RTG fabrique un site web de road-trips : pour chaque voyage, une carte par jour avec la trace GPS, les photos, les vidéos et le récit. Le site produit est statique : de simples fichiers, servis tels quels par le serveur web.
|
||||
|
||||
## Les étapes, pour un nouveau voyage
|
||||
|
||||
1. **Mes voyages → Nouveau voyage** : un titre, un nom de dossier, une rubrique. Voir [Mes voyages](voyages.md).
|
||||
2. **Onglet Sources** : indiquer où sont les traces GPS, les vidéos et les photos d'origine. Elles restent où elles sont. Voir [Sources](sources.md).
|
||||
3. **Onglet Journées** : vérifier les jours et rattacher à un jour les traces qui n'ont pas d'heures. Voir [Journées](journees.md).
|
||||
4. **Onglet Générer** : lancer la génération, qui encode les vidéos, prépare les photos et fabrique les pages. Voir [Générer](generer.md).
|
||||
5. **Onglets Infos et récit, Carte et corrections** : écrire le récit, corriger une photo mal placée, masquer une portion de trace, puis régénérer. Voir [Infos et récit](infos.md) et [Carte et corrections](carte.md).
|
||||
|
||||
Les fichiers d'origine ne sont jamais modifiés. Tout ce que fait l'interface est noté dans deux fichiers texte, `site.toml` (réglages du site) et `voyage.toml` (un par voyage). L'installation, les commandes du Terminal et le détail de ces fichiers sont dans le README de RoadTripsGenerator, sur git.
|
||||
|
||||
## Toutes les pages d'aide
|
||||
|
||||
- [Mes voyages](voyages.md) — la liste, les pastilles, créer un voyage
|
||||
- [Sources](sources.md) — où RTG trouve les fichiers d'origine
|
||||
- [Journées](journees.md) — les jours du voyage, les traces sans heures
|
||||
- [Carte et corrections](carte.md) — déplacer une photo, masquer une zone
|
||||
- [Infos et récit](infos.md) — titre, moto, récit en Markdown
|
||||
- [Générer](generer.md) — génération, compression des vidéos
|
||||
- [Réglages du site](reglages.md)
|
||||
- [Accès et sécurité](acces.md) — clé d'accès, mot de passe
|
||||
- [Administration depuis le site](administration.md) — ouvrir, fermer, disques des sources
|
||||
@@ -0,0 +1,27 @@
|
||||
# Infos et récit
|
||||
|
||||
## Titre et moto
|
||||
|
||||
- **Titre** : le nom du voyage sur l'accueil, dans les listes et dans la légende de la carte globale.
|
||||
- **Moto** : facultative ; affichée dans la légende de la carte globale, par exemple « Ete 2026 (BMW R 1300 GS Adventure) ».
|
||||
|
||||
La rubrique vient du dossier où le voyage est rangé (voir [Mes voyages](voyages.md)).
|
||||
|
||||
## Récit
|
||||
|
||||
Le récit est le fichier `voyage.md`, en Markdown, affiché dans un panneau à côté des cartes du voyage.
|
||||
|
||||
Deux liens spéciaux, qui marchent aussi bien en local qu'en ligne :
|
||||
|
||||
```
|
||||
[Carte du jour](jour:2026-08-01)
|
||||
[Le col](media:photos/IMG_4831.jpeg)
|
||||
[La descente](media:videos/GH011272.mp4)
|
||||
```
|
||||
|
||||
- `jour:AAAA-MM-JJ` ouvre la carte de ce jour ;
|
||||
- `media:…` ouvre un média du voyage (chemin depuis le dossier du voyage).
|
||||
|
||||
Un lien vers un jour sans carte ou vers un média introuvable est signalé dans le journal de génération.
|
||||
|
||||
Enregistrer, puis régénérer le voyage pour mettre le site à jour ([Générer](generer.md)).
|
||||
@@ -0,0 +1,19 @@
|
||||
# Journées
|
||||
|
||||
Les jours du voyage d'après les traces GPS, avec leurs kilomètres, et la carte des traces (une couleur par jour).
|
||||
|
||||
## Traces à rattacher à un jour
|
||||
|
||||
Une trace **sans heures** (un itinéraire préparé, par exemple) et sans date AAAA-MM-JJ dans son nom ne peut pas être placée seule. Elle apparaît en pointillé sur la carte, dans un encadré jaune. Pour chacune :
|
||||
|
||||
- choisir la date puis **OK** ;
|
||||
- ou accepter la **suggestion** (« Le 11 juin ? »). RTG propose le jour où des photos ou des vidéos ont été prises le long de la trace ;
|
||||
- ou, pour plusieurs traces d'un coup, **Répartir** : un jour par trace, dans l'ordre des noms, à partir de la date choisie.
|
||||
|
||||
## Imposer un jour
|
||||
|
||||
Le détail « Les N fichiers de traces et leur jour » permet d'imposer un jour à n'importe quelle trace, même datée ; **Annuler** revient au jour déduit. Ce choix est noté dans `voyage.toml`, table `[dates_traces]`.
|
||||
|
||||
Les jours se changent à minuit, sauf avant l'heure réglée dans [Réglages du site](reglages.md) (4 h par défaut) : une étape finie à 1 h du matin reste sur la veille.
|
||||
|
||||
Les modifications sont prises en compte à la prochaine génération ([Générer](generer.md)).
|
||||
@@ -0,0 +1,38 @@
|
||||
# Réglages du site
|
||||
|
||||
Ils valent pour tous les voyages et sont enregistrés dans `site.toml`. Un voyage peut avoir ses propres réglages vidéo (onglet [Générer](generer.md)).
|
||||
|
||||
## Site
|
||||
|
||||
- **Titre** : affiché en haut de l'accueil.
|
||||
- **Adresse publique** : l'adresse du site en ligne (par exemple `https://roadtrips.ouaibe.fr/`), pour les liens des fichiers KML.
|
||||
- **Voyages récents par rubrique** : combien l'accueil en montre avant le lien « Tout voir ».
|
||||
|
||||
## Vidéos
|
||||
|
||||
- **Qualité** : Économe, Équilibrée (le réglage d'origine) ou Haute. Voir les valeurs de CRF dans [Générer](generer.md).
|
||||
- **Encodeur** : **processeur** (x265 et x264, meilleure qualité à taille égale) ou **matériel** (VideoToolbox du Mac : bien plus rapide, fichiers plus gros ; indisponible dans le conteneur Docker).
|
||||
- **Vitesse** : `medium` par défaut ; plus lent = un peu plus léger à qualité égale, mais plus long.
|
||||
- **Vidéos encodées en parallèle** : 0 = automatique selon le nombre de cœurs.
|
||||
|
||||
## Photos
|
||||
|
||||
- **Plus grand côté** (1600 px par défaut) et **qualité JPEG** (80) des versions web. Le clic sur une photo ouvre l'original.
|
||||
- **Placer les photos sans GPS d'après l'heure et la trace** : à 5 minutes près, quand la trace a des heures.
|
||||
|
||||
## Journées
|
||||
|
||||
- **Fuseau horaire** du voyage (Europe/Paris par défaut).
|
||||
- **Heure de changement de jour** (4 h) : une étape finie avant cette heure reste sur la veille.
|
||||
|
||||
## Carte globale
|
||||
|
||||
Liens de cartes Google My Maps à reprendre, un par ligne. Leurs tracés sont récupérés une fois et ajoutés à la carte de l'accueil, sur fond OpenStreetMap.
|
||||
|
||||
## Administration depuis le site
|
||||
|
||||
Adresse de l'interface (par exemple `/admin/`). Si elle est remplie, l'accueil affiche un bouton « Connexion » vers cette adresse, après « Refaire l'accueil ». Voir [Administration depuis le site](administration.md).
|
||||
|
||||
## Système
|
||||
|
||||
Vérifie que Python, exiftool et ffmpeg (avec libx265 et libx264) sont installés, et l'espace libre sur le disque du site.
|
||||
@@ -0,0 +1,24 @@
|
||||
# Sources
|
||||
|
||||
Où se trouvent les fichiers d'origine du voyage : traces GPS, vidéos (rushs) et photos. Ils peuvent être sur n'importe quel disque, nommés n'importe comment, et ne sont **jamais modifiés**.
|
||||
|
||||
## Ajouter ou retirer une source
|
||||
|
||||
- **Choisir un dossier…** ouvre un explorateur : naviguer, puis **Choisir ce dossier**. Le nombre de fichiers reconnus s'affiche en bas.
|
||||
- Ou coller un chemin (dossier ou fichier) puis **Ajouter**.
|
||||
- **Retirer** enlève la source de la liste, sans rien effacer.
|
||||
|
||||
Un type de source peut en avoir plusieurs (par exemple deux dossiers de photos).
|
||||
|
||||
## Ce que RTG en fait
|
||||
|
||||
- **Traces GPS** : réparties par journée et recopiées dans `routes/AAAA-MM-JJ.gpx`. Le jour vient des heures de la trace, à défaut d'une date AAAA-MM-JJ dans le nom du fichier, à défaut du jour choisi dans [Journées](journees.md).
|
||||
- **Photos** : copiées dans `photos/`. Les HEIC de l'iPhone sont converties en JPEG.
|
||||
- **Vidéos** : lues directement pour l'encodage, sans copie.
|
||||
|
||||
## Pastilles
|
||||
|
||||
- **N fichiers** : la source est lue.
|
||||
- **introuvable** ou **disque débranché ?** : le chemin n'existe pas, ou le disque n'est pas branché. Les vidéos déjà encodées restent en ligne ; seules les nouvelles attendent le disque.
|
||||
|
||||
Dans la variante où l'administration tourne dans un conteneur Docker, seuls les disques déclarés dans `admin-docker.sh` sont visibles.
|
||||
@@ -0,0 +1,27 @@
|
||||
# Mes voyages
|
||||
|
||||
La liste de tous les voyages du site, par rubrique, du plus récent au plus ancien.
|
||||
|
||||
## Rubriques
|
||||
|
||||
- Un voyage rangé **à la racine du site** fait partie de la rubrique **Voyages**. Ce sont aussi ceux de la carte globale de l'accueil.
|
||||
- Un voyage rangé **dans un dossier** (par exemple `Balades/Aisne-06-2026`) fait partie d'une rubrique du nom de ce dossier.
|
||||
|
||||
## Les colonnes
|
||||
|
||||
| Colonne | Signification |
|
||||
| --- | --- |
|
||||
| Dates, Jours | d'après les traces GPS |
|
||||
| Vidéos web | vidéos encodées / rushs trouvés. « sources absentes » : le disque des rushs n'est pas branché, les vidéos déjà encodées restent en ligne |
|
||||
| Photos web | photos allégées pour le web / photos du voyage |
|
||||
| Pages | **à jour**, **à refaire** (photos, vidéos ou récit plus récents que les pages) ou **jamais générées** |
|
||||
| ⚠️ | points à vérifier (survoler pour les lire) : source introuvable, trace sans jour… |
|
||||
|
||||
Un clic sur le titre ouvre le voyage ; **Voir ↗** ouvre sa page sur le site.
|
||||
|
||||
## Boutons
|
||||
|
||||
- **Nouveau voyage** : un titre (affiché sur le site), un nom de dossier (dans l'adresse des pages : sans espaces ni accents, par exemple `Ete-2027`), la moto (facultative) et la rubrique. RTG crée le dossier et son `voyage.toml` ; il reste à indiquer les [Sources](sources.md).
|
||||
- **Refaire l'accueil** : régénère la page d'accueil, les pages des rubriques et la carte globale, sans toucher aux voyages.
|
||||
|
||||
Le bandeau en haut à droite montre le traitement en cours ou le dernier terminé ; un clic ouvre son journal.
|
||||
Reference in new issue
Block a user