Moonshot IoT Stack is an end-to-end industrial IoT data pipeline and edge inference platform. It integrates MQTT ingestion, time-series storage, real-time dashboards, and ONNX-based ML inference—all containerized and ready to deploy.
- Node-RED for visual data flow orchestration
- InfluxDB for time-series storage
- Grafana for live dashboards
- ONNX Model API for local machine learning inference
- Mosquitto MQTT broker for sensor ingestion
- Docker Compose-based for easy deployment
[Sensor] --> [Mosquitto MQTT] --> [Node-RED] --> [InfluxDB] --> [Grafana]
|
[ONNX Model API (Flask)]
- Docker
- Docker Compose
- Git
- Python 3.8+ (for model development only)
-
Clone the repo
git clone https://github.com/iuriarte/moonshot-iot-stack.git cd moonshot-iot-stack -
Start the stack
docker compose up --build
-
Access Services
- Node-RED: http://localhost:1880
- Grafana: http://localhost:3000 (admin / admin)
- InfluxDB: http://localhost:8086
- ONNX Model API: http://localhost:5001
Make a POST request to /infer with input data:
curl -X POST http://localhost:5001/infer \
-H "Content-Type: application/json" \
-d '{"inputs": [[0.0, 1.0, 2.0, 3.0, 4.0]]}'Other endpoints:
/healthcheck– check if the model loaded/readycheck– confirms API is alive
Place your ONNX model in:
model/model.onnxUpdate environment variable MODEL_PATH if using a different path.
To test just the model API:
cd model
docker build -t moonshot-modelapi .
docker run -p 5001:5000 moonshot-modelapiOr pull from Docker Hub:
docker run -p 5000:5000 iuriarte/moonshot-iot-stack:modelapimoonshot-iot-stack/
├── model/
│ ├── model.onnx
│ ├── model_server.py
│ └── Dockerfile
├── docker-compose.yml
├── config/
├── data/
└── README.md
Pull requests are welcome. Please open issues first to discuss changes.
MIT License – see LICENSE file for details.