XMDM is a self-hosted Android device management platform for operating managed launcher fleets with clear control, delivery, and recovery workflows.
- Android launcher enrollment through QR/provisioning payloads
- Signed config sync for policy, runtime settings, apps, files, and certificates
- Kiosk behavior and package rules applied by the launcher
- Managed APK, file, and certificate delivery with checksum verification
- Device commands over MQTT with HTTP polling recovery
- Telemetry API records, device logs, device info, audit, health, backup, and release flows
For the full capability matrix, see docs/capabilities.md. For support limits, see docs/support-boundaries.md.
| Goal | Start with |
|---|---|
| Evaluate the product shape | Capability Matrix |
| Understand runtime architecture | System Shape |
| Operate the dashboard | Admin Dashboard |
| Understand command delivery | Commands |
| Work on the Android launcher | Launcher Lifecycle |
| Run locally | Local Development |
| Ship a release | Release Artifacts And Deployment |
Start the local stack:
cd infra
docker compose -f docker-compose.yml -f docker-compose.server.yml up -d --buildStop it:
cd infra
docker compose -f docker-compose.yml -f docker-compose.server.yml downXMDM runtime architecture has four primary components: the admin dashboard, the control-plane API, the Android launcher, and the supporting data services.
flowchart TD
Admin[Admin browser] --> Dashboard[Go server-rendered dashboard]
Dashboard --> API[Go /api/v1 router]
API --> DB[(PostgreSQL)]
API --> Store[(S3-compatible object storage)]
API --> MQTT[(Mosquitto MQTT)]
Launcher[Android launcher app] --> API
Launcher --> MQTT
Launcher --> Store
Plugin[Optional plugin host] --> API
app/: Android launcherserver/: Go server and admin dashboardinfra/: local runtime and deployment assetsdocs/: product docs, operator guides, and runbooksblueprint/: product and architecture decisionsplaywright/: dashboard browser coverage
Premium features live outside this core repository.
- Remote control for supported devices: docs/admin-dashboard.md#premium-remote-control
The docs hub is docs/README.md.
