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

7.3 KiB


title: Mayan EDMS created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, document-management, edms, python, django, workflows, ocr] confidence: high contested: false sources: [https://selfh.st/apps/?tag=document-management, https://github.com/mayan-edms/mayan-edms, https://www.mayan-edms.com/]

Mayan EDMS 🗂️

Electronic Document Management System (EDMS) open source mature, écrit en Python/Django : gestion documentaire « enterprise » avec workflows, signatures, OCR, conversion et permissions fines par cabinet/role.

Métadonnée Valeur
Site web https://www.mayan-edms.com/
GitHub https://github.com/mayan-edms/mayan-edms
License Apache-2.0
Langage Python / Django (frontend jQuery + Bootstrap)
Étoiles 317
Dernière MAJ 2026-05-20
Catégorie cat-document-management

Description

Mayan EDMS (anciennement Mayan EDMS) est l'un des plus anciens projets de GED open source encore activement maintenu (1ère release en 2011). Il se positionne sur le segment « entreprise » avec des fonctionnalités absentes de Paperless-ngx : workflows configurables (états + transitions), signatures électroniques (PAdES via django-signature), cabinets/permissions fines (par groupe, par document, par cabinet), OCR distribué (plusieurs moteurs : Tesseract, OCR.space, Azure), conversion de formats (vers PDF/A, image), hooks d'automatisation (webhooks, événements).

L'interface est plus austère que Paperless (look « admin Django » modernisé) mais fonctionnellement très riche : vue arborescente des documents, métadonnées custom par type, recherche avancée, annotations, versions, comparaisons de versions, ACL par document ou par tag, et un système d'indexation très poussé (index full-text Elasticsearch ou natif).

Le modèle d'extension par apps Django permet d'ajouter des fonctionnalités (ex: mayan-apps-acs pour Alfresco, mayan-apps-imap pour consumer email, mayan-apps-rest-api — devenu natif). L'API REST est complète (DRF) et permet d'intégrer Mayan dans des SI existants. Idéal pour les associations, les cabinets d'avocats, les PME, ou les homelabs avancés qui veulent plus de contrôle que Paperless.

Installation

Via Docker Compose (recommandé)

# docker-compose.yml
services:
  mayan:
    image: mayanedms/mayan-edms:latest
    container_name: mayan-edms
    restart: unless-stopped
    ports:
      - "8001:8000"
    environment:
      - MAYAN_ALLOWED_HOSTS=*
      - MAYAN_DATABASE_ENGINE=django.db.backends.postgresql
      - MAYAN_DATABASE_NAME=mayan
      - MAYAN_DATABASE_USER=mayan
      - MAYAN_DATABASE_PASSWORD=***      - MAYAN_DATABASE_HOST=db
      - MAYAN_DATABASE_PORT=5432
      - MAYAN_CELERY_BROKER_URL=redis://broker:6379/0
      - MAYAN_CELERY_RESULT_BACKEND=redis://broker:6379/1
      - MAYAN_MEDIA_ROOT=/var/lib/mayan
      - MAYAN_LOCK_MANAGER_BACKEND=mayan.apps.lock_manager.backends.redis_lock.RedisLock
      - MAYAN_LOCK_MANAGER_BACKEND_ARGUMENTS=redis://broker:6379/2
      - MAYAN_OCR_BACKEND=mayan.apps.ocr.backends.tesseract.Tesseract
      - MAYAN_OCR_BACKEND_ARGUMENTS={"language": "fra+eng"}
    volumes:
      - mayan-app:/var/lib/mayan
      - mayan-data:/usr/share/mayan/data
    depends_on:
      - db
      - broker

  db:
    image: postgres:15-alpine
    container_name: mayan-db
    restart: unless-stopped
    environment:
      - POSTGRES_DB=mayan
      - POSTGRES_USER=mayan
      - POSTGRES_PASSWORD=***    volumes:
      - mayan-db:/var/lib/postgresql/data

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

volumes:
  mayan-app:
  mayan-data:
  mayan-db:

Installation manuelle

  1. Pré-requis : Python 3.10+, PostgreSQL 12+, Redis 6+, Tesseract, Ghostscript, LibreOffice, Node.js (assets).
  2. Installation : pip install mayan-edms (paquet PyPI) + mayan-edms.py init (initialise config + DB).
  3. Lancement : gunicorn mayan.wsgi (production) ou mayan-edms.py runserver (dev).
  4. Celery : celery -A mayan worker et celery -A mayan beat pour les tâches async (OCR, conversions).
  5. Tesseract : installer tesseract-ocr-fra et autres langues.

Configuration

  • Premier lancement : créer un superuser via mayan-edms.py createsuperuser.
  • OCR : configurer le moteur dans Settings → OCR (Tesseract natif, OCR.space pour fallback cloud, Azure pour qualité enterprise).
  • Cabinets : créer un cabinet par département/client (ex: « Personnel », « Pro », « Asso »), assigner des groupes.
  • Types de documents : créer des types avec des métadonnées custom (ex: Type « Facture » avec champs : date, montant HT, TVA, n° fournisseur).
  • Workflows : définir des états (Brouillon, À valider, Archivé) et des transitions conditionnelles.
  • Permissions : utiliser le système de rôles (Lecteur, Éditeur, Validateur) par cabinet/type.
  • Signing : configurer django-signer + certificats pour la signature PAdES.
  • Webhooks : déclencher des actions sur événements (nouveau doc, transition d'état).

Alternatives

Open Source

  • app-paperless-ngx — GED plus simple d'usage, UI plus moderne
  • app-papermerge — concurrent moderne, UI Vue.js
  • app-papra — GED minimaliste TypeScript
  • app-docspell — EDMS Scala, axé OCR auto
  • app-alfresco — GED enterprise Java (très lourd)
  • OpenKM — EDMS Java, interface plus moderne que Mayan
  • SeedDMS — GED PHP légère
  • Teedy (Sismics Docs) — GED Java simple

Propriétaires

  • DocuWare — EDMS cloud/hybride, ~€/mois/utilisateur
  • M-Files — GED metadata-driven, populaire en Europe du Nord
  • SharePoint (Microsoft) — l'inévitable, intégré Office 365
  • iManage — EDMS pour cabinets d'avocats
  • NetDocuments — cloud EDMS pour legal
  • LogicalDOC — freemium, fork open source d'OpenKM

Sécurité

  • Authentification forte : Django supporte 2FA (TOTP) via apps tierces (django-otp).
  • SSO/OIDC/SAML : intégrable via django-allauth ou python-social-auth.
  • Permissions fines : ACL par document, par cabinet, par type, par groupe — plus granulaire que la plupart des concurrents.
  • Chiffrement at-rest : monter les volumes Mayan sur stockage chiffré (LUKS/ZFS).
  • HTTPS obligatoire via reverse proxy (Traefik/Caddy/Nginx).
  • Audit log : toutes les actions sont loggées (qui a vu/édité tel document à telle date).
  • CVE : Django/Pillow sont maintenus à jour, Mayan release tous les 1-2 mois.
  • Isolation : Mayan doit rester sur réseau privé ou derrière VPN.
  • Backups : pg_dump pour la DB, sauvegarde des dossiers media/ et data/. Tester la restauration.

Ressources

Pages Liées