Mainflux.mainflux/README.md

4.4 KiB

Mainflux

License Build Status Go Report Card Join the chat at https://gitter.im/Mainflux/mainflux

About

Mainflux is modern open source and patent-free IoT cloud platform written in Go.

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.

Cloud Architecture

Mainflux is built with <3 by Mainflux team and community contributors.

N.B. Mainlux is uder heavy development and not yet suitable for professional deployments

Install/Deploy

Mainflux uses MongoDB, so insure that it is installed on your system (more info here). You will also need MQTT broker running on default port 1883 - for example Mosquitto.

Installing Mainflux is trivial go get:

go get github.com/mainflux/mainflux
$GOBIN/mainflux

If you are new to Go, more information about setting-up environment and fetching Mainflux Lite code can be found here.

Docker

Running Mainflux in a Docker is even easier, as it will launch whole composition of microservices, so you do not have to care about dependencies.

  • 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.

System Architecture

Mainflux IoT cloud is composed of several components, i.e. microservices:

  • Mainflux Core (HTTP API Server and Admin)
  • Authentication and Authorization Server
  • MQTT PUB/SUB Broker (and WebSocket Server)
  • Mongo Database
  • Dashflux UI

Docker composition that constitues Mainflux IoT infrastructure is defined in the docker-compose.yml.

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 Reverse Proxy, OAuth 2.0 identity management and RBAC Authorization Server.
  • LwM2M standard compliance
  • oneM2M adapter
  • Easy deployment and high system scalability via Docker images
  • Clear project roadmap, extensive development ecosystem and highly skilled developer community
  • And many more

Documentation

Development documentation can be found on our Mainflux GitHub Wiki.

Community

Mailing list

mainflux Google group

For quick questions and suggestions you can also use GitHub Issues.

IRC

Mainflux Gitter

Twitter

@mainflux

Authors

Main architect and BDFL of Mainflux project is @drasko.

Maintainers are listed in MAINTAINERS file.

License

Apache License, version 2.0