diff --git a/README.md b/README.md index fb82da9c..42b73a6e 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,44 @@ # Mainflux -[![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) +[![build][ci-badge]][ci-url] +[![go report card][grc-badge]][grc-url] +[![license][license]](LICENSE) +[![chat][gitter-badge]][gitter] -### About -Mainflux is modern massively-scalable and highly-secured open source and patent-free IoT cloud platform written in Go, based on a set of [microservices](#architecture). +![banner][banner] -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 modern, massively-scalable, highly-secured open source and patent-free IoT cloud +platform written in Go. -![gophersBanner](https://github.com/mainflux/doc/blob/master/docs/img/gopherBanner.jpg) +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 company](https://www.mainflux.com/) and community contributors. +For more details, check out the [official documentation][docs]. -### Architecture -Mainflux IoT cloud is composed of several components, i.e. microservices: +## Features -| Link | Description | -|:--------------|:----------------------| -| [http-adapter](https://github.com/mainflux/http-adapter) | HTTP message API server | -| [manager](https://github.com/mainflux/manager) | Service for managing platform resources, including auth | -| [message-writer](https://github.com/mainflux/message-writer) | Worker behind NATS that writes messages into Cassandra DB | -| [mqtt-adapter](https://github.com/mainflux/mqtt-adapter) | MQTT PUB/SUB Broker (with WebSocket support) | -| [mainflux-coap](https://github.com/mainflux/mainflux-coap) | CoAP Server | -| [mainflux-ui](https://github.com/mainflux/mainflux-ui) | System Dashboard in Angular 2 Material | -| [mainflux-cli](https://github.com/mainflux/mainflux-cli) | Interactive command-line interface | -| [Cassandra](https://github.com/apache/cassandra) | System Database | -| [NATS](https://github.com/nats-io/gnatsd) | System event bus | -| [NGINX](https://github.com/nginx/nginx) | Reverse Proxy with Auth forwarding | +An extensive (and incomplete) list of features includes: +- Responsive and scalable microservice architecture +- 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 with Access Control Lists +- Easy deployment and high system scalability via [Docker][docker] images +- Clear project roadmap, extensive development ecosystem and highly skilled developer community +- And many more -![arch](https://github.com/mainflux/doc/blob/master/docs/img/architecture.jpg) +## Architecture -### Install/Deploy +TBD -#### Docker Composition +## Quickstart + +#### Docker - Clone the repo: ```bash -git clone https://github.com/Mainflux/mainflux.git +git clone https://github.com/mainflux/mainflux.git ``` - Go to `mainflux/docker` dir: @@ -48,62 +51,30 @@ cd mainflux/docker ./mainflux-docker.sh start ``` -This will automatically download Docker images from [Mainflux Docker Hub](https://hub.docker.com/u/mainflux/) and deploy the composition of Mianflux microservices. +Once started, the script will download and start Docker images required by the composition. -#### From Sources +#### From sources Use script [`install_sources.sh`](install_sources.sh). This will create `./mainflux_sources` dir, git-clone all the sources from GitHub repos and place them in appropriate destination (Go code goes to $GOPATH, symlinks are created). It will also give you the instructions how to finish the installation manually. -### 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 -- Enhanced and fine-grained security with Access Control Lists -- 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 +## Community -### Roadmap -- [x] Use `go-kit` microservice framework -- [x] Switch to `Cassandra` -- [x] Use Docker multi-stage builds -- [ ] Enable service discovery (`Consul` or `etcd`) -- [ ] Finish `Dashflux` (Mainflux UI) MVP -- [ ] Release `v1.0.0` (ETA: end of September) -- [ ] Deploy public cloud -- [ ] E2E tests and benchmarks -- [ ] Ansible and Terraform deployment scripts -- [ ] Kubernetes deployment procedure +- [Google group][forum] +- [Gitter][gitter] +- [Twitter][twitter] -Project task management is done via [GitHub issues](https://github.com/Mainflux/mainflux/issues) opened for this repo and properly labeled. - -### Documentation -Mainflux documentation can be found [here](http://mainflux.readthedocs.io). - -### Community -#### Mailing list -[mainflux](https://groups.google.com/forum/#!forum/mainflux) Google group - -For quick questions and suggestions you can also use GitHub Issues. - -#### 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) - -### Authors -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). - -Maintainers are listed in [MAINTAINERS](MAINTAINERS) file. - -Contributors are listed in [CONTRIBUTORS](CONTRIBUTORS) file. - -### License -[Apache License, version 2.0](LICENSE) +[banner]: https://github.com/mainflux/doc/blob/master/docs/img/gopherBanner.jpg +[ci-badge]: https://semaphoreci.com/api/v1/mainflux/mainflux/branches/master/badge.svg +[ci-url]: https://semaphoreci.com/mainflux/mainflux +[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 +[license]: https://img.shields.io/badge/license-Apache%20v2.0-blue.svg +[twitter]: https://twitter.com/mainflux diff --git a/http/README.md b/http/README.md index 9bb0cbe9..6726a94b 100644 --- a/http/README.md +++ b/http/README.md @@ -1,9 +1,5 @@ # Mainflux HTTP adapter -[![license][badge:license]](LICENSE) -[![build][badge:ci]][www:ci] -[![go report card][badge:grc]][www:grc] - Mainflux HTTP adapter provides an HTTP API for sending messages through the platform. @@ -53,10 +49,3 @@ ADAPTER_NATS_URL=[NATS instance URL] app For more information about service capabilities and its usage, please check out the [API documentation](swagger.yaml). - -[badge:license]: https://img.shields.io/badge/license-Apache%20v2.0-blue.svg -[badge:ci]: https://travis-ci.org/mainflux/http-adapter.svg?branch=master -[badge:grc]: https://goreportcard.com/badge/github.com/mainflux/http-adapter -[doc]: http://mainflux.io -[www:ci]: https://travis-ci.org/mainflux/http-adapter -[www:grc]: https://goreportcard.com/report/github.com/mainflux/http-adapter diff --git a/manager/README.md b/manager/README.md index da38feca..de862d7f 100644 --- a/manager/README.md +++ b/manager/README.md @@ -1,9 +1,5 @@ # Mainflux manager -[![license][badge:license]](LICENSE) -[![build][badge:ci]][www:ci] -[![go report card][badge:grc]][www:grc] - Mainflux manager provides an HTTP API for managing platform resources: users, devices, applications and channels. Through this API clients are able to do the following actions: @@ -75,10 +71,5 @@ MANAGER_DB_CLUSTER=[comma-separated Cassandra endpoints] MANAGER_DB_KEYSPACE=[na For more information about service capabilities and its usage, please check out the [API documentation](swagger.yaml). -[badge:license]: https://img.shields.io/badge/license-Apache%20v2.0-blue.svg -[badge:ci]: https://travis-ci.org/mainflux/manager.svg?branch=master -[badge:grc]: https://goreportcard.com/badge/github.com/mainflux/manager [doc]: http://mainflux.readthedocs.io [www:cassandra]: http://docs.datastax.com -[www:ci]: https://travis-ci.org/mainflux/manager -[www:grc]: https://goreportcard.com/report/github.com/mainflux/manager diff --git a/writer/README.md b/writer/README.md index 671ed470..0f62a67d 100644 --- a/writer/README.md +++ b/writer/README.md @@ -1,9 +1,5 @@ # Mainflux message writer -[![license][badge:license]](LICENSE) -[![build][badge:ci]][www:ci] -[![go report card][badge:grc]][www:grc] - Mainflux message writer consumes channel events published on message broker, and stores them into the database. @@ -59,9 +55,4 @@ CGO_ENABLED=0 GOOS=[platform identifier] go build -ldflags "-s" -a -installsuffi MESSAGE_WRITER_DB_CLUSTER=[comma-separated Cassandra endpoints] MESSAGE_WRITER_DB_KEYSPACE=[name of Cassandra keyspace] MESSAGE_WRITER_NATS_URL=[NATS instance URL] app ``` -[badge:license]: https://img.shields.io/badge/license-Apache%20v2.0-blue.svg -[badge:ci]: https://travis-ci.org/mainflux/message-writer.svg?branch=master -[badge:grc]: https://goreportcard.com/badge/github.com/mainflux/message-writer [www:cassandra]: http://docs.datastax.com -[www:ci]: https://travis-ci.org/mainflux/message-writer -[www:grc]: https://goreportcard.com/report/github.com/mainflux/message-writer