NanoMDM logo

NanoMDM

Minimal Apple MDM server and library with MySQL and PostgreSQL backends

Repository activity
  • Stars597
  • Forks90
  • Open Issues32
License

MIT

Languages
  • Go
  • PLpgSQL
  • Python
NanoMDM screenshot

About NanoMDM

NanoMDM is a minimalist Apple MDM server and library for device management setups that need a smaller server component. It handles MDM requests and API calls, and it is built to sit between HTTP handlers and storage layers.

It supports horizontal scaling with minimal local state, multiple APNs topics, multi-command targeting, and a migration endpoint for moving enrollments between storage backends or supported MDM servers. It also provides a MicroMDM-emulating HTTP webhook and enrollment-certificate authorization, with commands submitted in raw Plist form.

It is usable both as a standalone server and as a Go library, exposing standard HTTP handlers over a composable service and storage layer. Command queuing and APNs pushes are driven entirely through its API. By design it stays minimal and is one component of a full MDM setup: it expects a separate SCEP server and TLS termination, and leaves enrollment profiles, ADE API access, and a JSON command API to surrounding tooling.

Key features

  • Horizontal scaling with minimal local state
  • MySQL and PostgreSQL storage backends
  • Multiple APNs topics for multi-tenant use
  • Multi-command targeting across enrollments
  • Migration endpoint for storage backend moves

Details

First released
2021
Platforms
CLI · Docker
Self-hosting
Self-hostable with own TLS and SCEP
Storage
MySQL · PostgreSQL · file
Commands
Raw Plist form
APNs
Multiple topics