---
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é)

```yaml
# 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
- Site officiel : https://www.mayan-edms.com/
- Documentation : https://docs.mayan-edms.com/
- GitHub : https://github.com/mayan-edms/mayan-edms
- Forum communauté : https://forum.mayan-edms.com/
- selfh.st : https://selfh.st/apps/?tag=document-management

## Pages Liées
- [[cat-document-management]] — catégorie parente
- [[app-paperless-ngx]] — alternative plus accessible
- [[app-papermerge]] — concurrent moderne
- [[app-papra]] — alternative TS minimaliste
- [[recettes-docker-compose]] — templates de déploiement
- [[securisation-home-lab]] — bonnes pratiques sécurité
