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
| Surface | URL |
|---|---|
| Console | http://localhost:5173 |
| Control plane API | http://localhost:8000 |
| OpenAPI | http://localhost:8000/docs |
| Data plane health | http://localhost:8081/health |
| MQTT TLS | mqtts://localhost:8883 |
Stop with make stop. More options: Development.
2. Sign in and create an organization
- Open the console → sign in with the seed user (or register via
POST /api/v1/auth/register). - Create an organization if seed did not create one for you.
- 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)
- In the console: Devices → Add device (or
POST .../registration-tokens). - 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)
- Create an enrollment API key in the console (or
POST .../enrollment-keys). Copy the plaintext once. - On the device:
meteorcli config --domain localhost:8000 --api-key key_...
meteorcli test
meteorcli request-token --name edge-01
- Approve the pending request in the console.
- If the CLI timed out waiting, run
meteorcli claim, thenmeteorcli 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/emqxCompose profiles), the agent keeps a TLS MQTT session (MQTT).
Next steps
| Goal | Doc |
|---|---|
| How the three planes fit together | Concepts |
| Operator API | API overview |
| Deploy beyond localhost | Deployment · Kubernetes · Install quickstart |