Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
@@ -0,0 +1,175 @@
---
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é)
```yaml
# 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](https://docs.papermerge.com/).
### 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
- Site officiel : https://www.papermerge.com/
- Documentation : https://docs.papermerge.com/
- GitHub (core) : https://github.com/papermerge/papermerge-core
- GitHub (frontend) : https://github.com/papermerge/papermerge.js
- Discord communautaire : https://discord.gg/8K6XuC9T5S
- selfh.st : https://selfh.st/apps/?tag=document-management
## Pages Liées
- [[cat-document-management]] — catégorie parente
- [[app-paperless-ngx]] — concurrent principal
- [[app-mayan-edms]] — alternative enterprise
- [[app-papra]] — alternative TS minimaliste
- [[app-stirling-pdf]] — outil PDF complémentaire
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques sécurité