Stirling PDF : mon outil libre pour dompter les PDF
2026-07-29
Fusionner, scinder, faire de l'OCR, compresser, signer un PDF... on a tous (ou presque tous) besoin de ça un jour, et la première réponse qu'on trouve en ligne c'est souvent un site qui demande de uploader son document sur un serveur inconnu, en laissant au passage ses petites données personnelles se balader gentiment au gré du vent (et surtout de l'hébergeur de l'outil, qui à n'en pas douter les revendra au plus offrant), ou en échange d'un abonnement mensuel pour débloquer la fonction dont on a besoin une fois par an.
L'autre solution envisageable consiste à acheter une licence Adobe, qui donne accès aux fonctionnalités sus-citées, mais aussi à la modification et à la création de formulaires (whouaaa !!) — mais là on parle surtout du monde pro, parce que le péquin lambda n'achète généralement pas de licence.
Faisant partie, en toute humilité, de cette dernière catégorie, mais ayant conscience que mes données perso sont de facto perso, j'avais envie de tester une alternative libre et auto-hébergée : Stirling PDF. Tadaaaaammmm !!
Serveur, pas appli de bureau
Premier piège en testant l'installation : Stirling PDF existe en version application de bureau (paquet .deb) et en version serveur. Joueur, sur une machine sans interface graphique, c'est évidemment la version serveur que je vise — un service web qu'on pilote depuis n'importe quel navigateur, à déployer dans un conteneur Docker.
Installer Docker (si ce n'est pas déjà fait)
Sur une machine Debian fraîche, Docker n'est pas installé par défaut. Petit détour obligatoire avant de pouvoir lancer quoi que ce soit :
apt-get update
apt-get install -y ca-certificates curl gnupg
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl enable --now docker
Un petit docker --version pour confirmer que tout s'est bien passé, et on peut enchaîner.
Le déploiement, avec Docker Compose
Plutôt qu'une commande docker run à retaper à chaque fois, j'ai préféré un fichier docker-compose.yml : plus lisible, plus facile à faire évoluer.
services:
stirling-pdf:
image: stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
ports:
- "8080:8080"
volumes:
- ./stirling-data:/usr/share/tessdata
- ./stirling-config:/configs
environment:
SECURITY_ENABLELOGIN: "false"
restart: unless-stopped
On lance ensuite le tout depuis le dossier où se trouve le fichier :
docker compose up -d
Et on vérifie que le conteneur tourne bien :
docker ps
Un statut Up en face de stirling-pdf, et l'interface devient accessible sur http://<ip-du-serveur>:8080.
La limite des 5 comptes (et comment la contourner)
Stirling PDF embarque son propre système de connexion, mais la version gratuite plafonne à 5 comptes utilisateurs. Petit soulagement en creusant : cette limite ne concerne que le module d'authentification, pas les fonctionnalités de traitement de PDF elles-mêmes, qui restent illimitées.
La solution la plus propre : désactiver l'authentification native (SECURITY_ENABLELOGIN=false) et gérer l'accès en amont, au niveau du reverse proxy. Dans mon cas, une authentification basique (Basic Auth) configurée directement sur mon reverse proxy suffit largement — l'outil reste protégé, sans plafond arbitraire de comptes.
Pour aller plus loin
Si on veut quelque chose de plus robuste qu'un mot de passe partagé — comptes individuels, SSO, MFA — la logique reste la même : s'appuyer sur un fournisseur d'identité existant plutôt que de réinventer l'authentification à chaque outil qu'on auto-héberge. On développera ça dans un prochain article, sûrement.