Getting Started
This guide walks you through running Simple IoT locally in under 5 minutes.
Prerequisites
- Docker 24+ with Docker Compose v2
- 2 GB free RAM
- Ports
5010,1883,8083,9999,5432,8181available
1. Clone the repository
bash
git clone https://github.com/dingdaoyi/simple-iot.git
cd simple-iot2. Start the stack
bash
cp .env.example .env # adjust passwords if you want
./deploy.sh deployThis brings up the full stack via Docker Compose:
| Service | Port | Purpose |
|---|---|---|
iot-server | 5010 | Spring Boot REST + MQTT broker |
iot-web | 80 | Vue 3 admin UI (Nginx) |
iot-postgres | 5432 | PostgreSQL 16 (metadata) |
influxdb | 8181 | InfluxDB 3 (telemetry) |
rustfs | 9000 | S3-compatible storage |
3. Log in
Open http://localhost and use the default account:
username: admin
password: 123456Change this password before exposing the stack to a public network.
4. Onboard your first device
- Go to Products → click + New → choose
MQTTas protocol. - Add a device under that product. Note its
clientIdandsecret. - Connect with any MQTT client to
tcp://<host>:1883using those credentials. - Watch live telemetry stream into the Devices → Telemetry tab.
For wire-format examples see the MQTT Quick Test page.
5. Build a rule
- Go to Rule Engine → + New rule chain.
- Drag an Input node, connect it to a Filter, then to an Action.
- Pick "send email" / "MQTT forward" / "device command" as the action.
Done — your first rule is live the moment you save it.
Local development
If you want to hack on the code instead of running the prebuilt images, see the Architecture page for the dev-mode workflow (Maven + pnpm).