# A - synthèse des procédures et état de fonctionnement

*Rédigé le 13/09/2026, ligne Seedbox-Films ajoutée le 14/09. La colonne « Dernière utilisation connue » est figée à cette date : la valeur vivante est relue chaque matin par le canari et affichée dans le tableau « Procédures » en pied de la [page de veille du jour](https://bookstack.juxjux.ovh/link/251).*

## Ce que cette page fait

Depuis juin, les procédures se sont multipliées : compression de PDF et de photos, conversion de musique, sauvegardes, synchronisations, tunnels. Chacune a sa page détaillée. Celle-ci les rassemble en une ligne chacune — quoi, où, quand, dernière trace, comment vérifier — pour répondre vite à « est-ce que ça tourne encore ? ».

Trois familles selon **qui peut les voir** : le VPS observe directement ce qui tourne chez lui et, par le tunnel, le NAS ; il ne voit pas le PC. Les procédures du PC laissent donc un petit fichier **témoin** dans l'arbre Syncthing (`Jux-scripts/Etat-Infra/temoins/`) à chaque passe réelle, et c'est lui que le canari lit.

## Automatiques sur le VPS

Tournent sans intervention. Le canari du matin les relit chaque jour ; toute dérive apparaît dans la page de veille.

<table id="bkmrk-proc%C3%A9durece-qu%27elle-"><thead><tr><th>Procédure</th><th>Ce qu'elle fait</th><th>Où / quand</th><th>Dernière utilisation connue</th><th>Vérification</th></tr></thead><tbody><tr><td>**Sauvegardes VPS → kDrive**  
[page 176](https://bookstack.juxjux.ovh/link/176)</td><td>`vps_backup.sh` : BookStack, Immich, Joplin, Mealie, Readeck, Baïkal + `~/Documents` (Syncthing) en 7z vers kDrive. Rotation 7 jours ; copie mensuelle de Documents sur 12 mois.</td><td>VPS · cron 2h UTC (14 min, Joplin en tête)</td><td>13/09 02:13 UTC — BILAN 8/8</td><td>`tail -3 /opt/backups/backup.log` → `BILAN 8/8 OK`. Première ligne de la veille.</td></tr><tr><td>**Komga-PDF**  
[page 220](https://bookstack.juxjux.ovh/link/220)</td><td>Un PDF déposé dans `D:\Syncthing\komga-pdf\` revient compressé par StirlingPDF dans `komga-compressed/` (−57 à −66 %). Écriture atomique, 3 tentatives, journal persistant.</td><td>VPS · service `komga-watch` (inotify + rebalayage 10 min)</td><td>09/09 — *Cuisine et Vins de France 09-10.2026*, 59,9 → 20,5 Mio en 62 s</td><td>`journalctl -u komga-watch -n 20` ; `/home/debian/logs/komga_compress.log`. Le canari teste le login Stirling chaque matin (panne muette du 7 au 9/09).</td></tr><tr><td>**Komga-Cache**  
[page 168](https://bookstack.juxjux.ovh/link/168)</td><td>`komga_scan.sh` : `vfs/refresh` du montage kDrive puis scan des 23 bibliothèques, avant le scan interne de Komga à 4 h. Sans lui un fichier déposé reste invisible jusqu'à 72 h.</td><td>VPS · cron 3h45 UTC</td><td>13/09 — 23 scans, aucun échec</td><td>`tail /home/debian/logs/komga_scan.log` → `aucun echec`.</td></tr><tr><td>**Seedbox-Films**  
[page 318](https://bookstack.juxjux.ovh/link/318)</td><td>`seedbox_films.sh` : les films du dossier `FILMS` de la seedbox (WebDAV) copiés vers kDrive `Videos_NAS/video/movies` sans toucher le disque du VPS, puis `vfs/refresh` du montage et scan de la seule bibliothèque Jellyfin « Films récents ». `copy` jamais `sync` ; mémoire locale des copies (kDrive liste les gros fichiers frais avec retard).</td><td>VPS · cron toutes les 5 min, muet si rien de nouveau</td><td>14/09 — 7 films, 13,4 Gio en 196 s (~73 Mo/s)</td><td>`tail /home/debian/logs/seedbox_films.log` ; sonde « Seedbox-Films » des tâches nocturnes et ligne « Seedbox » du tableau des procédures de la veille.</td></tr><tr><td>**Scan Navidrome**  
[page 170](https://bookstack.juxjux.ovh/link/170)</td><td>Quick scan quotidien (titres existants) et full scan hebdomadaire par redémarrage du conteneur (nouveaux albums), après `vfs/refresh` du montage music.</td><td>VPS · cron 4h30 UTC quotidien, lundi 3h UTC complet</td><td>13/09 04:30 UTC</td><td>`tail /var/log/navidrome_scan.log` ; API `getScanStatus` → `scanning:false`.</td></tr><tr><td>**Scan Audiobookshelf**  
[page 155](https://bookstack.juxjux.ovh/link/155)</td><td>Scan des 36 bibliothèques par l'API (JWT).</td><td>VPS · cron 4h UTC</td><td>13/09 — SCAN OK 36/36</td><td>`tail /var/log/abs_scan.log` → `SCAN OK`.</td></tr><tr><td>**Compression Joplin**  
[page 222](https://bookstack.juxjux.ovh/link/222)</td><td>Images stockées en base PostgreSQL recompressées en JPEG 85 % ; observatoire réécrit sur la page 166. Terminée depuis juin, ne traite que les nouvelles ressources.</td><td>VPS · timer systemd 3h UTC</td><td>13/09 — 893 ressources, 396,5 Mo économisés (−77,7 %)</td><td>`sudo grep -c Traceback /var/log/joplin-compress.log` doit rester stable ; page 166 datée du jour.</td></tr><tr><td>**Veille FreshRSS → BookStack**  
[page 252](https://bookstack.juxjux.ovh/link/252)</td><td>Page « Veille AAAA-MM-JJ » : articles du jour par thème, dédoublonnés, critères lus dans la page 252. Porte aussi l'état de l'infrastructure et le tableau des procédures.</td><td>VPS · cron 5h30 UTC</td><td>13/09 07:30 — page 314, 13 432 caractères</td><td>La page du jour existe dans le chapitre 251 ; `tail /home/debian/logs/veille_freshrss.log`.</td></tr><tr><td>**Canari Etat-Infra**  
[page 251](https://bookstack.juxjux.ovh/link/251)</td><td>`etat_infra.py` : sauvegardes, 17 services web, conteneurs, certificats servis, montages, Syncthing, WireGuard, NAS, Komga-PDF, journaux nocturnes, disque, agenda Baïkal, procédures → JSON du jour, rendu dans la veille. Muet quand tout va bien.</td><td>VPS · cron 5h15 UTC</td><td>13/09 07:15 — vert, 0 anomalie</td><td>Ligne du haut de la veille (**Sonde absente** = le collecteur n'a pas tourné) ; `/home/debian/logs/etat_infra.log` ; `python3 etat_infra.py --dry-run`.</td></tr><tr><td>**monitor-rclone**  
[page 170](https://bookstack.juxjux.ovh/link/170)</td><td>Vérifie les 7 montages FUSE ; si l'un est mort : restart du service rclone puis des conteneurs qui le lisent. Silencieux quand tout va bien.</td><td>VPS · cron toutes les 5 min</td><td>12/09 00:20 UTC — recovery de `/home/debian/photo` (Immich redémarré)</td><td>`tail /home/debian/logs/rclone-monitor.log` ; ligne « interventions depuis hier » de la veille.</td></tr><tr><td>**Montages rclone kDrive**  
[page 165](https://bookstack.juxjux.ovh/link/165)</td><td>Six montages media (photo, romans, komga, livres, music, audiobooks) + `/mnt/nas_videos` pour Jellyfin. Cache VFS `full` plafonné, sauf video en `minimal`. RC sur 127.0.0.1 uniquement.</td><td>VPS · services systemd permanents</td><td>permanent — 7/7 répondent le 13/09</td><td>`ls` de chaque point de montage ; `rclone rc … vfs/stats` ; ligne « Montages rclone » de la veille.</td></tr><tr><td>**disk\_monitor**</td><td>Alerte au-delà de 85 % de disque, purge `/tmp/rclone-spool*` de plus d'une heure (incident du 24/06).</td><td>VPS · cron toutes les 30 min</td><td>13/09 20:00 — 78 %</td><td>`tail /var/log/disk_monitor.log`.</td></tr></tbody></table>

## Sur le NAS sasnexte

Le VPS y accède par le tunnel WireGuard (10.0.0.2). Les journaux vivent dans `/volume1/homes/SAS_NEXTE/logs/`.

<table id="bkmrk-proc%C3%A9durece-qu%27elle--1"><thead><tr><th>Procédure</th><th>Ce qu'elle fait</th><th>Où / quand</th><th>Dernière utilisation connue</th><th>Vérification</th></tr></thead><tbody><tr><td>**Synchro NAS → kDrive**  
[page 238](https://bookstack.juxjux.ovh/link/238)</td><td>`sync_kdrive_complete.sh` : miroir `rclone sync` de audiobooks, music, photo/2026 et Komga vers `SYNC-pour_VPS/Sync-SASNEXTE`. Version durcie du 28/08 (config absolue, refus de source vide, `--max-delete`).</td><td>NAS · planificateur DSM, quotidien</td><td>13/09 — 4/4 sans CRITICAL</td><td>`grep -l CRITICAL logs/sync_*_$(date +%Y%m%d)*.log` doit être vide ; ligne « NAS sasnexte » de la veille (lecture par ssh).</td></tr><tr><td>**Photos NAS — compression par lots**  
[page 285](https://bookstack.juxjux.ovh/link/285)</td><td>Inventaire (`photos.sqlite`) → lot par album (`traiter_lot_nas.py`, originaux intacts) → validation dans Synology Photos (supprimer = refuser) → bascule en root (`basculer_lot_nas.py --go`). Photos &lt; 2 Mo exclues, EXIF/mtime vérifiés.</td><td>NAS · manuel, lot par lot</td><td>28/08 — lot 2022 (359 photos, 1,47 Go) en validation ; doublons : 75 fichiers en quarantaine</td><td>`python3 traiter_lot_nas.py --lot X --lister` ; colonne `statut` de `photos.sqlite`.</td></tr><tr><td>**Navidrome-Paroles (Beets)**  
[page 312](https://bookstack.juxjux.ovh/link/312)</td><td>Conteneur `beets-paroles` : `beet lyrics` (LRCLIB) → `ecrire_paroles.py` (SYLT/USLT seulement) → `propager_paroles.sh` vers kDrive → full scan Navidrome. Beets n'écrit jamais dans les fichiers.</td><td>NAS · manuel, chaîne `finir_paroles.sh` en `setsid`</td><td>11-12/09 — 13 139 fichiers écrits, 10 998 paroles synchronisées en base (avant : 15)</td><td>Navidrome : compte des titres avec paroles ; conteneur à l'arrêt entre deux passes. Point ouvert : décalage 2-3 s dans le lecteur web.</td></tr><tr><td>**Video → kDrive**  
[page 290](https://bookstack.juxjux.ovh/link/290)</td><td>Les 694 Go du partage `video` copiés dans `Private/Videos_NAS/` et vérifiés par `rclone check --download` ; Jellyfin lit kDrive (×13 plus rapide que le CIFS via WireGuard).</td><td>fait le 30/08 · reste : suppression sur le NAS après observation</td><td>30/08 — 0 différence sur 4 056 fichiers, 629 films dans Jellyfin</td><td>`systemctl status kdrive-video` ; montage `/mnt/nas_videos` dans le canari.</td></tr></tbody></table>

## Sur le poste julie (PC)

Le VPS ne voit pas le PC. Ces procédures déposent un **témoin** (`Jux-scripts/Etat-Infra/temoins/<id>.json`, dans l'arbre Syncthing) à chaque passe réelle ; c'est ce témoin que la veille affiche. « Non observé » = aucune passe depuis l'ajout du témoin (13/09).

<table id="bkmrk-proc%C3%A9durece-qu%27elle--2"><thead><tr><th>Procédure</th><th>Ce qu'elle fait</th><th>Où / quand</th><th>Dernière utilisation connue</th><th>Vérification</th></tr></thead><tbody><tr><td>**Photos-Caesium**  
[page 284](https://bookstack.juxjux.ovh/link/284)</td><td>Dépôt dans `D:\Procedures photos\Tofs a compresse\`, résultat dans `Tofs-compressed\` (caesiumclt q80, EXIF et GPS conservés, −64 % mesuré). Dossiers hors Syncthing volontairement.</td><td>PC · tâche planifiée `Photos-Caesium` (ONLOGON, pythonw), sondage 15 s</td><td>27/08 — 71 photos, 251 → 90 Mo en 22 s</td><td>`Get-CimInstance Win32_Process -Filter "Name='pythonw.exe'"` ; `D:\Procedures photos\logs\` ; témoin `photos-caesium`.</td></tr><tr><td>**Musique-FLAC**  
[page 298](https://bookstack.juxjux.ovh/link/298)</td><td>Dépôt dans `D:\Musique\FLAC à encoder\`, MP3 V0 dans `MP3 fait\`. Tags lus dans le FLAC, réécrits, relus dans le MP3 et comparés ; durée vérifiée (un FLAC tronqué se convertit sans erreur).</td><td>PC · tâche planifiée `Musique-FLAC` **à créer par Julien** ; sinon `flac_mp3.py` à la main</td><td>04/09 — Dry Cleaning, 11 pistes, 824 → 81 Mo en 50 s</td><td>`D:\Musique\logs\flac_mp3.log` ; témoin `musique-flac`.</td></tr><tr><td>**Livres-ISBN**  
[page 300](https://bookstack.juxjux.ovh/link/300)</td><td>`inventaire_livres.py` (métadonnées lues dans les fichiers) puis `resoudre_livres.py` (BnF, OpenLibrary) → CSV rangé par rayon, à relire. **Lecture seule** sur `\\NASMAISON\foxy` : Julien saisit.</td><td>PC · manuel, par lots déposés dans `D:\Procedures Calibre\Dossier à renseigner\`</td><td>04-05/09 — lot Cuisine Géo : 619 fichiers, 233 ISBN (41 pré-cochés)</td><td>CSV dans `D:\Procedures Calibre\ISBN\` ; témoin `livres-isbn`.</td></tr><tr><td>**Calibre-Metadonnees**</td><td>Pour les 1 572 livres déjà dans `metadata.db` : `corriger_auteurs.py`, `resoudre_isbn.py`, `appliquer_isbn.py` (rien sans `--go`). La source Google de Calibre est morte : seul l'ISBN fonctionne.</td><td>PC · manuel, Calibre fermé pour écrire</td><td>31/08 — 76 auteurs corrigeables, 121 ISBN proposés ; relecture en attente</td><td>`propositions.csv` ; `fetch-ebook-metadata.exe -I isbn:…` rend une fiche complète.</td></tr><tr><td>**Mealie-Recettes**  
[page 315](https://bookstack.juxjux.ovh/link/315)</td><td>Note Joplin publiée (carnet « A transcrire dans Mealie » obligatoire) → Claude structure → recette Mealie avec photo, catégories = cuisine, tags = ingrédients.</td><td>PC · à la demande, outils MCP `lire_note_joplin` / `creer_recette`</td><td>13/09 — köttbullar, brochettes d'espadon</td><td>Recette visible dans Mealie ; témoin `mealie`.</td></tr><tr><td>**Surveillance Blink**  
[page 275](https://bookstack.juxjux.ovh/link/275)</td><td>Sonde le module Sync toutes les 30 s et balaie le /24 toutes les 5 min ; CSV dans `D:\Logs\Blink\`. Mesure seulement, ne réveille rien.</td><td>PC · dossier Démarrage (`Surveillance Blink.cmd`, pythonw)</td><td>en service depuis le 30/08</td><td>`pythonw.exe` présent ; `surveiller_blink.py --resume`. Non relayé dans la veille (hors Syncthing).</td></tr><tr><td>**Scan LAN**  
[page 275](https://bookstack.juxjux.ovh/link/275)</td><td>`scan_lan.py --ports` : balayage ping, ARP, OUI, ports, DNS inverse du réseau maison.</td><td>PC · à la demande</td><td>23/08 — 9 appareils</td><td>—</td></tr><tr><td>**PC-Health**  
[page 249](https://bookstack.juxjux.ovh/link/249)</td><td>`collect_bsod.ps1` (élevé) : arrêts anormaux, codes bugcheck, pilote AMD, SMART → ligne ajoutée au journal de la page 249.</td><td>PC · manuel, toutes les 1-2 semaines</td><td>25/08 — 4 épisodes inexpliqués ; action en attente : pilote AMD</td><td>Journal de la page 249 ; `smartctl -A /dev/pd0` (Unsafe\_Shutdown\_Count).</td></tr><tr><td>**Kobo — dépôt d'epub**  
[page 271](https://bookstack.juxjux.ovh/link/271)</td><td>Un epub déposé dans `D:\Syncthing\Kobo\` est servi par nginx à `juxjux.ovh/56ifciz`, à taper dans le navigateur bêta de la liseuse (USB en panne).</td><td>Syncthing + vhost nginx VPS · à la demande</td><td>22/08 — 1 fichier en ligne</td><td>`curl -I https://juxjux.ovh/56ifciz/` → 200 ; ligne « Kobo » de la veille (date du dernier fichier).</td></tr></tbody></table>

## Liaisons permanentes

Pas des procédures à proprement parler, mais tout le reste repose dessus.

<table id="bkmrk-proc%C3%A9durece-qu%27elle--3"><thead><tr><th>Procédure</th><th>Ce qu'elle fait</th><th>Où / quand</th><th>Dernière utilisation connue</th><th>Vérification</th></tr></thead><tbody><tr><td>**Maillage Syncthing**  
[page 174](https://bookstack.juxjux.ovh/link/174)</td><td>Un seul dossier `afltj-njyuy` partagé par 8 appareils, hub VPS. Réplication, pas sauvegarde : la sauvegarde de `~/Documents` couvre ce trou depuis le 30/08.</td><td>permanent · SyncTrayzor sur le PC (home `D:\SyncthingHome`)</td><td>13/09 — 3 appareils vus depuis hier</td><td>GUI `http://127.0.0.1:8384` ; ligne « Syncthing » de la veille (tolérances par appareil dans `config.json`).</td></tr><tr><td>**Tunnel WireGuard**  
[page 245](https://bookstack.juxjux.ovh/link/245)</td><td>VPS 10.0.0.1 (hub) ↔ NAS 10.0.0.2 ↔ PC 10.0.0.3. Lecteur `S:` → `\\10.0.0.2\NEXTE`. Le service Windows meurt après un plantage sec ; relance automatique posée le 13/09.</td><td>permanent · service Windows + `wg0` sur le VPS</td><td>13/09 — poignées de main NAS et PC à la minute</td><td>`Test-NetConnection 10.0.0.2 -Port 445` côté PC ; `sudo wg show` côté VPS ; ligne « WireGuard » de la veille.</td></tr><tr><td>**Baïkal + DAVx5**  
[page 247](https://bookstack.juxjux.ovh/link/247)</td><td>Contacts et agenda : Baïkal source de vérité, DAVx5 (15 min) sur le téléphone, InfCloud et Roundcube en web. Sauvegardé chaque nuit.</td><td>permanent · conteneurs `baikal`, `roundcube`</td><td>permanent — agenda affiché chaque matin</td><td>Bloc « Agenda » sous la ligne du haut de la veille (lecture directe de `db.sqlite`) ; `curl -X PROPFIND` sur `/dav.php/`.</td></tr><tr><td>**Serveurs MCP**</td><td>BookStack et kDrive (npm), et les serveurs Python stdlib de `Jux-scripts/MCP/` : Portainer, Syncthing, Komga, Navidrome, Readeck, Mealie.</td><td>PC · au démarrage de chaque session Claude Code</td><td>13/09 — `mcp_mealie.py` ajouté</td><td>Outils listés en début de session ; un MCP en échec n'apparaît pas.</td></tr></tbody></table>

## Chantiers en attente (relevé du 13/09)

- **Musique-FLAC** : tâche planifiée `Musique-FLAC` à créer par Julien dans sa propre console (piège MSIX).
- **Video → kDrive** : suppression des 694 Go sur le NAS, après période d'observation.
- **Photos NAS** : valider ou refuser le lot 2022 dans Synology Photos, puis `basculer_lot_nas.py --go`.
- **Calibre / Livres-ISBN** : relecture des CSV de propositions, saisie manuelle.
- **PC** : réinstaller le pilote AMD Radeon (cause des `0x50`), réappliquer `HiberbootEnabled=0` et les réglages de vidage.
- **Joplin** : `EVENTS_AUTO_DELETE_ENABLED=1` sur la stack 16 (table `events` à 1 Go) — à appliquer par Julien.
- **Syncthing** : corbeille `trashcan` 30 j non tranchée.
- **Immich-SERVER** redémarre la nuit — vu par le canari, cause à établir (monitor-rclone est intervenu sur `/home/debian/photo` le 12/09 à 00:20 UTC).
- **Ubuntu** : désactiver l'ancien service `komga-watch` utilisateur, cassé depuis le 23/08.

## Ajouter une procédure au tableau

1. Une entrée dans `Jux-scripts/Etat-Infra/procedures.json` : `id`, `nom`, `page` BookStack, `source` (`journal` avec chemin et motif, `dossier`, `domaine` d'une sonde existante, `temoin`, ou `manuel` avec une date), et `cadence_heures` si elle doit tourner régulièrement — au-delà la ligne passe « En retard ».
2. Pour une procédure du PC : appeler `ecrire_temoin("<id>", "résumé")` en fin de passe (fonction de dix lignes, déjà présente dans `compress_photos.py`, `flac_mp3.py`, `isbn_commun.py`, `joplin_mealie.py`). Le témoin ne doit jamais faire échouer la procédure.
3. `python3 etat_infra.py --dry-run` sur le VPS montre le tableau sans rien publier.

*Le tableau de la veille ne lève pas d'alerte en tête de page : c'est un récapitulatif. Les alertes viennent des sondes dédiées (sauvegardes, journaux nocturnes, Komga-PDF, NAS…), qui couvrent déjà ce qui est critique.*