MCPSERV.CLUB
SeedDMS

SeedDMS

Self-Hosted

Secure Document Management with Workflow & Notifications

Stale(40)
0stars
0views

Overview

Discover what makes SeedDMS powerful

SeedDMS is a PHP‑based, open‑source Document Management System (DMS) that emphasizes fine‑grained access control and workflow notifications. From a developer’s perspective, it functions as an API‑first platform that exposes CRUD operations for documents, folders, and users through a RESTful interface while also offering an extensible event system. The core engine is written in PHP 7/8, runs on Apache or Nginx with mod_php/FPM, and relies on a relational database (MySQL/MariaDB) for persistence. Documents are stored in the file system, with metadata indexed in the database to enable full‑text search and audit logging.

Language & Framework

Database

File Storage

Search

Overview

SeedDMS is a PHP‑based, open‑source Document Management System (DMS) that emphasizes fine‑grained access control and workflow notifications. From a developer’s perspective, it functions as an API‑first platform that exposes CRUD operations for documents, folders, and users through a RESTful interface while also offering an extensible event system. The core engine is written in PHP 7/8, runs on Apache or Nginx with mod_php/FPM, and relies on a relational database (MySQL/MariaDB) for persistence. Documents are stored in the file system, with metadata indexed in the database to enable full‑text search and audit logging.

Architecture

  • Language & Framework: Pure PHP, no external framework required. The codebase follows an MVC‑like structure with a lightweight routing layer.
  • Database: MySQL/MariaDB is the default. All document metadata, user roles, permissions, and workflow events are stored in normalized tables; the schema is fully documented and can be migrated with SQL scripts.
  • File Storage: Files are kept in a configurable directory tree (/data/documents) with optional encryption support via OpenSSL. This separation allows scaling the storage backend independently (e.g., mounting an NFS or S3‑compatible filesystem).
  • Search: Built‑in full‑text search uses MySQL’s FULLTEXT indexes; developers can replace or augment this with Elasticsearch by hooking into the event system.
  • Notification Engine: A pluggable mailer (SMTP, SendGrid) and Webhook dispatcher allow custom integrations for approval workflows or audit trails.

Core Capabilities

  • REST API: Endpoints expose document upload/download, folder manipulation, and permission changes. Authentication is handled via session tokens or API keys.
  • Event Hooks: onDocumentUpload, onPermissionChange, etc., can be overridden in custom PHP modules or called via webhooks.
  • Document Conversion: Uses LibreOffice headless mode to generate PDFs or thumbnails; developers can swap the conversion engine for tools like unoconv or CloudConvert.
  • Role‑Based Access Control: Permissions are defined per folder and can be inherited. The ACL model supports read, write, delete, and approve actions.
  • Workflow: Basic approval chains are configurable; each step triggers notifications that can be routed to external services (Slack, Teams).

Deployment & Infrastructure

SeedDMS is self‑hosted and can run on any LAMP or LEMP stack. It requires PHP ≥7.4, a web server with URL rewriting, and a database server. For scalability, the application can be load‑balanced behind an HTTP reverse proxy; the file system must be shared (NFS, GlusterFS) to keep document data consistent. Docker images are available on Docker Hub, making CI/CD pipelines straightforward. The lightweight footprint (≈200 MB of source) allows deployment on Raspberry Pi or cloud VMs with minimal resources.

Integration & Extensibility

  • Plugin System: Developers can add PHP classes that implement predefined interfaces (SeedDMS\Plugins\IPlugin). Plugins can extend UI, add custom workflows, or integrate with LDAP/Active Directory.
  • Webhooks: Events can be posted to external endpoints; this is useful for triggering CI pipelines or synchronizing with a CMS.
  • Custom API Extensions: The core REST API can be extended by adding new routes; authentication and permission checks are handled by the existing middleware.
  • SAML/OIDC Support: Optional modules enable single sign‑on, easing integration into enterprise identity ecosystems.

Developer Experience

SeedDMS ships with comprehensive API documentation in Swagger/OpenAPI format, a detailed developer guide, and an active GitHub issue tracker. The code is modular enough that contributors can patch or extend functionality without touching the core. Community support includes mailing lists, a Discord channel, and frequent security releases. Licensing under GPLv3 encourages open‑source collaboration while still allowing commercial deployment.

Use Cases

  • Enterprise Document Exchange: Teams requiring strict access controls can host SeedDMS behind a firewall, using LDAP for authentication and custom webhooks to notify downstream services.
  • Legal & Compliance: The audit log, versioning, and approval workflow make it suitable for legal firms needing to track document changes.
  • IoT & Edge: Lightweight deployment on edge devices (e.g., Raspberry Pi) to collect and archive sensor logs with secure access.

Advantages

  • Performance: PHP’s speed combined with MySQL full‑text search delivers quick query responses even under moderate load.
  • Flexibility: The plugin architecture and event hooks allow developers to tailor the system without modifying core files.
  • Licensing: GPLv3 ensures no licensing fees, while the open‑source nature permits internal customization.
  • Security: Fine‑grained ACLs, encrypted storage options, and audit trails align with enterprise security requirements.

In summary, SeedDMS offers a robust, developer‑friendly foundation for building secure document workflows. Its clean architecture, extensible APIs, and straightforward deployment make it an attractive choice for teams that need a self‑hosted DMS without the overhead of heavyweight enterprise solutions.

Open SourceReady to get started?

Join the community and start self-hosting SeedDMS today