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
FULLTEXTindexes; 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
unoconvor 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
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Tags
Explore More Apps
Zim
Desktop wiki editor for notes, tasks and brainstorming
ZoneMinder
Open‑source video surveillance for any Linux camera setup
Algernon
All‑in‑one Go web server with built‑in scripting and databases
Typebot
Build advanced chatbots without code
ChannelTube
Automated YouTube channel downloader and organizer
sist2
Fast, incremental file search with web UI and OCR support