miniMDM
What it is
miniMDM is a free, self-hosted application for managing reference data such as customers, products, locations, and custom objects. It is intended for teams whose records have outgrown spreadsheets but do not call for a multi-year enterprise MDM rollout. Data objects are configured in YAML or JSON, with fields, types, references, and required flags. Records can pass through draft, active, and retired states, and each edit creates a version users can review or restore. Governance tools include approval workflows, lifecycle rules, and Viewer, Editor, Publisher, and Admin permission tiers with per-schema grants. A REST API comes with an OpenAPI specification, while webhook callbacks report lifecycle transitions and an inbound receiver brings upstream records in as drafts for review. Bulk import and export support CSV, TSV, and JSON, including template-assisted imports and optional upsert-by-key. The project is MIT licensed, runs on premises, and is described as free without per-seat licensing or separately purchased modules. It uses PostgreSQL and is built with FastAPI and SQLAlchemy. The site describes it as having zero telemetry.
For and against
For
- Records have reviewable, restorable versions.
- Supports approval workflows and per-schema grants.
- Imports and exports CSV, TSV, and JSON.
- Free to use with no per-seat licensing.
Against
- Self-hosted deployment is required.
- Incoming upstream records arrive as drafts for review.
The verdict
miniMDM combines configurable records, version history, permissions, and lifecycle governance in a self-hosted package. Its fit depends on whether the team can operate a self-hosted system and wants this reference-data scope.
Who it suits
miniMDM suits teams that need governed customer, product, location, or other reference records beyond spreadsheets. It may fit organizations seeking self-hosted management without a multi-year enterprise MDM rollout.
Plans and prices
miniMDM
Self-hosted · MIT licensed · No per-seat licensing · PostgreSQL-backed
Read 15 Oct 2026 · minimdm.dev
On the record
- Access control
- Four roles—Viewer, Editor, Publisher and Admin—provide schema-level read, write and publish permissions.github.com · read 15 Oct 2026
- API sorting limit
- Server-side sorting is intentionally unavailable for parent and reference columns because those values require relationship resolution.github.com · read 15 Oct 2026
- Audit log
- The application records what changed, who changed it, when, why, affected record and client IP, with filtering available through the API.github.com · read 15 Oct 2026
- Authentication
- API clients use bearer tokens, while the web UI uses an httpOnly JWT cookie; inbound webhooks use X-Api-Key instead.github.com · read 15 Oct 2026
- Bulk data exchange
- CSV, TSV and JSON import/export is supported, including template downloads and optional upsert by key.github.com · read 15 Oct 2026
- Docker installation
- Docker Compose can run the application without local Python or PostgreSQL installation.github.com · read 15 Oct 2026
- Documentation coverage
- The repository includes installation, quickstart, Docker, deployment, logging, migrations, backup, upgrading, API reference, testing, software inventory and troubleshooting documents.github.com · read 15 Oct 2026
- Imports and exports
- Bulk import and export supports CSV, TSV, and JSON, with template-assisted imports and optional upsert-by-key.minimdm.dev · read 8 Oct 2026
- Inbound integration
- External systems can submit records through an inbound webhook endpoint authenticated with scoped API keys; submissions enter as drafts.github.com · read 15 Oct 2026
- Inbound sync
- Upstream systems can send records through an inbound webhook receiver, where incoming records land as drafts for review.minimdm.dev · read 8 Oct 2026
- Installation requirements
- Native installation requires Python 3.11 or newer, PostgreSQL 14 or newer and the uv package manager.github.com · read 15 Oct 2026
- Integrations
- miniMDM provides a REST API with an OpenAPI specification and webhook callbacks for record lifecycle transitions.minimdm.dev · read 8 Oct 2026
- Intended users
- The site positions miniMDM for teams whose reference data has outgrown a spreadsheet but does not need a multi-year enterprise MDM rollout.minimdm.dev · read 8 Oct 2026
- License
- The project is released under the MIT License.github.com · read 15 Oct 2026
- License and cost
- The project is MIT licensed and described as free to use, with no per-seat licensing or separately purchased modules.minimdm.dev · read 8 Oct 2026
- Lifecycle
- Records can move through draft, active, and retired states, with governance rules for review, retirement, and bulk imports.minimdm.dev · read 8 Oct 2026
- Lifecycle workflow
- Records move through draft, active and retired states, with publishing used to promote drafts to the active master.minimdm.dev · read 15 Oct 2026
- Limit: operational responsibility
- Because the product is self-hosted, operators must provide the reverse proxy, TLS certificates, PostgreSQL service, backups and process management.github.com · read 15 Oct 2026