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

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 gotenberg et tika comme services additionnels permet de générer des aperçus de documents Office et PDF en HTML (cf. doc officielle).

Installation manuelle

  1. 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).
  2. Installation : pip install paperless-ngx (paquet PyPI).
  3. Initialisation : paperless-manage migrate && paperless-manage createsuperuser.
  4. Consommateur : paperless-consumer à mettre en cron ou systemd.
  5. Web : gunicorn -w 3 paperless.wsgi derriè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_KEY doit être long et aléatoire (utiliser openssl 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

Pages Liées