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

7.3 KiB


title: Docspell created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, edms, scala, ocr, scanner, auto] confidence: high contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/eikek/docspell, https://docspell.org/]

Docspell 📨

EDMS auto-organisé écrit en Scala : « déposez n'importe quoi, Docspell OCR, classe, et range ». Pensé pour minimiser l'effort de l'utilisateur grâce à un machine learning léger et des règles auto.

Métadonnée Valeur
Site web https://docspell.org/
GitHub https://github.com/eikek/docspell
License AGPL-3.0
Langage Scala (backend) + React (frontend), JVM
Étoiles 176
Dernière MAJ 2026-05-10
Catégorie cat-document-management

Description

Docspell est un EDMS développé en Allemagne dont la philosophie est « le moins d'effort possible pour l'utilisateur ». Inspiré de Paperless et Lexoffice, il se distingue par son système d'auto-classement : une fois que vous avez classifié manuellement quelques documents, Docspell apprend de vos choix (tag, correspondant, type de document) et propose automatiquement la bonne classification pour les nouveaux uploads. C'est du machine learning supervisé simple (régression logistique / SVM) embarqué dans l'app, pas besoin de service tiers.

L'OCR est basé sur Tesseract 4/5 avec support multi-langues (fra, eng, deu, etc.). Le consumer (service dédié) surveille un dossier (ou IMAP) et ingère automatiquement les nouveaux fichiers, lance l'OCR, applique les règles de classification, et range dans l'arborescence. L'interface web (React) est claire, multilingue, et propose une vue « inbox » type Gmail pour les documents à valider, et une vue « archive » pour les documents classifiés.

L'écosystème comprend un connecteur IMAP (très utile : il aspire les pièces jointes depuis votre boîte mail et les ingère), un watcher de dossier (partage SMB/NFS), un client de scan (TWAIN via SANE sous Linux), et un système de partage par lien avec expiration. L'architecture est plus simple que Mayan : 2 services principaux (joex pour le worker, restserver pour l'API), Postgres pour la persistance. La stack 100 % JVM est solide mais un peu lourde (≥ 1 Go RAM). Idéal pour un homelab Linux qui veut un EDMS « set-and-forget ».

Installation

Via Docker Compose (recommandé)

# docker-compose.yml
services:
  restserver:
    image: docspell/restserver:latest
    container_name: docspell-rest
    restart: unless-stopped
    ports:
      - "7880:7880"
    environment:
      - DOCSPELL_DB_URL=jdbc:postgresql://db/docspell
      - DOCSPELL_DB_USER=docspell
      - DOCSPELL_DB_PASSWORD=ChangeMeDbPass!
      - DOCSPELL_SERVER_URL=https://docs.example.com
      - DOCSPELL_AUTH_SERVER_SECRET=Change...y!
    volumes:
      - docspell-data:/usr/share/docspell/data
    depends_on:
      - db

  joex:
    image: docspell/joex:latest
    container_name: docspell-joex
    restart: unless-stopped
    environment:
      - DOCSPELL_DB_URL=jdbc:postgresql://db/docspell
      - DOCSPELL_DB_USER=docspell
      - DOCSPELL_DB_PASSWORD=ChangeMeDbPass!
      - DOCSPELL_OCR_MODE=builtin
      - DOCSPELL_OCR_LANG=fra+eng
    volumes:
      - docspell-data:/usr/share/docspell/data
      - docspell-ocr:/ocr
    depends_on:
      - db

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

volumes:
  docspell-data:
  docspell-ocr:
  docspell-db:

Note

: le joex peut être configuré pour utiliser Tesseract externe (hôte) au lieu du mode builtin (qui télécharge les modèles au runtime).

Installation manuelle

  1. Pré-requis : Java 17+, PostgreSQL 13+, Tesseract 5 + langues (fra, eng, deu, etc.), 2 Go RAM minimum.
  2. Téléchargement : récupérer restserver.jar et joex.jar depuis les releases GitHub.
  3. Config : docspell.conf (HOCON) à placer dans /etc/docspell/, définir db, server, auth-secret.
  4. Lancer : java -jar restserver.jar (port 7880) et java -jar joex.jar dans des services systemd séparés.
  5. Premier user : docspell-cli admin create (CLI dédiée).

Configuration

  • Premier admin : créé via la CLI docspell-cli ou via l'UI au premier lancement (mode open-registration configurable).
  • Tessdata : installer les modèles Tesseract sur l'hôte (apt install tesseract-ocr-fra tesseract-ocr-eng).
  • Correspondants/Tags : créer la taxonomie AVANT le premier import en masse.
  • IMAP : configurer un connecteur IMAP dans Settings → Connectors (host, port, SSL, user, pass, dossier).
  • ML : après 20-30 documents classifiés manuellement, activer l'auto-suggestion dans Settings → Learning.
  • Backups : pg_dump pour la DB, rsync du dossier data/.
  • HTTPS : obligatoire via reverse proxy.
  • Reverse proxy : client_max_body_size à augmenter (uploads jusqu'à 100 Mo).

Alternatives

Open Source

Propriétaires

  • Lexoffice — comptabilité allemande avec archivage cloud (non libre)
  • sevDesk — facturation allemande avec GED intégrée
  • DocuWare — EDMS enterprise cloud
  • Google Drive + Gmail — cloud Google
  • Evernote — freemium
  • DEVONthink — GED Mac/iOS

Sécurité

  • HTTPS obligatoire + HSTS via reverse proxy.
  • 2FA : TOTP natif dans les paramètres utilisateur.
  • SSO OIDC : intégrable via docspell.auth.oauth (provider générique).
  • Permissions par collectif : multi-collectifs (ex: « Personnel », « Pro ») avec ACL par document.
  • Chiffrement at-rest : monter les volumes sur stockage chiffré (LUKS/ZFS).
  • Mail credentials : les IMAP passwords sont chiffrés en DB avec un secret dédié.
  • Audit log : actions utilisateurs loggées, consultables en admin.
  • CVE : stack JVM, mises à jour fréquentes, suivre les releases GitHub.
  • Isolation : Docspell peut être exposé en HTTPS, mais idéalement derrière VPN.
  • Backups testés : tester la restauration complète (DB + fichiers).

Ressources

Pages Liées