01
Control plane
Identity, organizations, device registry, enrollment, and MQTT policy. PostgreSQL last-value telemetry.
Self-hosted Linux fleet control
Run your own control plane, MQTT data plane, and operator console. Enroll Linux devices, stream status over TLS MQTT, and keep identity and policy on infrastructure you operate.
Self-hosted
You run the servers
MQTT over TLS
Devices connect on 8883
HTTPS enrollment
One-time device credentials
Linux agent
meteorcli on each host
How it works
Bring up the control plane, data plane and broker on servers you operate. Locally it is Docker Compose and one command.
make dev && make seed
Install meteorcli on a Linux host and register it with a one-time token from the console. It heartbeats over HTTPS, then opens MQTT over TLS.
meteorcli register meteorcli run
See each device's latest status and metrics, approve enrollment requests, and send a test message over MQTT.
make dev-console
Operator console
Sign in, manage organizations, enroll devices and read each device's latest status and metrics. The console only talks to the control-plane API.
About the consolePlatform
Each plane is a process with its own Compose file. Join them on one host or point URLs across servers.
01
Identity, organizations, device registry, enrollment, and MQTT policy. PostgreSQL last-value telemetry.
02
EMQX session for the platform. Publish, subscribe, ingest to the control plane over HTTP.
03
Operator UI for fleet and orgs. The browser talks only to the control-plane API.
04
meteorcli on Linux: enroll, heartbeat, TLS MQTT. Two enrollment paths.
Connections
Devices reach the control plane over HTTPS and the broker over MQTT. The data plane is the only process that holds the platform MQTT session. The operator console calls the control-plane API. This website has no line to the fleet.
Read the architecture for each link, and what is deliberately not a plane.
FAQ
The short answers on how the planes, devices and credentials fit together. The docs go deeper.
MeteorCloud is a self-hosted platform for Linux devices at the edge. You run the servers, and each device runs the meteorcli agent.
The control plane is the system of record for users, organizations, the device registry, enrollment and MQTT policy. The data plane holds the platform's MQTT session and carries live messages. The device plane is the meteorcli agent on each Linux host.
Each device makes two connections. It uses HTTPS to the control plane for enrollment, heartbeat and claim, and MQTT over TLS to the EMQX broker on port 8883 for status, metrics and command results. Commands return on the device's command topic.
Each device gets a username of the form device_<uuid> and a one-time password at registration or claim. The control plane stores only a hash of the password. mTLS device certificates are not implemented yet.
Today the latest status and metrics are stored on the device row in PostgreSQL. Timescale and ClickHouse are reserved configuration names and are not implemented.
No. The operator console calls only the control-plane API, and this website has no connection to the fleet.
From the journal
MeteorCloud is being designed to use WireGuard for private device access and a reverse proxy for friendly HTTPS application URLs.
Continue reading

A look at the platform decisions shaping MeteorCloud, from control plane design to observability, scheduling, networking, and safer rollouts.
Read article
Desired state defines intended conditions, while reported state shows what is actually running across edge infrastructure.
Read article
The control plane manages policy and coordination, while the data plane carries and processes live traffic.
Read article
Safe OTA rollouts rely on staged deployment, health checks, and rollback plans that reduce risk across distributed device fleets.
Read articleMeteorCloud
MeteorCloud is a self-hosted, modular infrastructure platform for device fleets — from a single gateway to thousands of distributed edge devices.
Cloud-like infrastructure. Self-hosted. Built for fleets.
Explore MeteorCloudStart a local stack in minutes, then read how the planes fit together.