2016-04-29 04:07:16 +08:00
|
|
|
# Mainflux
|
2015-10-02 22:15:46 +08:00
|
|
|
|
2017-09-23 08:27:49 +08:00
|
|
|
[![build][ci-badge]][ci-url]
|
|
|
|
[![go report card][grc-badge]][grc-url]
|
2018-04-09 04:57:56 +08:00
|
|
|
[![coverage][cov-badge]][cov-url]
|
2017-09-23 08:27:49 +08:00
|
|
|
[![license][license]](LICENSE)
|
|
|
|
[![chat][gitter-badge]][gitter]
|
2015-07-07 05:43:19 +08:00
|
|
|
|
2017-09-23 08:27:49 +08:00
|
|
|
![banner][banner]
|
2015-07-07 05:43:19 +08:00
|
|
|
|
2017-09-23 19:43:23 +08:00
|
|
|
Mainflux is modern, scalable, secure open source and patent-free IoT cloud platform written in Go.
|
2015-10-02 22:18:35 +08:00
|
|
|
|
2019-04-20 20:09:11 +08:00
|
|
|
It accepts user and thing connections over various network protocols (i.e. HTTP,
|
2017-09-23 19:43:23 +08:00
|
|
|
MQTT, WebSocket, CoAP), thus making a seamless bridge between them. It is used as the IoT middleware
|
|
|
|
for building complex IoT solutions.
|
2016-11-13 02:49:23 +08:00
|
|
|
|
2017-09-23 08:27:49 +08:00
|
|
|
For more details, check out the [official documentation][docs].
|
2015-10-02 22:18:35 +08:00
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
Mainflux is member of the [Linux Foundation][lf] and an active contributor
|
|
|
|
to the [EdgeX Foundry][edgex] project. It has been made with :heart: by [Mainflux company][company],
|
|
|
|
which maintains the project and offers professional services around it.
|
2016-11-24 09:19:06 +08:00
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
## Features
|
|
|
|
- Multi-protocol connectivity and protocol bridging (HTTP, MQTT, WebSocket and CoAP)
|
2017-09-23 19:43:23 +08:00
|
|
|
- Device management and provisioning
|
|
|
|
- Fine-grained access control
|
2018-12-10 03:06:20 +08:00
|
|
|
- Storage support (Cassandra, InfluxDB and MongoDB)
|
2017-10-02 02:40:19 +08:00
|
|
|
- Platform logging and instrumentation support
|
2018-12-10 03:06:20 +08:00
|
|
|
- Event sourcing
|
|
|
|
- Container-based deployment using [Docker][docker] and [Kubernetes][kubernetes]
|
|
|
|
- [LoRaWAN][lora] network integration
|
|
|
|
- SDK
|
|
|
|
- CLI
|
|
|
|
- Small memory footprint and fast execution
|
|
|
|
- Domain-driven design architecture, high-quality code and test coverage
|
|
|
|
|
|
|
|
## Install
|
2018-03-12 01:06:01 +08:00
|
|
|
Before proceeding, install the following prerequisites:
|
2017-09-19 03:38:06 +08:00
|
|
|
|
2018-03-12 01:06:01 +08:00
|
|
|
- [Docker](https://docs.docker.com/install/)
|
|
|
|
- [Docker compose](https://docs.docker.com/compose/install/)
|
2017-09-25 18:00:28 +08:00
|
|
|
|
2018-03-12 01:06:01 +08:00
|
|
|
Once everything is installed, execute the following commands from project root:
|
2016-04-29 04:07:16 +08:00
|
|
|
|
2018-03-12 01:06:01 +08:00
|
|
|
```bash
|
2018-04-18 22:49:10 +08:00
|
|
|
docker-compose -f docker/docker-compose.yml up -d
|
2017-09-25 18:00:28 +08:00
|
|
|
```
|
2017-09-19 03:38:06 +08:00
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
This will bring up all Mainflux dockers and inter-connect them in the composition.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
Best way to quickstart using Mainflux is via CLI:
|
|
|
|
```
|
|
|
|
make cli
|
|
|
|
./build/mainflux-cli version
|
|
|
|
```
|
|
|
|
|
|
|
|
> Mainflux CLI can also be downloaded as a tarball from [offical release page][rel]
|
|
|
|
|
|
|
|
If this works, head to [official documentation][docs] to understand Mainflux provisioning and messaging.
|
|
|
|
|
|
|
|
## Documentation
|
|
|
|
Official documentation is hosted at [Mainflux Read The Docs page][docs].
|
|
|
|
|
|
|
|
Documentation is auto-generated from Markdown files in `./docs` directory.
|
|
|
|
If you spot an error or need for corrections, please let us know - or even better: send us a PR.
|
2017-09-23 19:43:23 +08:00
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
Additional practical information, news and tutorials can be found on the [Mainflux blog][blog].
|
|
|
|
|
|
|
|
## Authors
|
|
|
|
Main architect and BDFL of Mainflux project is [@drasko][drasko].
|
|
|
|
|
|
|
|
Additionally, [@nmarcetic][nikola] and [@janko-isidorovic][janko] assured
|
2019-02-03 05:21:33 +08:00
|
|
|
overall architecture and design, while [@manuio][manu] and [@darkodraskovic][darko]
|
2018-12-10 03:06:20 +08:00
|
|
|
helped with crafting initial implementation and continiusly work on the project evolutions.
|
|
|
|
|
|
|
|
Besides them, Mainflux is constantly improved and actively
|
|
|
|
developed by [@anovakovic01][alex], [@dusanb94][dusan], [@srados][sava],
|
|
|
|
[@gsaleh][george], [@blokovi][iva], [@chombium][kole] and a large set of contributors.
|
|
|
|
|
|
|
|
Maintainers are listed in [MAINTAINERS](MAINTAINERS) file.
|
|
|
|
|
2019-02-03 05:21:33 +08:00
|
|
|
Mainflux team would like to give special thanks to [@mijicd][dejan] for his monumental work
|
|
|
|
on designing and implementing highly improved and optimized version of the platform,
|
2019-02-03 16:12:40 +08:00
|
|
|
and [@malidukica][dusanm] for his effort on implementing initial user interface.
|
2019-02-03 05:21:33 +08:00
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
## Contributing
|
2017-09-23 19:43:23 +08:00
|
|
|
Thank you for your interest in Mainflux and wish to contribute!
|
|
|
|
|
|
|
|
1. Take a look at our [open issues](https://github.com/mainflux/mainflux/issues).
|
2018-12-10 03:06:20 +08:00
|
|
|
2. Checkout the [contribution guide](CONTRIBUTING.md) to learn more about our style and conventions.
|
2017-09-23 19:43:23 +08:00
|
|
|
3. Make your changes compatible to our workflow.
|
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
### We're Hiring
|
|
|
|
If you are interested in working professionally on Mainflux,
|
|
|
|
please head to company's [careers page][careers] or shoot us an e-mail at <careers@mainflux.com>.
|
|
|
|
|
|
|
|
Note that the best way to grab our attention is by sending PRs :sunglasses:.
|
2017-09-23 08:27:49 +08:00
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
## Community
|
2017-09-23 08:27:49 +08:00
|
|
|
- [Google group][forum]
|
|
|
|
- [Gitter][gitter]
|
|
|
|
- [Twitter][twitter]
|
|
|
|
|
2018-12-10 03:06:20 +08:00
|
|
|
## License
|
|
|
|
[Apache-2.0](LICENSE)
|
|
|
|
|
2018-04-09 05:03:12 +08:00
|
|
|
[banner]: https://github.com/mainflux/mainflux/blob/master/docs/img/gopherBanner.jpg
|
2017-09-23 23:41:08 +08:00
|
|
|
[ci-badge]: https://semaphoreci.com/api/v1/mainflux/mainflux/branches/master/badge.svg
|
|
|
|
[ci-url]: https://semaphoreci.com/mainflux/mainflux
|
2017-09-23 08:27:49 +08:00
|
|
|
[docs]: http://mainflux.readthedocs.io
|
|
|
|
[docker]: https://www.docker.com
|
|
|
|
[forum]: https://groups.google.com/forum/#!forum/mainflux
|
|
|
|
[gitter]: https://gitter.im/mainflux/mainflux?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
|
|
|
|
[gitter-badge]: https://badges.gitter.im/Join%20Chat.svg
|
|
|
|
[grc-badge]: https://goreportcard.com/badge/github.com/mainflux/mainflux
|
|
|
|
[grc-url]: https://goreportcard.com/report/github.com/mainflux/mainflux
|
2018-04-09 04:57:56 +08:00
|
|
|
[cov-badge]: https://codecov.io/gh/mainflux/mainflux/branch/master/graph/badge.svg
|
|
|
|
[cov-url]: https://codecov.io/gh/mainflux/mainflux
|
2017-09-23 08:27:49 +08:00
|
|
|
[license]: https://img.shields.io/badge/license-Apache%20v2.0-blue.svg
|
|
|
|
[twitter]: https://twitter.com/mainflux
|
2018-12-10 03:06:20 +08:00
|
|
|
[lora]: https://lora-alliance.org/
|
|
|
|
[kubernetes]: https://kubernetes.io/
|
|
|
|
[rel]: https://github.com/mainflux/mainflux/releases
|
|
|
|
[careers]: https://www.mainflux.com/careers.html
|
|
|
|
[lf]: https://www.linuxfoundation.org/
|
|
|
|
[edgex]: https://www.edgexfoundry.org/
|
|
|
|
[company]: https://www.mainflux.com/
|
|
|
|
[blog]: https://medium.com/mainflux-iot-platform
|
|
|
|
[drasko]: https://github.com/drasko
|
|
|
|
[nikola]: https://github.com/nmarcetic
|
|
|
|
[dejan]: https://github.com/mijicd
|
|
|
|
[manu]: https://github.com/manuIO
|
|
|
|
[darko]: https://github.com/darkodraskovic
|
|
|
|
[janko]: https://github.com/janko-isidorovic
|
|
|
|
[alex]: https://github.com/anovakovic01
|
|
|
|
[dusan]: https://github.com/dusanb94
|
|
|
|
[sava]: https://github.com/srados
|
|
|
|
[george]: https://github.com/gesaleh
|
|
|
|
[iva]: https://github.com/blokovi
|
|
|
|
[kole]: https://github.com/chombium
|
2019-02-03 16:12:40 +08:00
|
|
|
[dusanm]: https://github.com/malidukica
|