b84f268e14
Signed-off-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com> |
||
---|---|---|
.github | ||
.gitignore | ||
CONTRIBUTING.md | ||
LICENSE | ||
MAINTAINERS | ||
README.md | ||
docker-compose-auth.yml | ||
docker-compose.yml | ||
install_sources.sh |
README.md
Mainflux
Quick Links
Link | Description |
---|---|
mainflux-core | Mainflux Core Service |
mainflux-auth | Authentication and Authorization Server |
mainflux-mqtt | MQTT PUB/SUB Broker (with WebSocket support) |
mainflux-ui | System Dashboard in Angular 2 Material |
mainflux-cli | Interactive command-line interface |
mainflux-nginx | NGINX configuration for reverse proxy with auth |
About
Mainflux is modern massively-scalable and highly-secured open source and patent-free IoT cloud platform written in Go and Erlang, based on a set of microservices.
It allows device, user and application connections over various network protocols, like HTTP, MQTT, WebSocket and CoAP, making a seamless bridge between them. It is used as the IoT middleware for building complex IoT solutions.
Mainflux is built with <3 by Mainflux team and community contributors.
Architecture
Mainflux IoT cloud is composed of several components, i.e. microservices:
Link | Description |
---|---|
mainflux-core | Mainflux Core Service |
mainflux-auth | Authentication and Authorization Server |
mainflux-mqtt | MQTT PUB/SUB Broker (with WebSocket support) |
mainflux-ui | System Dashboard in Angular 2 Material |
mainflux-cli | Interactive command-line interface |
MongoDB | Devices/Measurements NoSQL Database |
Redis | System async events and caching |
NATS | System event bus |
NGINX | Reverse Proxy with Auth forwarding |
Docker composition that constitues Mainflux IoT infrastructure is defined in the docker-compose.yml
.
Security
For professional deployments Mainflux is usually combined with Mainflux Authentication and Authorization Server which adds fine-grained security based on customizable API keys.
Mainflux Auth Server also provides user accounts and device and application access control with simple customizable scheme based on scoped JWTs.
Install/Deploy
- Clone the repo:
git clone https://github.com/Mainflux/mainflux.git && cd mainflux
- Start the Docker composition:
docker-compose up
This will automatically download Docker images from Mainflux Docker Hub and deploy the composition of Mianflux microservices.
Features
An extensive (and incomplete) list of features includes:
- Responsive and scalable architecture based on a set of microservices
- Set of clean APIs: HTTP RESTful, MQTT, WebSocket and CoAP
- SDK - set of client libraries for many HW platforms in several programming languages: C/C++, JavaScript, Go and Python
- Device management and provisioning and OTA FW updates
- Highly secured connections via TLS and DTLS
- Enhanced and fine-grained security via deployment-ready Mainflux Authentication and Authorization Server with Access Control scheme based on customizable API keys and scoped JWT
- Easy deployment and high system scalability via Docker images
- Clear project roadmap, extensive development ecosystem and highly skilled developer community
- And many more
Documentation
Mainflux documentation can be found here.
Community
Mailing list
mainflux Google group
For quick questions and suggestions you can also use GitHub Issues.
IRC
Authors
Main architect and BDFL of Mainflux project is @drasko. Additionaly, initial version of Mainflux was architectured and crafted by @janko-isidorovic, @nmarcetic and @mijicd.
Maintainers are listed in MAINTAINERS file.
Contributors are listed in CONTRIBUTORS file.