iot-backend/README.md

89 lines
3.4 KiB
Markdown
Raw Normal View History

2023-09-16 12:31:06 +02:00
# IoT Prototyping Backend
## Overview
This project is a backend solution for prototyping Internet of Things (IoT) services. It leverages the power of Docker containers to easily integrate Grafana, InfluxDB, and Node-RED into a seamless, scalable, and robust backend system. The solution aims to provide rapid prototyping capabilities for IoT applications that need real-time data visualization, storage, and workflow automation.
## Features
* [Eclipse Mosquitto](https://mosquitto.org): MQTT broker
* [Grafana](https://grafana.com/): Real-time data visualization and monitoring dashboard
* [InfluxDB](https://www.influxdata.com/): High-performance data storage
* [Node-RED](https://nodered.org/): Flow-based development tool for visual programming and data flow automation
## Prerequisites
### Docker
First install Docker and `docker-compose`:
2023-09-16 12:31:06 +02:00
* [Docker](https://docs.docker.com/engine/install/)
* [Docker Compose](https://docs.docker.com/compose/)
* [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
If you want to use an UI for Docker, you can optionally also use [Docker Desktop](https://www.docker.com/products/docker-desktop/).
2023-09-16 12:31:06 +02:00
## Installation
### Clone the Repository
2023-09-16 12:31:06 +02:00
```sh
git clone https://code.curious.bio/simonox/iot-backend
cd iot-backend
2023-09-16 12:31:06 +02:00
```
### Launch Docker Containers
2023-02-07 16:55:21 +01:00
```sh
docker-compose --file software/container/docker-compose.yml up --force-recreate --build
2023-02-07 16:55:21 +01:00
```
## Usage
2023-02-15 09:50:11 +01:00
### Mosquitto
2023-09-16 12:31:06 +02:00
[Eclipse Mosquitto](https://mosquitto.org) is an open source message broker which implements a server for MQTT. It runs in Docker and is exposed on the default MQTT port `1883`. You can subscribe to and push into `topics`:
2023-02-15 09:50:11 +01:00
```sh
mosquitto_sub -h localhost -t '#' -p 1883
mosquitto_pub -h localhost -p 1883 -t '/' -m $(date --utc +%s)
```
2023-02-27 18:15:46 +01:00
There is also a *very* usefuly tool to debug MQTT: [MQTT Explorer](https://github.com/thomasnordquist/MQTT-Explorer/), that is also available at [mqtt-explorer.com](https://mqtt-explorer.com/).
### Node-RED
2023-09-16 12:31:06 +02:00
[Node-RED](https://nodered.org) is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click
NodeRed is also running in Docker: http://localhost:1880/
2023-02-23 17:54:25 +01:00
### InfluxDB
2023-02-23 17:53:38 +01:00
2023-09-16 12:31:06 +02:00
[InfluxDB](https://www.influxdata.com) is a database for any time series data with a single. It runs in Docker and is exposed on port `8086`:
InfluxDb is running here: http://localhost:8086/ (you have to create an initial user in just a few simple steps)
### Grafana
2023-09-16 12:31:06 +02:00
[Grafana](https://grafana.com) is a software to build operational dashboards. It runs in Docker and is exposed on port `3000`:
You can login to Grafana: http://localhost:3000/login (admin:admin)
Have a look at the [HowTo in this repository](./docs/dashboard/README.md).
## Usage
### Setting up a simple Flow
A simple introduction to Node-RED can be found - along with the nodes / the code - in [this repository, please have a look](./docs/flow/README.md)!
## Contribution
Feel free to open an issue for bugs, feature requests, or questions. Contributions are welcome.
## License
This project follows the [REUSE Specification](https://reuse.software/spec/) and is licensed under the [GPL 3.0 or later License - see the LICENSE file](./LICENSES/GPL-3.0-or-later.txt) for details.