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

7.8 KiB


title: Papermerge created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, ged, ocr, python, django, vuejs] confidence: high contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/papermerge/papermerge-core, https://www.papermerge.com/]

Papermerge 📁

GED moderne et élégante écrite en Python (Django) avec frontend Vue.js 3 : scan, OCR, tags, arborescence, et une expérience utilisateur qui rivalise avec les solutions SaaS comme Notion ou Google Drive.

Métadonnée Valeur
Site web https://www.papermerge.com/
GitHub https://github.com/papermerge/papermerge-core
License Apache-2.0
Langage Python / Django + Vue.js 3 (TypeScript)
Étoiles 308
Dernière MAJ 2026-05-25
Catégorie cat-document-management

Description

Papermerge est une GED open source relativement jeune (1ère release stable v2 en 2022) qui mise tout sur l'expérience utilisateur. Le frontend Vue.js 3 + Tailwind offre une UI fluide, type « drive cloud » (drag&drop, preview instantanée, breadcrumb, recherche rapide), là où Paperless-ngx et Mayan restent plus « admin Django » dans l'âme. L'idée : proposer une alternative crédible à Google Drive + OCR pour gérer ses documents personnels ou d'équipe.

Fonctionnalités principales : OCR (Tesseract 5 avec modèles LSTM), tags hiérarchiques (tag parent/enfant), arborescence de dossiers illimitée, aperçu PDF/images natif dans le navigateur, partage de documents par lien (avec expiration), API REST complète (OpenAPI), utilisateurs/groupes/permissions, OCR auto à l'upload, extraction de métadonnées par regex, page OCR manuelle pour corriger les erreurs.

L'architecture est en microservices Docker : core (Django REST), frontend (Vue.js), worker (Celery pour OCR/tâches lourdes), db (Postgres), broker (Redis). C'est plus complexe à déployer que Paperless mais bien découplé. La v3 (en cours, 2024-2025) apporte un éditeur de documents in-app, le support natif des images multi-pages, et un système d'OCR encore plus rapide (GPU optionnel). Le modèle commercial Freemium (cloud payant) finance le développement open source, ce qui assure une roadmap active.

Installation

Via Docker Compose (recommandé)

# docker-compose.yml
services:
  backend:
    image: papermerge/papermerge-core:latest
    container_name: papermerge-backend
    restart: unless-stopped
    expose:
      - "8000"
    environment:
      - DJANGO_SETTINGS_MODULE=papermerge.settings
      - DATABASE_URL=postgres://papermerge:***@db:5432/papermerge
      - REDIS_URL=redis://broker:6379/0
      - PAPERMERGE_SECRET_KEY=***- SECRET_KEY_HERE
      - PAPERMERGE_ALLOWED_HOSTS=*
      - PAPERMERGE_OCR_LANG=fra+eng
      - PAPERMERGE_OCR_DEFAULT_PAGE_SEG_MODE=1
    volumes:
      - papermerge-data:/app/data
    depends_on:
      - db
      - broker

  frontend:
    image: papermerge/papermerge-frontend:latest
    container_name: papermerge-frontend
    restart: unless-stopped
    ports:
      - "8081:8080"
    environment:
      - PAPERMERGE_API_URL=http://backend:8000

  worker:
    image: papermerge/papermerge-core:latest
    container_name: papermerge-worker
    restart: unless-stopped
    environment:
      - DJANGO_SETTINGS_MODULE=papermerge.settings
      - DATABASE_URL=postgres://papermerge:ChangeMe@db:5432/papermerge
      - REDIS_URL=redis://broker:6379/0
      - PAPERMERGE_SECRET_KEY=ChangeMeWithOpensslRandHex64
    volumes:
      - papermerge-data:/app/data
    depends_on:
      - db
      - broker

  db:
    image: postgres:16-alpine
    container_name: papermerge-db
    restart: unless-stopped
    environment:
      - POSTGRES_DB=papermerge
      - POSTGRES_USER=papermerge
      - POSTGRES_PASSWORD=ChangeMeDbPass!
    volumes:
      - papermerge-db:/var/lib/postgresql/data

  broker:
    image: redis:7-alpine
    container_name: papermerge-redis
    restart: unless-stopped

volumes:
  papermerge-data:
  papermerge-db:

Note

: pour la v3 (alpha), la stack se simplifie (image unique), cf. doc d'install v3.

Installation manuelle

  1. Pré-requis : Python 3.11+, Node.js 18+ (build frontend), PostgreSQL 14+, Redis 6+, Tesseract 5 + modèles fra et eng, ImageMagick.
  2. Backend : pip install papermerge-core, python manage.py migrate, python manage.py createsuperuser.
  3. Frontend : git clone https://github.com/papermerge/papermerge.js && cd papermerge.js && npm install && npm run build (sert sur :8080).
  4. Worker : celery -A papermerge worker (process séparé).
  5. Prod : gunicorn derrière Nginx, worker en systemd.

Configuration

  • Premier admin : créé via createsuperuser, se connecter sur le frontend pour configurer.
  • OCR : PAPERMERGE_OCR_LANG=fra+eng permet d'extraire le texte français et anglais. Ajouter deu, spa selon les besoins.
  • Tessdata : monter /usr/share/tesseract-ocr/4.00/tessdata/ du host (ou installer les .traineddata dans l'image custom).
  • Tags : créer une taxonomie avant l'import (ex: Énergie, Banque, Santé, Administratif, Auto, Travail).
  • Partage : activer le partage par lien dans Settings → Sharing, définir une expiration par défaut.
  • Backups : pg_dump quotidien + rsync du dossier data/.
  • HTTPS : obligatoire via reverse proxy.
  • Reverse proxy : configurer client_max_body_size (uploads jusqu'à 200 Mo pour les scans HD).

Alternatives

Open Source

  • app-paperless-ngx — GED plus mature, plus grande communauté (Python/Django)
  • app-mayan-edms — EDMS enterprise avec workflows (Python)
  • app-papra — alternative TypeScript minimaliste
  • app-docspell — EDMS Scala axé OCR
  • app-stirling-pdf — outil PDF, complémentaire (post-traitement)
  • Teedy (Sismics Docs) — GED Java simple
  • Alfresco — GED enterprise Java

Propriétaires

  • Google Drive + Docs — cloud Google, OCR limité
  • Notion — notes + docs, pas vraiment GED
  • Dropbox — cloud freemium
  • OneDrive — Microsoft, intégré Office
  • Box — cloud enterprise
  • DEVONthink — GED Mac/iOS, très bonne réputation
  • Evernote — freemium, OCR de qualité

Sécurité

  • HTTPS obligatoire + HSTS via reverse proxy.
  • 2FA : supporté via django-otp (TOTP, WebAuthn en option).
  • SSO OIDC/SAML : intégrable via plugins tiers (django-allauth).
  • Permissions par groupe : créer des groupes (Famille, Pro, Archives) avec ACL différentes.
  • Chiffrement at-rest : monter les volumes sur stockage chiffré.
  • Partage par lien : tokens signés avec expiration, révocables, traçables (logs).
  • Audit : logs d'accès aux documents, actions utilisateurs.
  • Mises à jour : suivre les releases (régulières), les CVE Django sont corrigées rapidement.
  • Backups testés : tester la restauration complète (DB + fichiers), critique pour une GED.
  • Isolation : Papermerge ne doit pas être exposé directement sur Internet sans auth.

Ressources

Pages Liées