{"id":23087913,"url":"https://github.com/pseudoincorrect/bariot","last_synced_at":"2025-07-27T15:39:13.453Z","repository":{"id":37722635,"uuid":"456837310","full_name":"pseudoincorrect/Bariot","owner":"pseudoincorrect","description":"IoT / IIoT platform with things/user management, storage, visualization and data streaming, in Go with Docker using microservices.","archived":false,"fork":false,"pushed_at":"2022-06-22T07:28:43.000Z","size":6492,"stargazers_count":9,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-15T23:27:52.547Z","etag":null,"topics":["docker","golang","influxdb","iot","microservice","mqtt"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pseudoincorrect.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-08T08:03:26.000Z","updated_at":"2023-11-11T08:53:09.000Z","dependencies_parsed_at":"2022-09-06T09:03:20.022Z","dependency_job_id":null,"html_url":"https://github.com/pseudoincorrect/Bariot","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudoincorrect%2FBariot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudoincorrect%2FBariot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudoincorrect%2FBariot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pseudoincorrect%2FBariot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pseudoincorrect","download_url":"https://codeload.github.com/pseudoincorrect/Bariot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230019775,"owners_count":18160600,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","golang","influxdb","iot","microservice","mqtt"],"created_at":"2024-12-16T20:15:28.568Z","updated_at":"2024-12-16T20:15:29.849Z","avatar_url":"https://github.com/pseudoincorrect.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BARIOT\n\n[IoT][iot] / [IIoT][iiot] Platform\n\nBariot is a simple solution to send, manage, secure and visualize data from connected devices/machines.\n\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg width=75% src=\"assets/images/bariot_img.jpg\"\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e \u003ci\u003e Drawing by Ngoc-Ha \u003c/i\u003e \u003c/p\u003e\n\n\u003cbr/\u003e\n\nMicro-services architecture build with [Go][go] and [Docker][docker] (compose).\n\nInspired by the beautiful architecture of [Mainflux][mainflux].\n\n\u003cbr/\u003e\n\n## MOTIVATIONS\n\nBariot is being developed to offer a simple, complete and scalable solution to wide variety of IoT projects.\n\nBariot uses the most recent (ref 2022) technologies to create a scalable and cloud agnostic IoT/IIoT platform.\n\nBariot is opinionated, in the sense that storage and communications technologies are predefined (see COMPONENTS)\n\nBariot is a chance to understand what technologies are used to create cloud applications with modern standards of security, scalability, performances and devops practices. Whether it is purely serverless or containerized, these components (see below) in one form or another are often involved.\n\nBariot is also a fun project to work on !\n\n\u003cbr/\u003e\n\n## INSTRUCTIONS\n\nDeployment on AWS EC2 [here][awsdeploy]. (with docker-compose)\n\n\u003cbr/\u003e\n\n## COMPONENTS\n\n### Implemented\n\n- Transport: [MQTT][mqtt]\n- Authentication/Authorization: [JWT][jwt]\n- USER, THINGS storage: [PostgreSQL][postgresql]\n- THINGS DATA storage: [Influxdb][influxdb]\n- Services intercommunication: [gRpc][grpc]\n- Services messaging: [Nats][nats]\n- Data presentation: [Grafana][grafana]\n- Data streaming: [Websockets][websockets]\n- Reverse proxy: [Nginx][nginx]\n- Caching: [Redis][redis]\n- Testing Unit, Integration, End to End: [GoTest][gotest]\n\n### Further on the road\n\n- Transport: [OPC-UA][opc-ua]\n- CI/CD: [Gitlab][gitlab]\n- Permission system (IAM): to be decided\n\n\u003cbr/\u003e\n\n## IT IS A WORK IN PROGRESS ;)\n\n\u003cbr/\u003e\n\n[iot]: https://www.zdnet.com/article/what-is-the-internet-of-things-everything-you-need-to-know-about-the-iot-right-now/\n[iiot]: https://www.trendmicro.com/vinfo/us/security/definition/industrial-internet-of-things-iiot\n[go]: https://www.freecodecamp.org/news/what-is-go-programming-language/\n[docker]: https://docs.docker.com/get-started/overview/\n[mainflux]: https://mainflux.com/\n[mqtt]: https://mqtt.org/\n[jwt]: https://jwt.io/\n[postgresql]: https://www.postgresql.org/\n[influxdb]: https://www.influxdata.com/\n[grpc]: https://grpc.io/docs/what-is-grpc/introduction/\n[nats]: https://docs.nats.io/nats-concepts/what-is-nats\n[opc-ua]: https://www.opc-router.com/what-is-opc-ua/\n[grafana]: https://www.scaleyourapp.com/what-is-grafana-why-use-it-everything-you-should-know-about-it/\n[websockets]: https://ably.com/topic/websockets\n[nginx]: https://medium.com/globant/understanding-nginx-as-a-reverse-proxy-564f76e856b2\n[redis]: https://redis.io/topics/introduction\n[gotest]: https://pkg.go.dev/testing\n[vault]: https://www.vaultproject.io/docs/what-is-vault\n[gitlab]: https://about.gitlab.com/what-is-gitlab/\n[awsdeploy]: https://github.com/pseudoincorrect/Bariot/blob/main/instructions.md\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpseudoincorrect%2Fbariot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpseudoincorrect%2Fbariot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpseudoincorrect%2Fbariot/lists"}