MCPSERV.CLUB
Mayan EDMS

Mayan EDMS

Self-Hosted

Scalable, secure document management for modern organizations

Stale(40)
0stars
0views

Overview

Discover what makes Mayan EDMS powerful

Mayan EDMS is a mature, open‑source document management system written primarily in **Python** and built on the **Django** web framework. It exposes a rich, RESTful API that can be consumed by any client capable of HTTP requests, making it an attractive backend for custom portals or integration with existing enterprise tools. The core of the application revolves around a *document* abstraction that supports **multiversioning**, granular permissions, and declarative workflows. From a developer’s perspective, the system is designed to be extensible: plugins can hook into Django signals or extend the REST API, while a comprehensive settings schema allows fine‑grained control over everything from storage backends to authentication providers.

Document Versioning

Fine‑Grained Permissions

Workflows

Linking & Referencing

Overview

Mayan EDMS is a mature, open‑source document management system written primarily in Python and built on the Django web framework. It exposes a rich, RESTful API that can be consumed by any client capable of HTTP requests, making it an attractive backend for custom portals or integration with existing enterprise tools. The core of the application revolves around a document abstraction that supports multiversioning, granular permissions, and declarative workflows. From a developer’s perspective, the system is designed to be extensible: plugins can hook into Django signals or extend the REST API, while a comprehensive settings schema allows fine‑grained control over everything from storage backends to authentication providers.

Technical Stack

LayerTechnology
Web FrameworkDjango 5.x (Python 3.11+)
DatabasePostgreSQL (primary), optional SQLite for lightweight dev setups
SearchElasticSearch or PostgreSQL full‑text search
StorageDjango’s default storage backends; S3, Azure Blob, or local filesystem
APIDjango REST Framework (DRF) with token‑based auth; optional OAuth2 support
Background TasksCelery (Redis or RabbitMQ broker) for OCR, indexing, and workflow actions
FrontendVanilla JS with Django templates; optional React/Angular SPA via REST

The application ships with a Docker Compose stack that includes PostgreSQL, Redis, and an optional ElasticSearch container, enabling rapid provisioning of a production‑ready environment.

Core Capabilities

  • Document Versioning – Every upload creates a new Version object; each can have independent ACLs, and the API exposes endpoints to retrieve or revert to any version.
  • Fine‑Grained Permissions – Permissions are defined per atomic operation (e.g., document.view, document.edit) and can be assigned to users, groups, or roles. The permissions system is fully integrated with Django’s auth framework.
  • Workflows – Declarative workflow definitions (states, transitions, actions) are stored in the database and can be managed via the API. Custom actions (e.g., sending a Slack notification) can be implemented as Django signals or Celery tasks.
  • Linking & Referencing – Smart links automatically create bidirectional relationships between documents based on configurable rules; the API exposes relationship endpoints for traversal.
  • REST API – CRUD operations, search, bulk import/export, and workflow triggers are all available through a versioned REST API. Swagger/OpenAPI documentation is auto‑generated.
  • Extensibility – A plugin system allows developers to add new document types, custom metadata fields, or integrate external services. The plugin API follows Django’s app‑registry pattern and can be discovered at runtime.

Deployment & Infrastructure

Mayan EDMS is designed for self‑hosting with minimal external dependencies beyond PostgreSQL, a Redis broker, and optional ElasticSearch. Docker images are available on Docker Hub; the included docker‑compose.yml sets up a fully functional stack. For high‑availability, deploy the Django app behind a WSGI server (Gunicorn) with Nginx as a reverse proxy, and use PostgreSQL replication or a managed service. The Celery worker can be scaled horizontally to handle heavy OCR or indexing workloads.

The system supports horizontal scaling of the web tier and can ingest millions of documents; the document store is sharded by default when using S3 or other object stores. Continuous indexing and search are handled asynchronously, ensuring that large collections do not block API responses.

Integration & Extensibility

  • Webhooks – Trigger external services on events such as document upload, workflow transition, or permission change.
  • OAuth2 & SAML – Optional integration with external identity providers for single sign‑on.
  • Custom Metadata & Forms – Define new metadata schemas via the admin UI or API; forms can be rendered in custom frontends.
  • SDKs – While no official SDK exists, the comprehensive OpenAPI spec allows generation of client libraries in any language.

Developers can also write Django management commands or custom Celery tasks to automate document ingestion from legacy systems, perform bulk transformations, or sync with external repositories.

Developer Experience

The project hosts extensive documentation covering architecture, API usage, and deployment. The community is active on GitHub (35 k commits per year) and the project has over 100 contributors, ensuring rapid issue resolution. The codebase follows Django best practices and is heavily typed with type hints, facilitating static analysis tools. Continuous integration pipelines run tests across multiple Python versions and database backends.

Configuration is driven by Django’s settings.py, but the application also exposes a web‑based settings panel that allows runtime changes without code modifications. Logging and metrics are integrated with standard Python logging and can be forwarded to Prometheus or Grafana.

Use Cases

ScenarioWhy Mayan EDMS?
Government Records ManagementCompliance with strict audit trails, versioning, and fine‑grained access controls.
Legal Document RepositorySecure document workflows (e.g., review, approval) and automated version rollback.
Enterprise Knowledge BaseCentralized storage with full‑text search and dynamic linking between documents.
Non‑profit Grant ManagementCustom metadata for grant applications, automated approval workflows, and bulk export.
Integration with Existing ERPREST API can be consumed by an ERP to store invoices, contracts, and related documents.

Advantages

  • Open Source & Free – No licensing fees; the source code is available under a

Open SourceReady to get started?

Join the community and start self-hosting Mayan EDMS today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
GPL-2.0
Stars
0
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Official
Min RAM
1GB
Min Storage
5GB
Supported OS
LinuxDocker