6.3 KiB
title: Papra created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, ged, typescript, nodejs, moderne, minimaliste] confidence: medium contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/papra-app/papra]
Papra 🪶
Gestion documentaire moderne et minimaliste écrite en TypeScript : déposez vos fichiers, Papra les indexe et les rend recherchables. UI épurée, pensée pour un usage personnel simple, sans la complexité de Paperless.
| Métadonnée | Valeur |
|---|---|
| Site web | https://www.papra.app/ |
| GitHub | https://github.com/papra-app/papra |
| License | MIT (à vérifier) |
| Langage | TypeScript / Node.js (Fastify + React) |
| Étoiles | ⭐231 |
| Dernière MAJ | 2026-05-15 |
| Catégorie | cat-document-management |
Description
Papra est un projet récent (2024+) qui se positionne comme une alternative moderne et légère à Paperless-ngx. La promesse : « déposez vos documents, on s'occupe du reste ». L'UI est volontairement minimaliste (type « Notion / Linear »), sans la densité fonctionnelle d'un Paperless. L'objectif n'est pas de tout faire (workflows, signatures, OCR distribué) mais de bien faire l'essentiel : déposer, classer, retrouver.
L'architecture est moderne : backend Fastify (Node.js 20+), frontend React + Vite, base de données SQLite par défaut (PostgreSQL possible), stockage filesystem local ou S3-compatible. Le tagging est libre, sans hiérarchie imposée, avec autocomplétion. La recherche est full-text (SQLite FTS5 ou Postgres tsvector) sur les métadonnées + nom de fichier. Pas d'OCR natif pour l'instant, c'est un choix assumé de « v1 ».
L'embarquement mobile est une priorité (PWA + API responsive), ce qui le rend utilisable depuis un téléphone pour scanner/déposer en mobilité. Le projet est early-stage (semver 0.x), l'API n'est pas encore figée, mais le rythme de release est soutenu (plusieurs releases/semaine). Idéal pour un homelab qui veut une GED « simple qui marche » sans 4 services Docker à maintenir. À surveiller de près, le potentiel est là.
Installation
Via Docker Compose (recommandé)
# docker-compose.yml
services:
papra:
image: papra/papra:latest
container_name: papra
restart: unless-stopped
ports:
- "8082:3000"
environment:
- NODE_ENV=production
- DATABASE_URL=file:/data/papra.db
- STORAGE_DIR=/data/storage
- JWT_SECRET=*** - APP_URL=https://papra.example.com
- MAX_UPLOAD_SIZE_MB=100
volumes:
- papra-data:/data
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
papra-data:
Astuce : passer à PostgreSQL en définissant
DATABASE_URL=postgres://user:pass@host:5432/papra(nécessite un servicedbadditionnel).
Installation manuelle
- Pré-requis : Node.js 20+, npm 10+, SQLite (inclus dans Node) ou PostgreSQL 14+.
- Clone & install :
git clone https://github.com/papra-app/papra && cd papra && npm install. - Build :
npm run build(build frontend + backend). - Config : copier
.env.examplevers.envet renseignerJWT_SECRET,DATABASE_URL. - Lancer :
npm start(port 3000 par défaut). - Premier user : inscription via l'UI au premier lancement (mode « invitation ouverte » ou non, configurable).
Configuration
- Premier admin : premier compte créé devient admin (configurable via
ADMIN_EMAIL). - Stockage : filesystem local (par défaut) ou S3-compatible (MinIO, Garage, Backblaze) via
STORAGE_BACKEND=s3+ variables S3_*. - Tags : créer librement depuis l'UI, autocomplete sur les nouveaux documents.
- Recherche : FTS5 SQLite par défaut, performant jusqu'à ~100k documents.
- Auth : email + mot de passe (bcrypt), JWT côté API.
- HTTPS : obligatoire via reverse proxy.
- Backups : copier le dossier
/data(DB SQLite + fichiers) est suffisant. - PWA : accessible en mobile via « Ajouter à l'écran d'accueil ».
Alternatives
Open Source
- app-paperless-ngx — GED la plus populaire, plus mature mais plus complexe
- app-mayan-edms — EDMS enterprise Python
- app-papermerge — concurrent direct, UI moderne Django + Vue
- app-docspell — EDMS Scala axé OCR
- app-pdfding — gestionnaire PDF simple (Python)
- app-i-librarian — bibliothèque de PDFs (PHP)
- TagSpaces — GED desktop multi-plateforme
- Alexandria — bookmark manager pour PDF
Propriétaires
- Notion — pas vraiment GED mais populaire pour le classement
- Google Drive — cloud Google, freemium
- Dropbox — cloud freemium
- DEVONthink — référence Mac/iOS
- Evernote — freemium, OCR de qualité
- OneDrive — Microsoft, intégré Office
- Apple Notes — basique iCloud
Sécurité
- JWT signé :
JWT_SECRETdoit être long et aléatoire (utiliseropenssl rand -hex 64). - HTTPS obligatoire via reverse proxy.
- Mots de passe : hashés en bcrypt (cost factor par défaut).
- Pas de 2FA natif : compter sur l'auth reverse proxy (Authelia/Authentik) — à confirmer en v1.0.
- Chiffrement at-rest : monter le volume sur stockage chiffré.
- CORS : configurer
ALLOWED_ORIGINSsi API consommée par d'autres frontends. - Mises à jour : le projet est jeune, les CVE sont traitées rapidement mais rester vigilant.
- Backups : Papra étant SQLite-based, un simple
cpdu.dbsuffit pour la DB. - Isolation : ne pas exposer Papra en direct, passer par un reverse proxy.
Ressources
- Site officiel : https://www.papra.app/
- Documentation : https://docs.papra.app/
- GitHub : https://github.com/papra-app/papra
- Discord communautaire : https://discord.gg/papra (à confirmer)
- selfh.st : https://selfh.st/apps/?tag=document-management
Pages Liées
- cat-document-management — catégorie parente
- app-paperless-ngx — alternative mature
- app-papermerge — concurrent UI moderne
- app-mayan-edms — alternative enterprise
- recettes-docker-compose — templates de déploiement
- securisation-home-lab — bonnes pratiques sécurité