Skip to content
Open Source Cloud Native IoT Solution
Branch: master
Clone or download
Latest commit 97152f7 Jun 7, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci fix build Apr 9, 2019
.github/ISSUE_TEMPLATE Update issue templates Mar 2, 2019
Dockerfiles add grafana-proxy Dockerfile May 2, 2019
cmd sleep a while before initial sync May 6, 2019
docs improve quickstart Apr 16, 2019
e2e fix build Apr 9, 2019
frontend Frontend: Fixed overlay bug on small resolution. May 8, 2019
hack make microk8s based infinimesh smaller to enable better local develop… May 19, 2019
pkg grafana: add SwitchUserOrg May 6, 2019
tools/proto add grpc-gateway Dec 3, 2018
vendor apiserver: fix hanging stream updates May 1, 2019
.dockerignore remove frontend from dockerignore Dec 27, 2018
.gitignore add godownloader & goreleaser Mar 30, 2019
.golangci.yml fix dep issue Mar 16, 2019
.goreleaser.yml goreleaser: add arm builds Apr 2, 2019
.nojekyll add nojekyll Mar 14, 2019
LICENSE Initial commit Oct 27, 2018
README.md Update README.md Jun 7, 2019
Taskfile.yml update Taskfile Mar 30, 2019
asciicast.gif gif back Apr 28, 2019
docker-compose.yaml
go.mod add grafana proxy May 1, 2019
go.sum add grafana proxy May 1, 2019
godownloader.sh
prototool.yaml add tools/proto to exclusions so we don't generate them Dec 3, 2018
roadmap.md adjust roadmap May 1, 2019

README.md

Infinimesh Platform

Infinimesh Platform is an opinionated multi-tenant hyperscale Platform to connect IoT devices securely. It features a unique Graph-based authorization system, allowing users & engineers to create arbitrary hierarchical ontologies, with the possibility to scope permissions down to single sub-devices to specific users (e.g. suppliers). It exposes simple to consume RESTful & gRPC APIs with both high-level (e.g. device shadow) and low-level (sending messages) concepts. Infinimesh Platform is open source and fully cloud native. No vendor lock-in - run it yourself on Kubernetes or use our SaaS offering.

Project status

Infinimesh is currently under open source development. All development, except minor additional services for our SaaS, is open source and completely transparent on GitHub. APIs are alpha and may change at any time. Many components are already available: MQTT Bridge, State management, Graph-based permission management, Device-to-Cloud and Cloud-to-Device messages. A kubernetes operator is also available, which is in an early stage. The simplest way to work with infinimesh is using kubernetes:

bash <(curl -s https://raw.githubusercontent.com/infinimesh/infinimesh/master/hack/microk8s/infinimesh-setup.sh)

A ui/dashboard is currently under development and will be available in mid Q2 2019.
Here is a link to our feature roadmap.

Build status

CircleCI FOSSA Status GoReportCard

Docker Image Build status
Kubernetes Operator Docker Repository on Quay
App (Web UI) Docker Repository on Quay
API Server Docker Repository on Quay Docker Repository on Quay
Node Server Docker Repository on Quay
Device Registry Docker Repository on Quay
Telemetry Router Docker Repository on Quay
MQTT-Bridge Docker Repository on Quay
Shadow Docker Repository on Quay Docker Repository on Quay Docker Repository on Quay

API Documentation

You can find swagger docs for the API server here

Community

You can reach out to the community via Slack

Development

Local development installation

We have built an automated local development setup based on microk8s:

bash <(curl -s https://raw.githubusercontent.com/infinimesh/infinimesh/master/hack/microk8s/infinimesh-setup.sh)

Source: https://github.com/infinimesh/infinimesh/tree/master/hack/microk8s

Generating proto files

npm i -g merge-yaml-cli
npm i -g api-spec-converter

Start the local dev environment via docker-compose up -d.

Load test data into the database via go run hack/import_dgraph_sample_data.go

Login: curl -X POST -d '{"username" : "joe", "password": "test123"}' localhost:8081/account/token

Get Objects: curl -H 'Authorization: Bearer YOURTOKEN' localhost:8081/objects

Login locally via CLI:

inf config set-context local --apiserver localhost:8080 --tls=false
inf login

Use the users joe / test123 or admin/admin123 for local development.

Register a device:

inf device create sample-device --cert-file hack/device_certs/sample_1.crt

Send sample message to the local instance:

mosquitto_pub --cafile hack/server.crt   --cert hack/device_certs/sample_1.crt --key hack/device_certs/sample_1.key -m '{"sensor" : {"temp" : 41}}' -t "devices/0x6ddd1/state/reported/delta" -h localhost  --tls-version tlsv1.2 -d -p 8089

Remember to replace 0x6ddd1 with the ID of your device. Also use the certificate and key of your device.

Send sample message via mosquitto_pub to the hosted SaaS instance:

mosquitto_pub --cafile /etc/ssl/certs/ca-certificates.crt   --cert hack/server.crt --key hack/server.key -m "blaaa" -t "shadows/testdeviceX" -h mqtt.api.infinimesh.io  --tls-version tlsv1.2 -d -p 8883

Access the frontend at http://localhost:8082

The cafile path may vary depending on your operating system.

License

FOSSA Status

You can’t perform that action at this time.