01_Les recherches de Claude
Pages de publication des résultats d'analyse et de production de Claude Code sur le contenu du VPS
- 01A_Kdrive_les explorations
- 01_Portainer - les explorations
- 02_Bookstack_les explorations
- 03_Homarr_les explorations
- 04_Audiobookshelf_les explorations
- 05_BentoPDF_les explorations
- 06_Cadvisor_les explorations
- 07_Calibre-web_les explorations
- 08_Dozzle_les explorations
- 09_FileBrowser_les explorations
- 10_FreshRSS_les explorations
- 11_Gitea_les explorations
- 12_Grafana_les explorations
- 13_Immich_les explorations
- 14_Jellyfin_les explorations
- 15_Joplin_les explorations
- 16_Kavita_les explorations
- 17_Komga_les explorations
- 18_Mealie_les explorations
- 19_Navidrome_les explorations
- 20_NodeExporter_les explorations
- 21_Prometheus_les explorations
- 22_Readeck_les explorations
- 23_Syncthing_les explorations
- 24_Yourls_les explorations
- 25_StirlingPDF
01A_Kdrive_les explorations
RCH-20260529-0003 — Livres et ressources evoquant la ville de Genes dans Foxy
| Date | 2026-05-29 |
|---|---|
| Service | kDrive Infomaniak |
| Contexte | Constituer un corpus documentaire autour de Genes (Genovese, Ligurie) dans la bibliotheque kDrive — dossier SYNC-pour_VPS/Sync_NAS-Maison/Foxy |
| Outils utilisés | API REST Infomaniak kDrive v3 — search + metadata v2 | PowerShell |
| Requête | GET /3/drive/591617/files/search?query={Genes|Genova|Genovese|Genoa|Ligurie}&limit=20 | filtre manuel sur résultats |
Résultats
3 livres directement sur Gênes (la ville), 1 presentation Ligurie, des photos de Ligurie (2011), et des recettes genovese (cuisine). Recherche couvrant les termes : Genes, Genova, Genovese, Genoa, Ligurie.
Points clés
- 3 livres historiques sur Gênes trouvés : Graziani (5.2 MB), Vincens (0.9 MB), Histoire anonyme (0.8 MB)
- 1 présentation PowerPoint Ligurie (31.9 MB, mai 2021) — probablement riche en images et contenu
- Photos de Ligurie 2011 (Ognelia et Imperia) — 20+ photos personnelles
- Ressources culinaires genovese : Focaccia Genovese, Ravioli alla genovese (videos kDrive)
- Les livres sont dans Foxy (ID:401926) — dossier probable : Histoire ou Culture Italie
- L'API search kDrive retourne des faux positifs (Genèse, Gens, Genève) — filtrage manuel nécessaire
Limites
L'API v2 ne retourne pas le chemin (path) des fichiers — impossible de localiser précisément le sous-dossier sans navigation manuelle. Le champ path est vide dans la réponse.
Localisation des ressources
| URLs | — |
|---|---|
| Chemins | ["kDrive 591617 / Private (5) / SYNC-pour_VPS (534292) / Sync_NAS-Maison (534293) / Foxy (401926) / [sous-dossier inconnu]"] |
| IDs | {"531552": "Antoine-Marie Graziani - Histoire de Genes.epub (5.2 MB)", "531550": "Histoire de de Genes - Histoire.epub (0.8 MB)", "531549": "Histoire de la République de Gênes - Emile Vincens - Histoire.epub (0.9 MB)", "501392": "210526-Ligurie.pptx (31.9 MB)"} |
| Auteurs / Source | ["Antoine-Marie Graziani (Histoire de Genes)", "Emile Vincens (Histoire de la République de Gênes)"] |
| Métadonnées | {"formats": ["epub", "pptx", "jpg", "mp4"], "livres_genes": 3, "photos_ligurie": 20, "videos_recettes_genovese": 2, "dossier_foxy_id": 401926, "kdrive_id": 591617} |
Tags
#Genes #Gênes #Ligurie #Italie #histoire #kDrive #epub #bibliotheque
Suite / Pistes
1/ Explorer le dossier Culture Italie (ID:1185062) pour trouver d'autres ressources sur Genes. 2/ Verifier dans Calibre (ID:1211295) si des livres Genes y sont catalogues. 3/ Corriger l'API v2 pour obtenir le chemin des fichiers (utiliser /3/ au lieu de /2/). 4/ Croiser avec Kavita si ces epubs y sont importes.
RCH-20260529-0004 — Approfondissement corpus Gênes — Culture Italie et Bibliotheque Calibre
| Date | 2026-05-29 |
|---|---|
| Service | kDrive Infomaniak |
| Contexte | Suite de RCH-20260529-0003. Explorer Culture Italie (ID:1185062) et Bibliotheque Calibre (ID:1211295) pour compléter le corpus #Genes. |
| Outils utilisés | API REST kDrive v3 — navigation par ID + listing sous-dossiers | PowerShell |
| Requête | GET /3/drive/591617/files/{1185194|1185151|1185105|1185085|1211295}/files?limit=100 + filtres regex Genes/Ligurie |
Résultats
Culture Italie contient un dossier Ligurie (Cuisine Italie/Ligurie) avec 2 fichiers. Calibre contient Graziani mais uniquement pour Pascal Paoli (Corse), pas Genes. Vincens absent de Calibre. Plusieurs livres sur l'Italie générale potentiellement exploitables.
Points clés
- Dossier Ligurie trouvé dans Cuisine Italie (ID:1185345) : PPTX 31.9MB + IMG_3782.pdf
- Calibre/Graziani (ID:1362307) = Pascal Paoli uniquement — Histoire de Genes est dans Foxy seulement
- Vincens (Histoire de la République de Gênes) absent de Calibre — epub uniquement dans Foxy
- Culture Italie / Art de vivre : 5 ressources générales sur l'Italie (Bella Italia, Continent Italia, Sacrés Italiens, Portraits d'Italie, Geo Dolce Vita)
- Histoire Italie : Les guerres d'Italie (conflit européen) — contexte historique pertinent pour Gênes
- Le corpus Gênes dans kDrive est concentré dans Foxy/Histoire — Calibre ne l'a pas indexé
Limites
Calibre n'a pas les livres sur Gênes de Vincens et de la version anonyme. Seul Graziani y est mais pour un autre ouvrage. Les 3 epubs Genes sont uniquement dans Foxy, non indexés dans Calibre. La recherche ne couvre pas les sous-sous-dossiers de Calibre (trop nombreux).
Localisation des ressources
| URLs | — |
|---|---|
| Chemins | ["Foxy/Culture Italie/Cuisine Italie/Ligurie", "Foxy/Culture Italie/Histoire Italie", "Foxy/Culture Italie/Art de vivre Italie", "Foxy/Bibliotheque Calibre/Antoine-Marie Graziani"] |
| IDs | {"1185345": "Dossier Ligurie dans Cuisine Italie", "1185347": "210526-Ligurie.pptx (31.9 MB) — dans Cuisine Italie/Ligurie", "1185349": "IMG_3782.pdf — dans Cuisine Italie/Ligurie", "1362307": "Calibre/Antoine-Marie Graziani (Pascal Paoli — pas Gênes)", "1185194": "Histoire Italie (4 livres generaux)", "1185085": "Art de vivre Italie (5 ressources)", "1185201": "L'Italie de Botticelli à Bonaparte.epub", "1185199": "Les guerres d'Italie — Un conflit européen.epub", "1185196": "Bella Italia - Un itinéraire amoureux (Christiane Rance).epub", "1185090": "Sacrés Italiens (Alberto Toscano).epub", "1185089": "Portraits d'Italie (Laurent Bolard).epub", "1185087": "Geo Hors-Serie Dolce Vita Avril-Mai 2025.pdf"} |
| Auteurs / Source | — |
| Métadonnées | {"corpus_genes_directs": 3, "ressources_ligurie": 2, "livres_italie_generale": 9, "calibre_graziani_titre": "Pascal Paoli - Pere de la patrie corse", "vincens_dans_calibre": false} |
Tags
#Genes #Genes #Ligurie #Italie #Calibre #kDrive #Culture Italie #histoire
Suite / Pistes
1/ Importer les 3 epubs Genes (IDs 531549-531552) dans Calibre pour les indexer. 2/ Lire le PPTX Ligurie (ID:1185347) pour en extraire le contenu. 3/ Explorer 'Bella Italia' et 'Les guerres d'Italie' pour mentions de Genes. 4/ Rechercher 'Genes' dans le dossier Histoire (ID:503138) de Foxy.
01_Portainer - les explorations
Journal des recherches réalisées avec Claude Code sur le service Portainer.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/152
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
02_Bookstack_les explorations
Journal des recherches réalisées avec Claude Code sur le service Bookstack.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/153
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
03_Homarr_les explorations
Journal des recherches réalisées avec Claude Code sur le service Homarr.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/154
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
04_Audiobookshelf_les explorations
Journal des recherches réalisées avec Claude Code sur le service Audiobookshelf.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/155
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
05_BentoPDF_les explorations
Journal des recherches réalisées avec Claude Code sur le service BentoPDF.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/156
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
06_Cadvisor_les explorations
Journal des recherches réalisées avec Claude Code sur le service Cadvisor.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/157
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
07_Calibre-web_les explorations
Journal des recherches réalisées avec Claude Code sur le service Calibre-web.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/158
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
08_Dozzle_les explorations
Journal des recherches réalisées avec Claude Code sur le service Dozzle.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/159
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
09_FileBrowser_les explorations
Journal des recherches réalisées avec Claude Code sur le service FileBrowser.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/160
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
10_FreshRSS_les explorations
RCH-20260529-0002 — Articles Inkscape dans la categorie claude_foss
| Date | 2026-05-29 |
|---|---|
| Service | FreshRSS |
| Contexte | Second passage apres creation de la categorie claude_foss et ajout du flux Inkscape News. Verifier si des articles sur Inkscape sont desormais indexes. |
| Outils utilisés | API GReader FreshRSS directe — stream/contents/user/-/label/claude_foss — search_foss.py |
| Requête | GET /reader/api/0/stream/contents/user/-/label/claude_foss?n=100&q=Inkscape |
Résultats
100 articles retournes depuis la categorie claude_foss (7 flux). 10 articles provenant du flux Inkscape News (feed/615) sont presents. Note : le parametre q= de l'API GReader ne filtre pas reellement par mot-cle — il retourne tous les articles du stream. Le filtrage Inkscape est donc a faire cote client.
Points clés
- 10 articles Inkscape indexés depuis l'ajout du flux feed/615 (inkscape.org/news)
- Dernière release : Inkscape 1.4.4 (2026-05-06) — ameliorations performances et corrections crashes
- Inkscape soutient une pétition allemande pour la reconnaissance des bénévoles Open Source (2026-05-13)
- Interview artiste : court-métrage animé réalisé entièrement sous Inkscape (2026-04-02)
- L'API GReader q= ne filtre pas par mot-clé : retourne tous les articles du stream — filtrage client nécessaire
- Flux claude_foss opérationnel : 7 sources (Inkscape, LinuxFr, Planet GNOME, Blender, LibreOffice, Libre Arts)
Limites
Le parametre q= de l'API GReader FreshRSS ne filtre pas par mot-cle. Pour une recherche thematique precise, il faut recuperer tous les articles et filtrer cote client sur title + content. A corriger dans search_foss.py.
Localisation des ressources
| URLs | ["https://inkscape.org/news/2026/05/13/inkscape-supports-german-petition-to-recognize-ope/", "https://inkscape.org/news/2026/05/06/inkscape-144-boosts-performance-and-crushes-crashe/", "https://inkscape.org/news/2026/04/02/artist-interview-meet-jorge-who-made-a-short-film/", "https://inkscape.org/news/2026/03/02/inkscape-is-hiring-2026-1/", "https://inkscape.org/news/2025/12/26/bugs-banished-inkscape-143-is-out/", "https://inkscape.org/news/2025/10/12/indiafoss-2025/", "https://inkscape.org/news/2025/06/08/libre-graphics-meeting-2025/", "https://inkscape.org/news/2025/06/01/inkscape-summit-nuremberg/", "https://inkscape.org/news/2025/05/12/2-in-1-release-inkscape-142-is-out/", "https://inkscape.org/news/2025/02/05/inkscape-summit-frankfurt-2025/"] |
|---|---|
| Chemins | — |
| IDs | ["feed/615 (Inkscape News)", "user/-/label/claude_foss"] |
| Auteurs / Source | ["Inkscape Project"] |
| Métadonnées | {"articles_inkscape": 10, "articles_total_stream": 100, "flux_claude_foss": 7, "derniere_version": "Inkscape 1.4.4", "date_derniere_version": "2026-05-06", "periode_couverte": "2025-02 a 2026-05"} |
Tags
#Inkscape #logiciel-libre #SVG #dessin-vectoriel #FOSS #FreshRSS #claude_foss
Suite / Pistes
1/ Corriger search_foss.py pour filtrer cote client sur title+content. 2/ Ajouter flux Libre Graphics Meeting et Planet Inkscape si existants. 3/ Relancer apres quelques jours pour capter les nouveaux articles. 4/ Croiser avec Kavita (livres SVG/Inkscape) et kDrive (tutoriels eventuels).
11_Gitea_les explorations
Journal des recherches réalisées avec Claude Code sur le service Gitea.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/162
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
12_Grafana_les explorations
Journal des recherches réalisées avec Claude Code sur le service Grafana.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/163
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
13_Immich_les explorations
Journal des recherches réalisées avec Claude Code sur le service Immich.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/164
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
14_Jellyfin_les explorations
Journal des recherches réalisées avec Claude Code sur le service Jellyfin.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/165
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
15_Joplin_les explorations
Journal des recherches réalisées avec Claude Code sur le service Joplin.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/166
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
16_Kavita_les explorations
Journal des recherches réalisées avec Claude Code sur le service Kavita.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/167
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
17_Komga_les explorations
Journal des recherches réalisées avec Claude Code sur le service Komga.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/168
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
18_Mealie_les explorations
Journal des recherches réalisées avec Claude Code sur le service Mealie.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/169
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
19_Navidrome_les explorations
Journal des recherches réalisées avec Claude Code sur le service Navidrome.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/170
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
20_NodeExporter_les explorations
Journal des recherches réalisées avec Claude Code sur le service NodeExporter.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/171
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
21_Prometheus_les explorations
Journal des recherches réalisées avec Claude Code sur le service Prometheus.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/172
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
22_Readeck_les explorations
Journal des recherches réalisées avec Claude Code sur le service Readeck.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/173
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
23_Syncthing_les explorations
Journal des recherches réalisées avec Claude Code sur le service Syncthing.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/174
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
24_Yourls_les explorations
Journal des recherches réalisées avec Claude Code sur le service Yourls.
Documentation technique : https://bookstack.juxjux.ovh/books/le-livre-de-claude/page/175
Chaque entrée est automatiquement enregistrée dans la table recherches (PostgreSQL Alteris, DB 35 Metabase).
RCH-AAAAMMJJ-NNNN — [Objet de la recherche]
| Date | AAAA-MM-JJ |
|---|---|
| Service | [nom du service] |
| Contexte | [Pourquoi cette recherche — quelle question, quel besoin, quel problème] |
| Outils utilisés | [MCP utilisé / API directe / PowerShell / Python / recherche web...] |
| Requête | [query exacte, paramètres, filtres, commandes] |
Résultats
[Description des résultats obtenus — texte libre, liste, tableau selon le volume]
Points clés
- [Insight 1 — ce qui est important ou surprenant]
- [Insight 2]
- [Insight 3]
Limites
[Ce qui manque, erreurs rencontrées, données absentes, pistes non abouties]
Localisation des ressources
| URLs | [liens directs vers les ressources trouvées] |
|---|---|
| Chemins | [chemins fichiers, répertoires, arborescences] |
| IDs | [IDs containers, pages, assets, items...] |
| Auteurs / Source | [auteurs, éditeurs, provenance] |
| Métadonnées | [dates, formats, tailles, langues, coordonnées...] |
Tags
#tag1 #tag2 #tag3
Suite / Pistes
[Questions ouvertes, actions à entreprendre, recherches complémentaires à lancer]
25_StirlingPDF
RCH-20260802-0001 — Echec OCR sur images PNG — deux refus cumules d'ocrmypdf (canal alpha + DPI absent)
| Date | 2026-08-02 |
|---|---|
| Service | StirlingPDF |
| Contexte | Julien signale une erreur HTTP 500 lors d'un OCR sur une image PNG via StirlingPDF. L'interface web n'affiche aucun detail exploitable, le diagnostic passe par les logs du container. |
| Outils utilisés | docker logs stirling-pdf, API /api/v1/misc/ocr-pdf, Pillow, tesseract --list-langs |
| Requête | POST /api/v1/misc/ocr-pdf (multipart fileInput, languages=[fra], ocrType=Force-OCR) sur PNG RGBA, puis sur variantes aplaties et converties, avec mesure docker stats en parallele. |
Résultats
Deux erreurs distinctes et cumulees dans ocrmypdf 17.4.0, revelees seulement dans les logs : (1) UnsupportedImageFormatError — The input image has an alpha channel ; (2) une fois l'alpha retire, DpiError — Input file is an image, but has no resolution (DPI) in its metadata. StirlingPDF ne transmet pas l'option --image-dpi a ocrmypdf, donc tout PNG sans DPI dans ses metadonnees echoue. Deux contournements valides en test : voie interface web (Convert > Image to PDF puis OCR sur le PDF, HTTP 200) et voie scriptee (aplatissement de l'alpha sur fond blanc + DPI force a 300, HTTP 200). Texte reconnu restitue a l'identique sur une page de test en francais. Mesure memoire : pic a 894 Mio pour une seule page A4 300 dpi.
Points clés
- L'interface web ne remonte pas la cause : le diagnostic exige docker logs stirling-pdf
- Les deux erreurs sont sequentielles — corriger l'alpha seul ne suffit pas, le DPI bloque ensuite
- Convertir l'image en PDF avant l'OCR neutralise les deux problemes sans outil local
- 6 langues tesseract installees : fra, eng, deu, por, chi_sim, osd
- ocrmypdf et tesseract sont des process Python hors JVM : -Xmx ne les borne pas, seul le plafond cgroup du container s'applique
- La limite de 1 Go prevue pour l'allegement du 2026-08-02 aurait provoque un OOM kill pendant l'OCR — portee a 2 Go
Limites
Mesure realisee sur une page A4 300 dpi generee synthetiquement ; un document multi-pages ou un scan haute resolution consommera davantage. Le pic de 894 Mio est un plancher, pas un maximum.
Localisation des ressources
| URLs | ["https://spdf.juxjux.ovh", "https://spdf.juxjux.ovh/swagger-ui/index.html"] |
|---|---|
| Chemins | ["D:\\Syncthing\\Jux_univers\\Jux-scripts\\Stirling-OCR\\ocr_image.py", "D:\\Syncthing\\Jux_univers\\Jux-scripts\\Stirling-OCR\\README.md", "/home/debian/stirling-compose-new.yml", "/home/debian/stirling-compose-new.yml.orig1g"] |
| IDs | ["stack Portainer 89", "container stirling-pdf", "page BookStack 211"] |
| Auteurs / Source | — |
| Métadonnées | {"ocrmypdf": "17.4.0", "tesseract": "5.3.4", "endpoint_ocr": "POST /api/v1/misc/ocr-pdf", "pic_memoire_ocr": "894 MiB / page A4 300 dpi", "limite_memoire_retenue": "2g"} |
Tags
#StirlingPDF #OCR #ocrmypdf #tesseract #PNG #alpha #DPI #memoire #Docker
Suite / Pistes
Verifier apres l'application du compose allege (2026-08-02 19h) que compress-pdf ET l'OCR fonctionnent toujours avec memory=2g et -Xmx512m.
RCH-20260530-0001 — Mise en place API StirlingPDF pour compression PDF automatisée (workflow geo_loud)
| Date | 2026-05-30 |
|---|---|
| Service | StirlingPDF |
| Contexte | Étape 3 du workflow geo_loud : automatiser la compression des 127 PDFs lourds (>75 Mo) déplacés dans \\NASMAISON\foxy\geo_loud\. Objectif : appeler l'API StirlingPDF depuis le PC, écraser chaque fichier avec sa version compressée, mettre à jour la DB SQLite. Fichier de test : 000209_L'inde.pdf (314 Mo). |
| Outils utilisés | StirlingPDF API REST (JWT Bearer) | curl.exe | plink (PuTTY) pour SSH nginx | Python 3.14 + requests | SQLite nas_geographie.db |
| Requête API | POST https://spdf.juxjux.ovh/api/v1/misc/compress-pdf — multipart/form-data champ fileInput, header Authorization: Bearer <token> |
Résultats
Auth JWT résolue. nginx corrigé (client_max_body_size 500M). Test de compression réussi sur 000209_L'inde.pdf : 314 Mo → 311.7 Mo (0.7% de gain — PDF déjà optimisé en images JPEG). Script nas_geo_compress.py opérationnel pour traitement en batch de tous les fichiers.
Points clés
- Auth imposée : malgré
DOCKER_ENABLE_SECURITY=falsedans la stack Docker, StirlingPDF impose un compte admin au premier lancement. Compte créé : admin / Motdepasse18! - Endpoint de login :
POST /api/v1/auth/loginavec body JSON{"username":"admin","password":"Motdepasse18!"}→ réponse : JWT dans.session.access_token, valable 24h - Utilisation du token : header
Authorization: Bearer <token>sur chaque appel API - nginx : client_max_body_size par défaut = 1 Mo → erreur 413 sur gros fichiers. Correction : ajout de
client_max_body_size 500M;dans/etc/nginx/sites-enabled/spdf.juxjux.ovh(via plink/SSH), puissudo nginx -s reload - Endpoint compression :
POST /api/v1/misc/compress-pdf— multipart avec champfileInput— retourne le PDF compressé directement dans le corps de la réponse (binary) - Gain variable : PDFs avec images JPEG déjà compressées → gain faible (<1%). PDFs texte/vectoriel ou images PNG → gain potentiellement important (30–70%)
- PowerShell inadapté aux gros fichiers : concaténation de byte arrays → OutOfMemoryException sur 314 Mo. Utiliser curl.exe ou Python requests
- Spec API :
/v3/api-docsretourne le HTML de la SPA React. Documentation disponible dans la Swagger UI interactive :https://spdf.juxjux.ovh/swagger-ui/index.html(après login)
Limites
- Token JWT expire après 24h — pour des batchs très longs, prévoir un re-login automatique
- La compression StirlingPDF n'expose pas de paramètre de niveau dans cette version — niveau par défaut uniquement
- Le fichier transite en RAM sur le VPS pendant le traitement — fichiers >500 Mo potentiellement problématiques selon la RAM disponible
Script nas_geo_compress.py
Emplacement : C:\Users\eliob\.claude\nas_geo_compress.py
Lancement : py C:\Users\eliob\.claude\nas_geo_compress.py
Dépendances : pip install requests (sqlite3 et os natifs Python)
Le script ajoute automatiquement les colonnes taille_compresse_octets et date_compression à la table fichiers si elles n'existent pas encore.
"""
Étape 3 du workflow geo_loud : compression PDF via StirlingPDF.
- Lit les fichiers statut='deplace' dans nas_geographie.db
- Envoie chaque PDF à l'API StirlingPDF
- Écrase le fichier d'origine avec la version compressée
- Met à jour la DB (taille_compresse_octets, date_compression)
"""
import sqlite3
import requests
import os
from datetime import datetime
DB_PATH = r"C:\Users\eliob\Documents\nas_geographie.db"
GEO_LOUD = r"\\NASMAISON\foxy\geo_loud"
STIRLING_URL = "https://spdf.juxjux.ovh"
STIRLING_USER = "admin"
STIRLING_PASS = "Motdepasse18!"
def get_token():
r = requests.post(
f"{STIRLING_URL}/api/v1/auth/login",
json={"username": STIRLING_USER, "password": STIRLING_PASS},
timeout=30,
)
r.raise_for_status()
return r.json()["session"]["access_token"]
def init_db_columns(conn):
cur = conn.cursor()
cols = {row[1] for row in cur.execute("PRAGMA table_info(fichiers)")}
if "taille_compresse_octets" not in cols:
cur.execute("ALTER TABLE fichiers ADD COLUMN taille_compresse_octets INTEGER")
if "date_compression" not in cols:
cur.execute("ALTER TABLE fichiers ADD COLUMN date_compression TEXT")
conn.commit()
def get_pending(conn):
cur = conn.cursor()
cur.execute("""
SELECT id, nom, chemin_geo_loud, taille_octets
FROM fichiers
WHERE statut = 'deplace'
AND extension IN ('.pdf', '.PDF')
AND (date_compression IS NULL)
ORDER BY taille_octets DESC
""")
return cur.fetchall()
def compress_file(token, filepath):
with open(filepath, "rb") as f:
r = requests.post(
f"{STIRLING_URL}/api/v1/misc/compress-pdf",
headers={"Authorization": f"Bearer {token}"},
files={"fileInput": (os.path.basename(filepath), f, "application/pdf")},
timeout=600,
stream=True,
)
r.raise_for_status()
return r.content
def update_db(conn, file_id, taille_compresse):
conn.execute("""
UPDATE fichiers
SET taille_compresse_octets = ?, date_compression = ?
WHERE id = ?
""", (taille_compresse, datetime.now().isoformat(), file_id))
conn.commit()
def fmt_mo(octets):
return f"{octets / 1_048_576:.1f} Mo"
def main():
print("Connexion à StirlingPDF...")
token = get_token()
print("Token JWT OK")
conn = sqlite3.connect(DB_PATH)
init_db_columns(conn)
pending = get_pending(conn)
print(f"{len(pending)} fichier(s) PDF à compresser\n")
if not pending:
print("Rien à faire.")
conn.close()
return
total_avant = sum(r[3] for r in pending)
total_apres = 0
ok = 0
errors = []
for i, (file_id, nom, chemin_geo_loud, taille_avant) in enumerate(pending, 1):
filepath = chemin_geo_loud or os.path.join(GEO_LOUD, nom)
if not os.path.exists(filepath):
print(f"[{i}/{len(pending)}] ABSENT {nom}")
errors.append((nom, "fichier absent"))
continue
taille_reel_avant = os.path.getsize(filepath)
print(f"[{i}/{len(pending)}] {nom}")
print(f" avant : {fmt_mo(taille_reel_avant)}", end=" ", flush=True)
try:
compressed = compress_file(token, filepath)
taille_apres_compression = len(compressed)
gain = (taille_reel_avant - taille_apres_compression) / taille_reel_avant * 100
tmp = filepath + ".tmp"
with open(tmp, "wb") as f:
f.write(compressed)
os.replace(tmp, filepath)
update_db(conn, file_id, taille_apres_compression)
total_apres += taille_apres_compression
ok += 1
print(f"-> après : {fmt_mo(taille_apres_compression)} (gain {gain:.1f}%)")
except Exception as e:
print(f"-> ERREUR : {e}")
errors.append((nom, str(e)))
tmp = filepath + ".tmp"
if os.path.exists(tmp):
os.remove(tmp)
conn.close()
print(f"\n{'='*50}")
print(f"Terminé : {ok}/{len(pending)} compressés")
if ok:
gain_total = (total_avant - total_apres) / total_avant * 100
print(f"Volume avant : {fmt_mo(total_avant)}")
print(f"Volume après : {fmt_mo(total_apres)}")
print(f"Gain total : {gain_total:.1f}% ({fmt_mo(total_avant - total_apres)} récupérés)")
if errors:
print(f"\nErreurs ({len(errors)}) :")
for nom, msg in errors:
print(f" {nom} : {msg}")
if __name__ == "__main__":
main()
Localisation des ressources
| URLs | https://spdf.juxjux.ovh (UI) | https://spdf.juxjux.ovh/swagger-ui/index.html (API docs, après login) |
|---|---|
| Chemins | Script : C:\Users\eliob\.claude\nas_geo_compress.py | DB : C:\Users\eliob\Documents\nas_geographie.db | Fichiers source : \\NASMAISON\foxy\geo_loud\ | nginx vhost : /etc/nginx/sites-enabled/spdf.juxjux.ovh |
| IDs | Stack Portainer : stirlingpdf (ID 89) | Container : stirling-pdf | Port interne : 8090 |
| Métadonnées | {"fichiers_a_traiter": 127, "volume_total_go": 13.577, "test_fichier": "000209_L-inde.pdf", "test_avant_mo": 314, "test_apres_mo": 311.7, "test_gain_pct": 0.7, "nginx_max_body": "500M", "token_duree_h": 24} |
Tags
#StirlingPDF #compression #PDF #geo_loud #API #JWT #nginx #Python #NAS #workflow
Suite / Pistes
1/ Lancer le script sur l'ensemble des 127 fichiers — surveiller le gain réel par catégorie de PDF.
2/ Mettre à jour la page BookStack 210 avec les colonnes DB ajoutées (taille_compresse_octets, date_compression) et le bilan de compression une fois le batch terminé.
3/ Si le gain moyen est insuffisant, explorer d'autres niveaux de compression StirlingPDF ou un outil alternatif (Ghostscript direct).
4/ Après compression de tous les fichiers : lancer l'étape 4 (restauration) via nas_geo_loud.py restaurer.