2016-04-28 22:07:16 +02:00
# Mainflux
2015-10-02 14:15:46 +00:00
2016-09-20 21:24:27 +02:00
[](LICENSE)
[](https://gitter.im/Mainflux/mainflux?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
2015-07-06 23:43:19 +02:00
2016-11-24 02:19:06 +01:00
### Quick Links
| Link | Description |
|:--------------|:----------------------|
2017-05-24 00:02:53 +02:00
| [mainflux-http-sender ](https://github.com/mainflux/mainflux-http-sender ) | HTTP message API server |
| [mainflux-influxdb-writer ](https://github.com/mainflux/mainflux-influxdb-writer ) | Wroker behind NATS that writes messages into DB |
| [mainflux-influxdb-reader ](https://github.com/mainflux/mainflux-influxdbreader ) | HTTP API server for reading messages from DB |
2016-11-24 02:19:06 +01:00
| [mainflux-auth ](https://github.com/mainflux/mainflux-auth ) | Authentication and Authorization Server |
2016-11-24 02:23:24 +01:00
| [mainflux-mqtt ](https://github.com/mainflux/mainflux-mqtt ) | MQTT PUB/SUB Broker (with WebSocket support) |
2017-03-11 01:39:05 +01:00
| [mainflux-coap ](https://github.com/mainflux/mainflux-coap ) | CoAP Server |
2016-11-24 02:19:06 +01:00
| [mainflux-ui ](https://github.com/mainflux/mainflux-ui ) | System Dashboard in Angular 2 Material |
2016-11-24 02:22:40 +01:00
| [mainflux-cli ](https://github.com/mainflux/mainflux-cli ) | Interactive command-line interface |
2016-12-30 20:41:40 +01:00
| [mainflux-nginx ](https://github.com/mainflux/mainflux-nginx ) | NGINX configuration for reverse proxy with auth |
2016-11-24 02:19:06 +01:00
2015-10-02 16:18:35 +02:00
### About
2016-11-12 19:39:53 +01:00
Mainflux is modern massively-scalable and [highly-secured ](#security ) open source and patent-free IoT cloud platform written in Go and Erlang, based on a set of [microservices ](#architecture ).
2015-07-06 23:43:19 +02:00
2016-04-28 22:19:08 +02:00
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.
2015-10-02 16:18:35 +02:00
2016-11-12 19:49:23 +01:00

2016-08-23 00:21:32 +02:00
Mainflux is built with < 3 by Mainflux [team ](MAINTAINERS ) and community contributors .
2015-10-02 16:18:35 +02:00
2016-11-12 19:29:14 +01:00
### Architecture
Mainflux IoT cloud is composed of several components, i.e. microservices:
2016-11-24 02:19:06 +01:00
| Link | Description |
|:--------------|:----------------------|
2017-05-24 00:12:12 +02:00
| [mainflux-http-sender ](https://github.com/mainflux/mainflux-http-sender ) | HTTP message API server |
2017-05-24 00:10:56 +02:00
| [mainflux-influxdb-writer ](https://github.com/mainflux/mainflux-influxdb-writer ) | Wroker behind NATS that writes messages into DB |
| [mainflux-influxdb-reader ](https://github.com/mainflux/mainflux-influxdbreader ) | HTTP API server for reading messages from DB |
2016-11-24 02:19:06 +01:00
| [mainflux-auth ](https://github.com/mainflux/mainflux-auth ) | Authentication and Authorization Server |
2016-11-24 02:23:24 +01:00
| [mainflux-mqtt ](https://github.com/mainflux/mainflux-mqtt ) | MQTT PUB/SUB Broker (with WebSocket support) |
2017-03-01 23:58:00 +01:00
| [mainflux-coap ](https://github.com/mainflux/mainflux-coap ) | CoAP Server |
2016-11-24 02:19:06 +01:00
| [mainflux-ui ](https://github.com/mainflux/mainflux-ui ) | System Dashboard in Angular 2 Material |
2016-11-24 02:22:40 +01:00
| [mainflux-cli ](https://github.com/mainflux/mainflux-cli ) | Interactive command-line interface |
2016-11-24 02:19:06 +01:00
| [MongoDB ](https://github.com/mongodb/mongo ) | Devices/Measurements NoSQL Database |
2017-05-24 00:10:56 +02:00
| [InfluxDB ](https://github.com/influxdata/influxdb ) | Time-Series Database for Messages |
2017-05-24 00:13:35 +02:00
| [Hydra ](https://github.com/ory/hydra ) | OAuth-2.0 Server |
2016-11-24 02:19:06 +01:00
| [Redis ](https://github.com/antirez/redis ) | System async events and caching |
2016-12-04 20:32:20 +01:00
| [NATS ](https://github.com/nats-io/gnatsd ) | System event bus |
2016-12-30 20:41:40 +01:00
| [NGINX ](https://github.com/nginx/nginx ) | Reverse Proxy with Auth forwarding |
2016-11-12 19:29:14 +01:00
2017-05-24 00:10:56 +02:00

2017-01-15 00:57:59 +01:00
2016-11-12 19:29:14 +01:00
Docker composition that constitues Mainflux IoT infrastructure is defined in the [`docker-compose.yml` ](https://github.com/Mainflux/mainflux/blob/master/docker-compose.yml ).
2016-10-29 20:07:58 +02:00
### Security
For professional deployments Mainflux is usually combined with [Mainflux Authentication and Authorization Server ](https://github.com/mainflux/mainflux-auth-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.
2016-08-22 23:54:41 +02:00
2016-04-28 22:16:01 +02:00
### Install/Deploy
2016-11-12 19:29:14 +01:00
2016-04-28 22:16:01 +02:00
- Clone the repo:
```bash
git clone https://github.com/Mainflux/mainflux.git & & cd mainflux
```
2015-10-02 16:18:35 +02:00
2016-04-28 22:16:01 +02:00
- Start the Docker composition:
2015-07-06 23:43:19 +02:00
```bash
2016-04-28 22:16:01 +02:00
docker-compose up
2015-10-02 16:18:35 +02:00
```
2016-04-28 22:19:08 +02:00
2016-11-12 19:29:14 +01:00
This will automatically download Docker images from [Mainflux Docker Hub ](https://hub.docker.com/u/mainflux/ ) and deploy the composition of Mianflux microservices.
2016-04-28 22:07:16 +02:00
2016-08-22 23:54:41 +02:00
### Features
An extensive (and incomplete) list of features includes:
- Responsive and scalable architecture based on a set of [microservices ](https://en.wikipedia.org/wiki/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
2016-10-29 20:07:58 +02:00
- Enhanced and fine-grained security via deployment-ready [Mainflux Authentication and Authorization Server ](https://github.com/mainflux/mainflux-auth-server ) with Access Control scheme based on customizable API keys and scoped JWT
2016-08-22 23:54:41 +02:00
- Easy deployment and high system scalability via [Docker ](https://www.docker.com/ ) images
- Clear project roadmap, extensive development ecosystem and highly skilled developer community
- And many more
2015-10-17 00:03:21 +02:00
### Documentation
2016-12-03 18:49:41 +01:00
Mainflux documentation can be found [here ](http://mainflux.io/ ).
2015-12-07 01:03:28 +01:00
2015-10-17 00:03:21 +02:00
### Community
2016-08-23 10:50:31 +02:00
#### Mailing list
2016-09-20 20:03:31 +02:00
[mainflux ](https://groups.google.com/forum/#!forum/mainflux ) Google group
2016-08-23 10:50:31 +02:00
For quick questions and suggestions you can also use GitHub Issues.
2015-10-17 00:03:21 +02:00
#### IRC
[Mainflux Gitter ](https://gitter.im/Mainflux/mainflux?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge )
#### Twitter
[@mainflux ](https://twitter.com/mainflux )
2016-08-23 00:21:32 +02:00
### Authors
2016-10-29 20:07:58 +02:00
Main architect and BDFL of Mainflux project is [@drasko ](https://github.com/drasko ). Additionaly, initial version of Mainflux was architectured and crafted by [@janko-isidorovic ](https://github.com/janko-isidorovic ), [@nmarcetic ](https://github.com/nmarcetic ) and [@mijicd ](https://github.com/mijicd ).
2016-08-23 00:21:32 +02:00
Maintainers are listed in [MAINTAINERS ](MAINTAINERS ) file.
2016-10-29 20:07:58 +02:00
Contributors are listed in [CONTRIBUTORS ](CONTRIBUTORS ) file.
2015-10-02 16:18:35 +02:00
### License
2015-10-10 00:55:04 +02:00
[Apache License, version 2.0 ](LICENSE )