Skip to content

nodrix

Self-hosted IoT platform for device telemetry, realtime dashboards and automations in your own Cloudflare account

nodrix homepage hero with a Deploy to Cloudflare button and the Workers, Durable Objects, D1, R2 and KV services it uses

nodrix collects JSON telemetry from devices over HTTPS or WebSocket and turns each new metric into a variable as it arrives. Drag-and-drop dashboards show the data live and send commands back to hardware. Automations react to value changes, schedules, sunrise or sunset.

A board posts JSON to /v1/telemetry with a project token over plain HTTPS, so no MQTT broker is needed. Devices that need a persistent link can open a WebSocket instead. A read API returns the latest state, time series and variable listings behind one token, so Grafana, a React app or a Raspberry Pi screen can read the same data. Dashboard widgets stream updates over hibernating WebSockets, and any dashboard can be shared read-only by public link. Each widget is a framework-agnostic Web Component that can be embedded in another app. Toggles, sliders, color pickers and buttons write values back to devices, which pick them up by short polling or over a control socket. Automations can also fire on events, and their actions include webhooks, code snippets, email and chat integrations such as Slack, Telegram and Discord. On Cloudflare, a Project Durable Object keeps each project's latest state and a recent buffer. R2 holds older telemetry as hourly NDJSON files, D1 stores users, projects, dashboards, tokens and the audit log, and KV caches state responses. Dashboard and Scheduler Durable Objects handle subscriptions and timed automations, a Workflow handles provisioning, and the Vue admin panel ships as static assets. A built-in MCP server, off by default, lets an AI assistant read telemetry and, once the owner enables write tools, control hardware. The Deploy to Cloudflare button clones a small deploy carrier from the repository's deploy folder, and each Workers build fetches the latest nodrix release and builds it over that clone. The owner invites others as owner, admin or member and can turn on Google and GitHub sign-in from the settings.

Built for: Makers, hobbyists and small hardware teams who want to own their IoT telemetry and dashboards on Cloudflare instead of a hosted IoT cloud.

What you can use it for

  • Collect sensor readings from ESP32 boards over HTTPS
  • Watch a home or workshop on a realtime dashboard shared by public link
  • Switch relays and lights from a dashboard or an automation
  • Send Telegram or Slack alerts from schedule or sunset automations
  • Let an AI assistant read device data through MCP

Deploy

  • One-click

    Each Workers build pulls the latest nodrix release; to update, retry the build in the Cloudflare dashboard.

The Deploy to Cloudflare button provisions D1, KV, R2, the Durable Objects and the Workflow.

What it needs to run

  • D1 databasesnodrix
  • Durable ObjectsDashboardDO, NodrixMcpAgent, ProjectDO, SchedulerDO
  • KV namespacesKV
  • R2 bucketsnodrix-telemetry
  • Workflowsnodrix-provision

Also uses

  • GitHub OAuth (optional): Lets users sign in with GitHubSource
  • Google OAuth (optional): Lets users sign in with Google

Good to know

Single-tenant: one deployment serves one owner and the people they invite. Registration closes after the first sign-up, so create the owner account right after deploying. You have to enable R2 on the Cloudflare account for telemetry history. Google and GitHub sign-in need OAuth client credentials from those providers. nodrix sends anonymous usage stats to telemetry.nodrix.live when the owner account is created and once a day after that: a random instance ID, the version, the configured integration kinds and object counts. The code describes them as always on; the NODRIX_USAGE_STATS_URL variable only changes where they go.

Cost on Cloudflare

Likely fits the free plan

Workers, D1, KV, R2, SQLite-backed Durable Objects, Workflows and cron triggers all have Workers Free allowances, and the project does not state a paid requirement. Each telemetry post is a Worker request and a Durable Object request, and Workers Free allows 100,000 of each a day, so many devices reporting every few seconds can exceed it.

Source

The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.

Where this comes from

An alternative to Adafruit IO, Arduino Cloud, Blynk, ThingSpeak, Ubidots.

Listing history

  • Oct 2, 2026 · nodrix listed
  • AwaitStep canvas with a 12-node workflow using try/catch, a forEach loop and parallel branches

    Drag-and-drop builder that generates TypeScript for Cloudflare Workflows and deploys it to your account

    Deploy
    CLI
    License
    Apache-2.0
    GitHub stars
    42 stars
    Last commit