260611_procédure Komga-PDF par Claude sur StirlingPDF
Présentation
La procédure Komga-PDF est un script de compression de fichiers PDF pour réduire considérablement la taille du stockage des bibliothèques d'ouvrages de la collection de Julien.
L'acquisition de fichiers issus de bases de données Internet accumule des fichiers PDF en haute résolution (images surtout). Ces fichiers sont synchronisés entre les NAS Synology et un disque dur kDrive Infomaniak de 6 To.
Contexte
Des points de montage Rclone relient les répertoires kDrive et les containers Docker installés sur le VPS OVH juxjux.ovh. Ces containers lisent les PDF à la volée — permettant ainsi de construire une infrastructure de très forte densité de connaissances digitales (epub, pdf, images, vidéos, musiques...) avec une solution serveur d'entrée de gamme (10 €/mois tout inclus).
La lecture réseau est multi-support : PC, tablette, téléphone. Elle est aussi nomade, séquentielle et pressée. La compacité des fichiers PDF devient donc nécessaire pour diffuser rapidement sur les réseaux. Un magazine ou un ouvrage informatique ne doit pas peser 130 Mo sur un écran de 10 pouces.
Procédure
- Les nouveaux PDF sont déposés dans le dossier Syncthing :
Syncthing/komga-pdf/depuis n'importe quelle machine (PC Elio+Jux, PC Nexte, Ubuntu, Xiaomi...) - Syncthing synchronise automatiquement vers le VPS :
/home/debian/Documents/komga-pdf/ - Le service
komga-watchsurveille(systemd VPS) détecte l'arrivéede fichiers sur le VPSvia inotifywait(SSH persistant)local - Dès détection,
komga_compress.komga_compress_vps.pytéléchargecompresse lePDF, le compressePDF viaStirlingPDF,StirlingPDF et dépose le résultatsurdansle NAS sasnexte/home/debian/Documents/komga-compressed/ - Julien
reclasserangelui-mêmemanuellement les PDF compressés vers sasnexte puis dans le dossier thématique de son choix - Les originaux ne sont jamais supprimés du VPS — Julien valide et conserve si besoin (haute résolution souhaitée)
Architecture technique
| Élément | Chemin / URL |
|---|---|
| Dépôt (toutes machines) | Syncthing/komga-pdf/ |
| Dossier VPS (Syncthing) | /home/debian/Documents/komga-pdf/ |
| Destination |
/ |
| API compression | https://spdf.juxjux.ovh/api/v1/misc/compress-pdf |
| Scripts VPS | + /home/debian/komga_watch_vps.sh |
(sur le VPS) |
Scripts
LesLe scriptsservice sonttourne dansentièrement sur le dossierVPS Syncthing— partagéplus entrede toutesdépendance lesUbuntu machinesni (VPS,de Ubuntu,SSH Windows Elio+Jux, Windows Nexte, Xiaomi). Ils sont donc révisables et améliorables depuis n'importe quelle machine.persistant.
| Fichier | Rôle |
|---|---|
|
Compression : liste les komga-compressed/. Idempotent (ignore les fichiers déjà compressés). |
|
Surveillance : |
|
Service Restart=always. |
Lancer manuellement (Ubuntu)
/usr/bin/python3 ~/Syncthing/Jux_univers/Jux-scripts/Komga-PDF/komga_compress.py
Gérer le service (Ubuntu)VPS)
sudo systemctl --user status komga-watch.servicewatch
sudo systemctl --user restart komga-watch.servicewatch
tailjournalctl -u komga-watch -f
~/Syncthing/Jux_univers/Jux-scripts/Komga-PDF/komga_compress.log
Retour d'expérience (2026-06-13) — Refactorisation VPS
Problème de l'architecture Ubuntu : le service tournait sur Ubuntu avec un SSH persistant vers le VPS. Deux défauts structurels :
inotifywait ne détecte pas les fichiers déjà présents au redémarrage du service (backlog silencieux)
Impossible à contrôler depuis Windows/Claude Code
Solution : service systemd sur le VPS lui-même. inotifywait local, pas de SSH persistant. Le script traite le backlog à chaque démarrage avant d'entrer dans la boucle de surveillance.
Résultats de compression (2026-06-13) :
Points techniques :
/home/debian/Documents/ (Syncthing sensible à la casse)
Race condition inotifywait/Syncthing : attente 3s après événement, script idempotent
Python : /usr/bin/python3 (système, requests 2.28.1 disponible)
StirlingPDF auth : JWT via POST /api/v1/auth/login → session.access_token, valable 24h
Fichiers sync-conflict Syncthing filtrés automatiquement par le script
Retour d'expérience (2026-06-12)
Résultats de compression :
| Fichier | Original | Compressé | Gain |
|---|---|---|---|
| Monde Gourmand N°93 - Juin 2026.pdf | 42 Mo | 17 Mo | -58% |
| Connaissance des Arts - Juin 2026.pdf | 57 Mo | 35 Mo | -39% |
Points techniques résolus :
/home/debian/Documents/Syncthing//home/debian/documents/.syncthing.nom.pdf.tmp.pdf-m.tmpkomga_compress.py/usr/bin/python3requests/usr/bin/env python3POST /api/v1/auth/loginsession.access_tokenSyncthing/Jux_univers/Jux-scripts/Komga-PDF/