Paperless-ngx : scanner ses papiers et ne plus jamais les chercher
Un système de gestion documentaire open-source qui OCRise, tague et indexe chaque facture, contrat ou courrier scanné — recherche en texte intégral incluse.
Un tiroir plein de factures, relevés bancaires et contrats papier, et l'impossible question deux ans plus tard : "où est cette facture de la chaudière ?" Paperless-ngx règle ce problème une bonne fois — chaque document scanné devient recherchable par son contenu texte, pas juste son nom de fichier.
Paperless-ngx surveille un dossier d'entrée, applique l'OCR (reconnaissance de caractères) sur chaque document déposé — PDF, image, scan — puis l'indexe en texte intégral. Il suggère automatiquement des tags, un correspondant (l'expéditeur) et un type de document, en se basant sur des règles configurées ou sur l'historique de classement. Résultat : taper "chaudière" dans la recherche retrouve la facture, même si le nom du fichier est scan0047.pdf.
Installation avec Docker Compose
services:
webserver:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: always
depends_on:
- db
- redis
ports:
- "8000:8000"
environment:
PAPERLESS_REDIS: redis://redis:6379
PAPERLESS_DBHOST: db
PAPERLESS_OCR_LANGUAGE: fra
PAPERLESS_TIME_ZONE: Europe/Paris
volumes:
- data:/usr/src/paperless/data
- media:/usr/src/paperless/media
- ./consume:/usr/src/paperless/consume
- ./export:/usr/src/paperless/export
db:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperlesspass
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: always
volumes:
data:
media:
pgdata:PAPERLESS_OCR_LANGUAGE: fra configure Tesseract (le moteur OCR sous-jacent) pour reconnaître le français — sans ça, l'OCR sur des documents accentués produit un texte truffé d'erreurs. Le dossier ./consume est le point d'entrée : tout fichier déposé dedans est automatiquement traité puis supprimé du dossier une fois indexé.
docker compose exec webserver createsuperuserCette commande crée le compte admin nécessaire pour la première connexion sur http://votre-serveur:8000.
Numériser vers le dossier consume
Deux façons courantes d'alimenter Paperless : un scanner réseau qui dépose directement dans un dossier partagé, ou l'app mobile qui photographie un document au téléphone.
# Un scanner réseau qui écrit via SMB dans le dossier consume
smbclient //nas.local/scans -c "get facture.pdf" /chemin/vers/consume/L'app mobile Paperless (Android/iOS) permet aussi de photographier un document directement, avec recadrage automatique des bords façon CamScanner, puis upload direct vers l'instance du serveur.
Tags, correspondants et types de documents
Trois axes de classement structurent l'archive :
| Axe | Exemple | Usage |
|---|---|---|
| Correspondant | "EDF", "Impôts", "Banque X" | Qui a émis le document |
| Type de document | "Facture", "Contrat", "Courrier" | Nature du document |
| Tags | "2026", "Voiture", "À archiver" | Classification libre, multiple |
Des règles automatiques (Paramètres > Workflows) assignent ces métadonnées sans intervention manuelle : si le texte OCR contient "EDF", assigner automatiquement le correspondant EDF et le type Facture.
Règle de workflow :
Déclencheur : nouveau document ajouté
Condition : le texte contient "EDF"
Action : assigner correspondant "EDF", type "Facture", tag "Énergie"Avec quelques dizaines de règles couvrant les correspondants récurrents (banque, énergie, impôts, assurance), la majorité des documents se classent sans aucune action manuelle après le scan.
Recherche en texte intégral
La recherche indexe tout le contenu OCRisé, pas seulement les métadonnées.
Recherche : "résiliation contrat assurance 2025"
→ retrouve le courrier même sans tag "résiliation" assignéDes filtres combinent recherche texte, plage de dates, correspondant et tags — utile pour retrouver "toutes les factures EDF de 2025" en trois clics plutôt qu'en fouillant un classeur physique.
Suggestions par apprentissage automatique
Paperless-ngx entraîne un classifieur léger sur l'historique de classement existant : plus l'archive contient de documents déjà tagués manuellement, plus les suggestions automatiques sur les nouveaux documents deviennent pertinentes. Ce n'est pas un LLM — un modèle statistique classique (scikit-learn), rapide et suffisant pour ce cas d'usage.
Rétention et suppression du papier original
Une fois un document scanné et vérifié dans Paperless-ngx, le papier original devient largement redondant pour la majorité des documents courants (factures, relevés). Attention cependant : certains documents légaux en France doivent être conservés en original physique (actes notariés, certains contrats) — vérifier les obligations de conservation avant de détruire quoi que ce soit.
Sauvegardes
docker compose exec webserver document_exporter ../exportLa commande document_exporter intégrée génère un export complet : PDF originaux, métadonnées, et un manifeste JSON permettant une réimportation complète sur une nouvelle instance si nécessaire — plus robuste qu'un simple dump de la base de données seule, puisque les fichiers PDF sont inclus.
Paperless-ngx ne dispense pas de faire le tri initial — scanner des années d'archives papier prend du temps, même avec l'OCR automatique. Mais une fois le flux en place, chaque nouveau document prend trente secondes à traiter et devient cherchable pour toujours. Sur un serveur qui héberge déjà PostgreSQL via Docker, c'est l'archive documentaire qui remplace le tiroir qu'on n'ouvre jamais qu'en panique.