Mainflux.mainflux/README.md

83 lines
4.9 KiB
Markdown
Raw Normal View History

2016-04-29 04:07:16 +08:00
# Mainflux
2015-10-02 22:15:46 +08:00
2015-10-10 07:06:40 +08:00
[![License](https://img.shields.io/badge/license-Apache%20v2.0-blue.svg)](LICENSE) [![Join the chat at https://gitter.im/Mainflux/mainflux](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Mainflux/mainflux?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2015-07-07 05:43:19 +08:00
### About
2016-04-29 04:25:08 +08:00
Mainflux is an open source and patent-free IoT cloud platform based on [microservices](https://en.wikipedia.org/wiki/Microservices).
2015-07-07 05:43:19 +08:00
2016-04-29 04:19:08 +08: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.
2016-04-29 04:16:01 +08:00
![Cloud Architecture](https://github.com/Mainflux/mainflux-doc/blob/master/img/cloudArchitecture.jpg)
2016-04-29 04:16:01 +08:00
Mainflux is built with <3 by Mainflux team and community contributors.
### Features
An extensive (and incomplete) list of featureas includes:
2016-04-29 04:25:08 +08:00
- Responsive and scalable architecture based on a set of [microservices](https://en.wikipedia.org/wiki/Microservices)
- Set of clean APIs, Swagger documented: HTTP RESTful, MQTT, WebSocket and CoAP
2016-04-29 04:07:16 +08:00
- 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-04-29 04:07:16 +08:00
- Standardized [NGSI](http://technical.openmobilealliance.org/Technical/technical-information/release-program/current-releases/ngsi-v1-0) model representation
- Enhanced and fine-grained security via [Reverse Proxy](https://en.wikipedia.org/wiki/Reverse_proxy), [OAuth 2.0](http://oauth.net/2/) [identity management](https://en.wikipedia.org/wiki/Identity_management) and [RBAC](https://en.wikipedia.org/wiki/Role-based_access_control) Authorization Server.
- [LwM2M](http://goo.gl/rHjLZQ) standard compliance
- [oneM2M](http://www.onem2m.org/) adapter
- 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
2016-04-29 04:16:01 +08:00
### Install/Deploy
2016-04-29 04:25:08 +08:00
Installation and deployment of Mainflux IoT cloud is super-easy:
2016-04-29 04:16:01 +08:00
- Clone the repo:
```bash
git clone https://github.com/Mainflux/mainflux.git && cd mainflux
```
2016-04-29 04:16:01 +08:00
- Start the Docker composition:
2015-07-07 05:43:19 +08:00
```bash
2016-04-29 04:16:01 +08:00
docker-compose up
```
2016-04-29 04:19:08 +08:00
2016-04-29 04:16:01 +08:00
This will automatically download Docker images from [Mainflux Docker Hub](https://hub.docker.com/u/mainflux/) and deploy the composition.
If you need to modify these Docker images, you will have to look at appropriate repos in the [Mainflux project GitHub](https://github.com/Mainflux) - look for the repos starting with prefix `mainflux-<protocol>-server`.
2016-04-29 04:07:16 +08:00
### System Architecture
Mainflux IoT cloud is composed of several components, i.e. microservices:
2016-04-29 04:16:01 +08:00
- Mainflux Core
- HTTP API Server
- MQTT API Server
- WebSocket API Server
2016-04-29 04:07:16 +08:00
- NATS PUB/SUB Broker
The following matrix describes the functionality of each GE in the system and gives the location of the code repositories:
| Microservice | Function | GitHub repo |
| :------------------- |:-----------------------| :------------------------------------------------------------------------|
| Mainflux Core | Core Server | [mainflux-core-server](https://github.com/Mainflux/mainflux-core-server) |
| HTTP API Server | HTTP API Server | [mainflux-http-server](https://github.com/Mainflux/mainflux-http-server) |
2016-04-29 04:16:01 +08:00
| MQTT API Server | MQTT API Server | [mainflux-mqtt-server](https://github.com/Mainflux/mainflux-mqtt-server) |
| WS API Server | WS API Server | [mainflux-ws-server](https://github.com/Mainflux/mainflux-ws-server) |
2016-04-29 04:19:08 +08:00
| NATS | PUB/SUB Broker | [nats-io/gnatsd](https://github.com/nats-io/gnatsd) |
2016-04-29 04:07:16 +08:00
These components are packaged and deployed in a set of Docker containers maintained by Mainflux team, with images uploaded to [Mainflux Docker Hub page](https://hub.docker.com/u/mainflux/).
Docker composition that constitues Mainflux IoT infrastructure is defined in the [`docker-compose.yml`](https://github.com/Mainflux/mainflux/blob/master/docker-compose.yml).
2015-10-17 06:03:21 +08:00
### Documentation
2015-12-07 08:03:28 +08:00
Development documentation can be found on our [Mainflux GitHub Wiki](https://github.com/Mainflux/mainflux/wiki).
2015-10-17 06:03:21 +08:00
### Community
#### Mailing lists
- [mainflux-dev](https://groups.google.com/forum/#!forum/mainflux-dev) - developers related. This is discussion about development of Mainflux IoT cloud itself.
- [mainflux-user](https://groups.google.com/forum/#!forum/mainflux-user) - general discussion and support. If you do not participate in development of Mainflux cloud infrastructure, this is probably what you're looking for.
#### 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)
### License
2015-10-10 06:55:04 +08:00
[Apache License, version 2.0](LICENSE)