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équesbibliothèques d'ouvrages de la collection de Julien.En
L'acquisition de fichiers issus de bases de données IntenetInternet accumule des fichiers PDF en haute résolution (images surtout). Ces fichiers sont synchronisés entre les NAS Synology et un disque dur KdrivekDrive INfomaniakInfomaniak de 6 To.
Contexte
Des points de montage Rclone relient alors les répertoires KdrivekDrive et les containers OpensourceDocker installés sur le VPS OVH juxjux.ovh. Ces containers lisent les PDF à la volée -— permettant ainsi de construire une infrastrucureinfrastructure de très forte densité de connaissances digitales (epub, pdf, images, videos,vidéos, musiques....) avec une solution serveur d'entrée de gamme - (10 €uros par /mois tout inclus.Cette architecture réseau fonctionne car les montages webdav évitent le besoin de stockage sur le VPS même (qui est extrêmemt cher) en réservant les gigas du VPS (100 Gigas) aux seules unités logicielles.
Besoins à l'origine de la procédure Komga-PDF La lecture des fichiers PDF se réalise principalement sous deux outils Docker : 1/ Komga pour les magazines et les Bandes Dessinées (BD) 2/ Kavita pour les livres (romans, essais, manuels universitaires, ouvrages thématiques sur la cuisine, l'art.inclus)..)
La lecture réseau est multi-support : PC, tablette, téléphonetéléphone. portable.....Elle est aussi nomade, séquentielle (reprises de lecture),et pressée....Donc la rapidité, la legéreté, la facilité sont les maîtres mots de l'architecture de lecture du Jux_VPS. Et dans ce cadre, la La compacité des fichiers PDF devient donc nécessaire afinpour de difuserdiffuser rapidement sur les réseaux et être démodulés par les containers Docker.réseaux. Un fichier PDF qui est un magazine ou un ouvrage sur l'informatique ne doit pas peser 130 Mo - et ce pour etre lu sur un écran de 10 pouces le plus souvent.Ainsi, l'objectif de la procédure Komga-PDF est d'automatiser la réduction des nouveaux fichiers PDF qui entrent dans la bibliothèque de Julien (skrinking en anglais).pouces.
Procédure
lesLes nouveaux PDF sonttoujours placésdéposés dans le dossier SyncthingduUbuntu :/home/julien/Syncthing/komga-pdf/
/home/debian/documents/Documents/komga-pdfpdf/
komga-watch surveille komga_compress.py Architecture technique
/home/julien/Syncthing/komga-pdf/
Dossier VPS (Syncthing)
/home/debian/Documents/komga-pdf/
Destination NAS sasnexte
/mnt/sasnexte/Komga/pdf_compressed/
API compression
https://spdf.juxjux.ovh/api/v1/misc/compress-pdf
Log
/home/julien/komga_compress.log
Scripts (Ubuntu)
/home/julien/komga_compress.py
Compression : liste les PDF /home/debian/documents/komga-pdfjulien/komga_watch.sh
~/.config/systemd/user/komga-watch.service
Service systemd utilisateur, actif au démarrage, redémarrage automatique sur erreur
Lancer manuellement
/usr/bin/python3 /home/julien/komga_compress.py
Gérer le service
systemctl --user status komga-watch.service
systemctl --user restart komga-watch.service
tail -f /home/julien/komga_compress.log
Retour d'expérience (2026-06-12)
Résultats de compression :
Points techniques résolus :
/home/debian/Documents/ (D majuscule), synchronisé depuis /home/julien/Syncthing/ sur Ubuntu. Erreur initiale avec /home/debian/documents/ (minuscule) qui ne recevait rien.
Race condition inotifywait / Syncthing : Syncthing écrit d'abord un fichier .syncthing.nom.pdf.tmp, puis le renomme en .pdf. inotifywait (sans -m) sortait sur l'événement .tmp, redémarrait, et ratait le komga_compress.py sans filtrage préalable. Le script est /usr/bin/python3 (système, avec requests) et non /usr/bin/env python3 qui pointait sur un venv cassé (Python 3.14, pip absent).
StirlingPDF auth : token JWT via POST /api/v1/auth/login → session.access_token, valable 24h.