Files
2026-06-09 18:40:21 +02:00

134 lines
7.2 KiB
Markdown

---
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é)
```yaml
# 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](https://github.com/Stirling-Tools/Stirling-PDF/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](https://github.com/tesseract-ocr/tessdata).
- **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
- Site officiel : https://stirlingpdf.com/
- Documentation : https://docs.stirlingpdf.com/
- GitHub : https://github.com/Stirling-Tools/Stirling-PDF
- Discord communautaire : https://discord.gg/SJCT2AMKfW
- selfh.st : https://selfh.st/apps/?tag=document-management
## Pages Liées
- [[cat-document-management]] — catégorie parente
- [[app-paperless-ngx]] — alternative GED complète
- [[app-mayan-edms]] — EDMS avec workflows
- [[app-pdfding]] — lecteur PDF léger
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques sécurité