Initial vault setup
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
---
|
||||
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é
|
||||
Reference in New Issue
Block a user