Skip to content
Martin Mwiti
All projects
Dopesilicon thumbnail
Work in progress

Dopesilicon

A full-stack cloud IoT platform — MQTT ingestion, time-series storage, and a live web dashboard — built to bring personal embedded projects online.

MQTTNode.jsInfluxDBReactDocker

Every embedded project I build eventually asks the same question: how do I get this on the internet? Dopesilicon is my answer — a cloud platform that takes sensor data off a device, stores it, and puts it in front of you on a live dashboard.

The idea is a reusable backbone, not a one-off. A device publishes its measurements over MQTT, the platform stores them as time-series data, and a dashboard turns them into charts you can read from anywhere. No more re-building the plumbing for every new device.

How It Works

There are five moving parts, all running as containers: an MQTT broker, a Node.js backend, a time-series database, a React dashboard, and an nginx reverse proxy that ties them together.

Devices (MQTT) → Mosquitto broker → Node.js backend → InfluxDB
                                                        ↑
Live dashboard (React) ←── REST API  ←─────────────── 
  • Ingest. Devices connect to the MQTT broker and publish to measurement topics. The backend subscribes to everything the broker knows about.
  • Store. Each incoming message is written as a tagged time-series point in InfluxDB — the measurement, the device it came from, and the time it happened.
  • Serve. The backend exposes a REST API over those measurements. The dashboard reads from it and renders real-time line, bar, and summary charts.

Features

  • MQTT ingestion, ready for any device with a network connection
  • Time-series storage with device and measurement tagging
  • REST API for querying readings by time range
  • Web dashboard with live charts and activity summaries
  • Self-hosted with a single Docker Compose stack
  • Cloud deployment path (AWS) with managed secrets
  • Designed to grow: add a new measurement and it flows end-to-end

Current Status

The platform is in active development. The data path — device to dashboard — works end to end, and the first device to ride it was a wearable activity tracker, which is why the current dashboard schema is built around sleep, heart rate, and activity streams. That same plumbing is what will carry my other projects to the cloud, starting with the hydroponics controller.

There is a lot left on the dashboard side: dynamic device and measurement registration, configurable chart layouts, and account-based access. Deployment is next, and once it is live the platform will be served from dopesilicon.com.

The full architecture lives in the documentation.