Start here

Getting started

Run MeteorCloud on your machine, open the console, and enroll a Linux device with meteorcli.

Prerequisites: Docker Compose v2.24+, Make, and (for the agent) Python 3.13+ on the device or the same host.

1. Start the local stack

cp deploy/compose/.env.example deploy/compose/.env   # make dev does this if missing
make dev
make seed      # owner@example.com / dev-password-123
SurfaceURL
Consolehttp://localhost:5173
Control plane APIhttp://localhost:8000
OpenAPIhttp://localhost:8000/docs
Data plane healthhttp://localhost:8081/health
MQTT TLSmqtts://localhost:8883

Stop with make stop. More options: Development.

2. Sign in and create an organization

  1. Open the console → sign in with the seed user (or register via POST /api/v1/auth/register).
  2. Create an organization if seed did not create one for you.
  3. Note the organization id from the UI or GET /api/v1/organizations.

3. Enroll a device

Pick one path.

Path A — registration token (admin creates the token)

  1. In the console: Devices → Add device (or POST .../registration-tokens).
  2. On the device:
cd src/device-plane/agent
./installcli.sh
meteorcli register --server http://localhost:8000 --token reg_... --name edge-01
meteorcli run

Details: Registration tokens, Device registration.

Path B — enrollment API key (device asks to join)

  1. Create an enrollment API key in the console (or POST .../enrollment-keys). Copy the plaintext once.
  2. On the device:
meteorcli config --domain localhost:8000 --api-key key_...
meteorcli test
meteorcli request-token --name edge-01
  1. Approve the pending request in the console.
  2. If the CLI timed out waiting, run meteorcli claim, then meteorcli run.

Details: Enrollment API keys, Device-initiated enrollment, meteorcli.

4. What you should see

  • Device appears in the console under the organization.
  • Heartbeats update last_seen_at (Heartbeat).
  • With MQTT enabled (mqtt / emqx Compose profiles), the agent keeps a TLS MQTT session (MQTT).

Next steps

GoalDoc
How the three planes fit togetherConcepts
Operator APIAPI overview
Deploy beyond localhostDeployment · Kubernetes · Install quickstart
Getting started · MeteorCloud