120acd8564 | ||
---|---|---|
clients | ||
config | ||
controllers | ||
db | ||
models | ||
servers | ||
tls | ||
.gitignore | ||
CONTRIBUTING.md | ||
Dockerfile | ||
LICENSE | ||
MAINTAINERS | ||
README.md | ||
const.go | ||
docker-compose.yml | ||
main.go | ||
opts.go |
README.md
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.
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
Authors
Main architect and BDFL of Mainflux project is @drasko.
Maintainers are listed in MAINTAINERS file.