8.1 KiB
title: Paperless-ngx created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, ged, ocr, python, django, postgresql] confidence: high contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/paperless-ngx/paperless-ngx, https://docs.paperless-ngx.com/]
Paperless-ngx 📚
Système de gestion électronique de documents (GED) grand public : scannez, classez, taguez et retrouvez tous vos papiers (factures, contrats, courriers) via une recherche full-text dopée à l'OCR.
| Métadonnée | Valeur |
|---|---|
| Site web | https://docs.paperless-ngx.com/ |
| GitHub | https://github.com/paperless-ngx/paperless-ngx |
| License | GPL-3.0 |
| Langage | Python / Django (frontend Alpine.js) |
| Étoiles | ⭐2796 |
| Dernière MAJ | 2026-05-29 |
| Catégorie | cat-document-management |
Description
Paperless-ngx est le fork communautaire actif de Paperless (arrêté en 2020), devenu la référence de la GED personnelle auto-hébergeable. Le principe est simple : vous déposez vos scans (PDF, images, fichiers Office) dans un dossier consume/, Paperless applique l'OCR (Tesseract) pour extraire le texte, détecte automatiquement les métadonnées (date, montant, expéditeur, type de document) et range le document dans une arborescence de correspondants/tags. Tout est indexé et recherchable en full-text.
L'interface web offre une vue type « boîte de réception » (à la Gmail), avec filtres avancés (type, date, tag, correspondant, montant), aperçus PDF, et un système de workflows (statut, partage, partage de liens publics). Le machine learning apprend de vos classements manuels pour suggérer automatiquement le bon tag/correspondant sur les nouveaux documents. L'OCR allemand est très bon (le projet est né en Allemagne), le français fonctionne correctement avec les bons modèles.
L'écosystème comprend un client mobile (Paperless Mobile, Flutter, F-Droid), des intégrations avec Nextcloud, Synology, scanners Fujitsu SnapScan, et un consumer d'email (IMAP) pour importer automatiquement les pièces jointes. C'est l'une des apps les plus installées en homelab, avec une communauté très active et un Wiki/RFC bien fourni. Attention : c'est une app « lourde » (PostgreSQL + Redis + Python), prévoir 1-2 Go de RAM minimum.
Installation
Via Docker Compose (recommandé)
# docker-compose.yml
services:
paperless:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
container_name: paperless-ngx
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- paperless-data:/usr/src/paperless/data
- paperless-media:/usr/src/paperless/media
- paperless-consume:/usr/src/paperless/consume
- paperless-export:/usr/src/paperless/export
environment:
- PAPERLESS_REDIS=redis://broker:6379
- PAPERLESS_DBHOST=db
- PAPERLESS_DBNAME=paperless
- PAPERLESS_DBUSER=paperless
- PAPERLESS_DBPASS=ChangeMeDbPass!
- PAPERLESS_SECRET_KEY=ChangeMeSecretKey!
- PAPERLESS_URL=https://docs.example.com
- PAPERLESS_TIME_ZONE=Europe/Paris
- PAPERLESS_OCR_LANGUAGE=fra+eng
- PAPERLESS_OCR_MODE=skip_noarchive
depends_on:
- db
- broker
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/"]
interval: 30s
timeout: 10s
retries: 3
db:
image: postgres:16-alpine
container_name: paperless-db
restart: unless-stopped
environment:
- POSTGRES_DB=paperless
- POSTGRES_USER=paperless
- POSTGRES_PASSWORD=ChangeMeDbPass!
volumes:
- paperless-db:/var/lib/postgresql/data
broker:
image: redis:7-alpine
container_name: paperless-redis
restart: unless-stopped
volumes:
paperless-data:
paperless-media:
paperless-consume:
paperless-export:
paperless-db:
Note
: ajouter
gotenbergettikacomme services additionnels permet de générer des aperçus de documents Office et PDF en HTML (cf. doc officielle).
Installation manuelle
- Pré-requis : Python 3.11+, PostgreSQL 13+, Redis 6+, Tesseract OCR (
tesseract-ocr tesseract-ocr-fra tesseract-ocr-eng), ImageMagick, Ghostscript, libpoppler, Java (pour Tika). - Installation :
pip install paperless-ngx(paquet PyPI). - Initialisation :
paperless-manage migrate && paperless-manage createsuperuser. - Consommateur :
paperless-consumerà mettre en cron ou systemd. - Web :
gunicorn -w 3 paperless.wsgiderrière Nginx.
Configuration
- Premier admin : créer via
paperless-manage createsuperuser(ou via l'UI au premier lancement). - Correspondants/Tags/Types : créer l'arborescence AVANT d'importer en masse (sinon tout finit en « sans catégorie »).
- Workflows : configurer les règles auto-classement dans Settings → Workflows (exemple : « si texte contient 'EDF' → tag Énergie, correspondant EDF »).
- ML : après 50+ documents classifiés manuellement, Paperless commence à suggérer (Settings → Machine Learning).
- Dossier consume : monter un partage SMB/NFS depuis votre scanner ou utiliser le scan-to-mail.
- Backups : 4 dossiers critiques →
data/(DB SQLite historique ou non utilisé si Postgres),media/(originaux),db/(dump Postgres),export/(archive). - HTTPS : obligatoire, via Traefik/Caddy.
- Reverse proxy : bien gérer les
client_max_body_size(uploads PDF jusqu'à 100 Mo).
Alternatives
Open Source
- app-mayan-edms — EDMS Python avec workflows, plus « entreprise »
- app-papermerge — concurrent direct, UI plus moderne (Django + Vue)
- app-papra — alternative moderne minimaliste (TypeScript)
- app-docspell — scanner/OCR Scala, axé « zéro-effort »
- app-teedy (Sismics Docs) — GED légère Java
- app-archivebox — archivage web (pas vraiment GED)
- OpenKM — EDMS Java enterprise
- Alfresco Community — GED enterprise complète (lourd)
Propriétaires
- Evernote / Notion — prise de notes, pas vraiment GED
- Google Drive + OCR — cloud Google, OCR limité
- Dropbox + HelloSign — cloud freemium
- Adobe Scan — mobile, OCR cloud Adobe
- 1Password Documents — pour quelques documents sensibles
- Evernote Scannable (iOS) — scan mobile, cloud
Sécurité
- Chiffrement at-rest : monter les volumes Paperless sur un disque LUKS ou activer le chiffrement ZFS.
- HTTPS obligatoire + HSTS via reverse proxy.
- Authentification : compte admin unique, pas de SSO natif (compter sur Authelia/Authentik via reverse proxy).
- Permissions fines : groupes d'utilisateurs (admin, utilisateur) — non encore au niveau LDAP complet.
- Secrets :
PAPERLESS_SECRET_KEYdoit être long et aléatoire (utiliseropenssl rand -hex 32). - Mise à jour : suivre les releases GitHub (canal stable), les CVE Django/Pillow sont rares mais possibles.
- Logs :
paperless-manage changelog(audit) + logs Django standards. - Isolation réseau : exposer Paperless uniquement via VPN ou reverse proxy authentifié, jamais en direct sur Internet.
- Backups testés : un Paperless corrompu = 10 ans de documents perdus, tester régulièrement la restauration.
Ressources
- Documentation officielle : https://docs.paperless-ngx.com/
- GitHub : https://github.com/paperless-ngx/paperless-ngx
- Wiki communautaire : https://github.com/paperless-ngx/paperless-ngx/wiki
- Discord : https://discord.gg/paperless
- selfh.st : https://selfh.st/apps/?tag=document-management
- r/PaperlessNGX : https://reddit.com/r/PaperlessNGX
Pages Liées
- cat-document-management — catégorie parente
- app-mayan-edms — alternative enterprise
- app-papermerge — concurrent moderne
- app-papra — alternative TS minimaliste
- app-stirling-pdf — outil PDF complémentaire (post-traitement)
- recettes-docker-compose — templates de déploiement
- securisation-home-lab — bonnes pratiques sécurité
- strategie-backup-3-2-1 — crucial pour une GED