1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-27 13:48:49 +08:00
Mainflux.mainflux/README.md

96 lines
5.0 KiB
Markdown
Raw Normal View History

2016-11-06 16:44:59 +01:00
![gophersBanner](https://github.com/mainflux/mainflux-doc/blob/master/img/gopherBanner.jpg)
2016-11-05 23:33:21 +01:00
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://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-06 23:43:19 +02:00
### About
2016-10-29 20:07:58 +02:00
Mainflux is modern [highly-secured](https://github.com/mainflux/mainflux-auth-server) open source and patent-free IoT cloud platform written in Go.
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.
2016-08-23 00:35:56 +02:00
![Cloud Architecture](https://github.com/Mainflux/mainflux-doc/blob/master/img/cloudArchMonochrome.jpg)
2016-08-23 00:21:32 +02:00
Mainflux is built with <3 by Mainflux [team](MAINTAINERS) and community contributors.
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-02 01:29:33 +01:00
Mainflux uses [MongoDB](https://www.mongodb.com/), so insure that it is installed on your system. You will also need MQTT broker running on default port 1883 - for example [Mosquitto](https://mosquitto.org/).
2016-11-02 01:31:07 +01:00
> N.B. Professional Mainflux deployments use [EMQTTD](https://github.com/mainflux/emqttd-docker) - massively scalable MQTT broker written in Erlang. The way it is used can be seen from [docker-compose.yml](docker-compose.yml)
2016-09-20 20:07:54 +02:00
Installing Mainflux is trivial [`go get`](https://golang.org/cmd/go/):
```bash
go get github.com/mainflux/mainflux
$GOBIN/mainflux
```
2016-11-02 01:29:33 +01:00
If you are new to Go, more information about setting-up environment and fetching Mainflux code can be found [here](https://github.com/mainflux/mainflux-doc/blob/master/goenv.md).
2016-09-20 20:07:54 +02:00
### 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.
2016-08-23 00:21:32 +02:00
2016-04-28 22:16:01 +02:00
- Clone the repo:
```bash
git clone https://github.com/Mainflux/mainflux.git && cd mainflux
```
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
```
2016-04-28 22:19:08 +02:00
2016-04-28 22:16:01 +02:00
This will automatically download Docker images from [Mainflux Docker Hub](https://hub.docker.com/u/mainflux/) and deploy the composition.
2016-04-28 22:07:16 +02:00
### System Architecture
Mainflux IoT cloud is composed of several components, i.e. microservices:
2016-10-29 20:07:58 +02:00
- [Mainflux Core (HTTP API Server and Admin)](https://github.com/mainflux/mainflux)
- [Authentication and Authorization Server](https://github.com/mainflux/mainflux-auth-server)
- [MQTT PUB/SUB Broker (with WebSocket and CoAP support)](https://github.com/mainflux/emqttd-docker)
2016-05-18 23:18:40 +02:00
- Mongo Database
2016-10-29 20:07:58 +02:00
- [Dashflux UI](https://github.com/mainflux/dashflux)
2016-04-28 22:07:16 +02: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-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
2015-12-07 01:03:28 +01:00
Development documentation can be found on our [Mainflux GitHub Wiki](https://github.com/Mainflux/mainflux/wiki).
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.
### License
2015-10-10 00:55:04 +02:00
[Apache License, version 2.0](LICENSE)