Skip to main content

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

effet, l'

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 sont toujours placésdéposés dans le dossier Syncthing duUbuntu : /home/julien/Syncthing/komga-pdf/
Syncthing synchronise automatiquement vers le VPS -: /home/debian/documents/Documents/komga-pdfpdf/ LaLe machineservice IA (Claude actuellemnent)komga-watch surveille cel'arrivée dossierde à chaque nouvelle instance et automatise sa compressionfichiers sur Stirlingpdf,le applicaitonVPS avecvia laquelleinotifywait la(SSH machine a une connexion MCP.persistant) uneDès foisdétection, lakomga_compress.py compressiontélécharge effectuée,le laPDF, machinele IAcompresse via StirlingPDF, dépose le résultat sur le NAS sasnexte Julien reclasse lui-même les PDF compressécompressés dans le dossier du NAS sasnexte - volume1/sasnexte/komga/PDF_compressed Julien reclasse lui même les PDF du repertoire PDF_compressed vers le dossier thematiquethématique de son choix  laLes machine IAoriginaux ne supprimesont pasjamais supprimés du VPS — Julien valide et conserve si besoin (haute résolution souhaitée)

Architecture technique

Élément Chemin / URL Dépôt Ubuntu (Syncthing) /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)

Fichier Rôle /home/julien/komga_compress.py Compression : liste les PDF originauxsur dansle VPS via SSH, télécharge, envoie à StirlingPDF, dépose sur sasnexte /home/debian/documents/komga-pdfjulien/komga_watch.sh afinSurveillance que: Julienconnexion vérifieSSH etpersistante valide+ inotifywait sur le dossier VPS, déclenche la compression effectuée,à chaque nouveau fichier ~/.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 :

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 :

    Casse du chemin Syncthing : le dossier VPS est /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 casrenommage échéant,final. conserveFix l'original: (ouvragesur pourtout lequelévénement, laattendre haute3 résolutionsecondes puis lancer komga_compress.py sans filtrage préalable. Le script est souhaitéeidempotent par(ignore exemple)les fichiers déjà compressés). Python : utiliser /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.