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

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 service db additionnel).

Installation manuelle

  1. Pré-requis : Node.js 20+, npm 10+, SQLite (inclus dans Node) ou PostgreSQL 14+.
  2. Clone & install : git clone https://github.com/papra-app/papra && cd papra && npm install.
  3. Build : npm run build (build frontend + backend).
  4. Config : copier .env.example vers .env et renseigner JWT_SECRET, DATABASE_URL.
  5. Lancer : npm start (port 3000 par défaut).
  6. 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

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_SECRET doit être long et aléatoire (utiliser openssl 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_ORIGINS si 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 cp du .db suffit pour la DB.
  • Isolation : ne pas exposer Papra en direct, passer par un reverse proxy.

Ressources

Pages Liées