Files
wiki/Catalogue-Self-Hosted/apps/app-stirling-pdf.md
T
2026-06-09 18:40:21 +02:00

7.2 KiB


title: Stirling PDF created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, pdf, java, outils] confidence: high contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/Stirling-Tools/Stirling-PDF, https://stirlingpdf.com/]

Stirling PDF 📄

Boîte à outils PDF tout-en-un auto-hébergeable : fusion, division, conversion, OCR, signature, réarrangement, et plus de 50 opérations sur PDF via une interface web claire.

Métadonnée Valeur
Site web https://stirlingpdf.com/
GitHub https://github.com/Stirling-Tools/Stirling-PDF
License MIT
Langage Java / Spring Boot (frontend HTML+JS)
Étoiles 7036
Dernière MAJ 2026-06-05
Catégorie cat-document-management

Description

Stirling PDF est une suite d'outils PDF open source conçue pour remplacer les services en ligne comme iLovePDF, SmallPDF ou Adobe Acrobat Online, sans envoyer vos documents sur des serveurs tiers. Plus de 50 opérations sont disponibles : fusion, division, rotation, compression, extraction de pages, conversion PDF ↔ Word/Excel/PNG/JPG, OCR (via Tesseract), signature numérique, ajout de filigrane, rédaction, protection par mot de passe, comparaison de documents, réparation de PDF corrompus, et même génération de PDF/A pour l'archivage long terme.

L'application est organisée en modules activables (calques de fonctionnalités) pour limiter la surface d'attaque et la consommation mémoire. Une API REST complète est exposée en parallèle de l'interface web, ce qui permet d'automatiser des traitements PDF via des scripts (n8n, Make, curl) ou d'intégrer Stirling PDF dans des chaînes de traitement de documents. L'authentification est optionnelle (mode anonyme par défaut, mais configurable) et un système de rôles permet de restreindre certaines opérations à des administrateurs.

L'interface est multilingue (français inclus), responsive, et fonctionne entièrement dans le navigateur. Les fichiers ne sont jamais persistés sur le serveur (sauf configuration explicite), et la version « security hardened » existe pour les déploiements exposés sur Internet. C'est l'une des apps self-hosted les plus populaires au monde, avec une communauté très active et un rythme de release soutenu (builds nightly).

Installation

Via Docker Compose (recommandé)

# docker-compose.yml
services:
  stirling-pdf:
    image: stirlingtools/stirling-pdf:latest
    container_name: stirling-pdf
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - stirling-data:/usr/share/tessdata
      - stirling-config:/configs
      - stirling-custom-files:/customFiles
    environment:
      - DISABLE_ADDITIONAL_FEATURES=false
      - SECURITY_ENABLELOGIN=true
      - SECURITY_INITIALLOGIN_USERNAME=admin
      - SECURITY_INITIALLOGIN_PASSWORD=ChangeMe123!
      - UI_APPNAME=Stirling PDF
      - UI_LANG=fr
      - SYSTEM_DEFAULTLOCALE=fr-FR
      - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=true
      - LANGS=fr_FR
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/api/v1/info/status"]
      interval: 30s
      timeout: 10s
      retries: 3

volumes:
  stirling-data:
  stirling-config:
  stirling-custom-files:

Astuce : utiliser le tag -fat (ex: stirlingtools/stirling-pdf:latest-fat) pour embarquer Tesseract OCR + LibreOffice + outils de conversion dans une seule image (≈2 Go). Sans -fat, l'OCR nécessite un montage manuel de tessdata.

Installation manuelle

  1. Pré-requis : Java 17+, Maven 3.9+ (pour build), LibreOffice (pour conversions), Tesseract OCR (optionnel, pour OCR).
  2. Clone & build : git clone https://github.com/Stirling-Tools/Stirling-PDF.git && cd Stirling-PDF && ./gradlew build.
  3. Lancer : java -jar build/libs/Stirling-PDF-*.jar (port 8080 par défaut).
  4. Ou binaire pré-compilé : télécharger le .jar depuis la page Releases et le lancer directement.

Configuration

  • Premier lancement : si SECURITY_ENABLELOGIN=true, créer le compte admin via l'UI (Settings → Security) puis changer immédiatement le mot de passe par défaut.
  • Calques de fonctionnalités : DISABLE_ADDITIONAL_FEATURES=true désactive les conversions complexes (LibreOffice), réduit la mémoire.
  • Tessdata : monter le dossier tessdata du host pour ajouter des langues OCR (fra, eng, deu, etc.) — fichier .traineddata à télécharger sur le repo GitHub tesseract-ocr.
  • Personnalisation UI : modifier les fichiers dans /customFiles (logos, thème CSS, page d'accueil HTML).
  • API : documentation Swagger sur /swagger-ui.html ou /api/v1/api-docs.
  • Authentification SSO : supporter OIDC2 via SECURITY_OAUTH2_* (depuis v0.30+).
  • HTTPS : obligatoire en production via reverse proxy (Traefik, Caddy, Nginx).

Alternatives

Open Source

  • app-paperless-ngx — gestion documentaire avec OCR + tags (Python/Django)
  • app-mayan-edms — EDMS complet avec workflows (Python)
  • app-pdfding — gestionnaire de PDF simple avec lecture inline (Python)
  • app-papermerge — GED avec OCR intégré (Python/Django)
  • PDFsam (Java) — fusion/split basique, interface desktop
  • OCRmyPDF (Python CLI) — script d'OCR batch sur PDF existants
  • LibreOffice — conversion PDF en mode headless via soffice

Propriétaires

  • Adobe Acrobat Online — référence payante (~20€/mois), écosystème Adobe
  • iLovePDF — freemium, populaire, mais envoi sur cloud tiers
  • Smallpdf — suisse, freemium, UI polie
  • PDFescape — version web basique gratuite
  • Foxit PDF Editor — concurrent direct d'Acrobat, ~130€ licence

Sécurité

  • Aucune persistance par défaut : les fichiers uploadés sont traités en mémoire, jamais écrits sur disque (vérifier via SECURITY_ENABLELOGIN=true et logs).
  • Mode « security hardened » : utiliser le tag -security-hardened pour un build sans aucune télémétrie et avec dépendances minimales.
  • HTTPS obligatoire en production, sinon les PDF transitent en clair.
  • Authentification : activer SECURITY_ENABLELOGIN=true et définir un mot de passe fort (le désactiver revient à exposer l'API publiquement).
  • Reverse proxy recommandé : placer Stirling PDF derrière Traefik/Caddy + Authelia pour SSO.
  • Mises à jour fréquentes : suivre le canal GitHub, les CVE sur les dépendances Java (Log4j-like) sont traitées rapidement.
  • Pas de télémétrie : vérifier METRICS_ENABLED=false (par défaut false).

Ressources

Pages Liées