{"id":13432617,"url":"https://github.com/netbeast/dashboard","last_synced_at":"2025-03-17T10:32:22.495Z","repository":{"id":29337588,"uuid":"32871413","full_name":"netbeast/dashboard","owner":"netbeast","description":":star2:  Create IoT applications. Wire devices together regardless their brand or technology.","archived":true,"fork":false,"pushed_at":"2018-04-27T14:44:46.000Z","size":13103,"stargazers_count":291,"open_issues_count":8,"forks_count":70,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-02-17T10:18:42.971Z","etag":null,"topics":["dashboard","iot","javascript","mqtt","netbeast","react","smart-home"],"latest_commit_sha":null,"homepage":"https://getyeti.co","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/netbeast.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-25T14:57:23.000Z","updated_at":"2025-02-03T23:03:30.000Z","dependencies_parsed_at":"2022-09-09T21:21:17.489Z","dependency_job_id":null,"html_url":"https://github.com/netbeast/dashboard","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbeast%2Fdashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbeast%2Fdashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbeast%2Fdashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/netbeast%2Fdashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/netbeast","download_url":"https://codeload.github.com/netbeast/dashboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244016790,"owners_count":20384204,"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":["dashboard","iot","javascript","mqtt","netbeast","react","smart-home"],"created_at":"2024-07-31T02:01:14.252Z","updated_at":"2025-03-17T10:32:21.576Z","avatar_url":"https://github.com/netbeast.png","language":"JavaScript","readme":" # Netbeast Dashboard \n\n[![Build Status](https://travis-ci.org/netbeast/dashboard.svg)](https://travis-ci.org/netbeast/dashboard)\n[![Windows Build Status](https://ci.appveyor.com/api/projects/status/l67h46kbdxtvy43p?svg=true)](https://ci.appveyor.com/project/jsdario/dashboard)\n[\u003cimg src=\"https://avatars2.githubusercontent.com/u/7111340?v=3\u0026s=400\" height=\"24px\" width=\"auto\"/\u003e](http://bit.ly/1VYfqDH)\n[\u003cimg src=\"https://www.iconexperience.com/_img/i_collection_png/512x512/plain/graph.png\" height=\"24px\" width=\"auto\"/\u003e](http://npm.anvaka.com/#/view/2d/netbeast-cli)\n\n### Important notice\n\nNetbeast Dashboard project is moving on.\n\nDeveloping is hard. Being disruptive is harder. Industry won't stop trying to impose new protocols and standards. Indies won't stop creating open source projects that everyone should adopt --this repo was our own bet-- but it is really hard to take off and critical adoption rate is really difficult to achieve. So we changed our focus.\n\nFirstly we developed [Yeti Smart Home](https://getyeti.co/). It is a mobile app with effortless installation and a thoroughtly worked UI that is the perfect platform to build the next generation tools for IoT development that is actually usable by non-technical people.\nWe also did it in an open way, sharing our know-how with the community and releasing a number of packages. You can read it more here: [Developing Beyond the Screen](https://medium.com/react-native-development/developing-beyond-the-screen-9af812b96724).\n\nNow we are going to take a second step. We just started The Bigfoot Project. We took everything we learnt from building the first Netbeast Dashboard, and the UX / UI experience of Yeti, developing a third beast. Instead of developing a new platform or protocol we are releasing a series of documentation, guides and wrapper of already standard tools to make them work with each other. So the Bigfoot project is a collection of already existing tools that work together out of the box and will help you develop your next connected thing as soon as possible. [Please join us here](https://github.com/netbeast/bigfoot).\n\nWe want to make compatible all the pieces of our ecosystem to serve best users and developers equally, as our mission is to make things work for people, instead making people work for things.\n\n\u003e Netbeast team\n\n### Connect everything. Regardless its brand or technology.\n\nOne API, unlimited products and hacks. Netbeast middleware translates messages from different IoT protocols and device interfaces so they work as one. Have no more \"hubs\". Work across **devices** not _brands_.\n\n```\nvar netbeast = require('netbeast')\nnetbeast.find().then(function () {\n  netbeast('lights').set({ power: 1 }) // will turn on all lights in your home\n})\n```\n\n# Contents\n* [Installation](#installation)\n  * [Basic](#installation-basic)\n  * [Raspberry / Beagle Bone / Pine64 or your choice of board](#installation-board)\n  * [Using docker](#installation-docker)\n* [Overview](#overview)\n* [Documentation](#documentation)\n* [Create IoT with Node.js](#iot-with-node)\n  * [Apps](#apps)\n  * [Connect devices](#connect-devices)\n* [Community](#community)\n* [Contribute](#contribute)\n* [LICENSE.md](https://github.com/netbeast/dashboard/blob/master/LICENSE.txt)\n\n\u003ca name=\"installation\"\u003e\u003c/a\u003e\n# Installation\n\u003ca name=\"installation-basic\"\u003e\u003c/a\u003e\n## Basic\nMake sure you have installed [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [nodejs](https://nodejs.org/en/).\n```bash\nnpm install -g netbeast-cli\nnetbeast start\n```\n\nFind it live at http://localhost:8000 or run it as `netbeast start --port \u003cPORT\u003e`\n\n**Pro tip.** To get started developing you will find handy to have it installed in a folder of\nyour choice.\n```\ngit clone https://github.com/netbeast/dashboard\ncd dashboard\nnpm install --production\nnpm start\n```\n\n![Dashboard live GIF](public/img/dashboard-demo.gif)\n\n\u003ca name=\"installation-board\"\u003e\u003c/a\u003e\n## Raspberry / Beagle Bone / Pine64 or your choice of board\nMake sure again you have installed [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) and [nodejs](https://nodejs.org/en/). It can be tricky depending on your OS \u0026 architecture. If any doubts please reach [forum](http://bit.ly/23UyVMR) or open an [issue](https://github.com/netbeast/dashboard/issues).\n1. Apply the basic installation from above, preferably using git.\n```\ngit clone https://github.com/netbeast/dashboard . # clone in this folder\nnpm i --production # no front-end or test dependencies\n```\n1. Keep it running 24h 7 days a week, to use it as Smart Home Hub. You can use utilities such as [forever](https://www.npmjs.com/package/forever) or [pm2](https://www.npmjs.com/package/pm2).\n```\nnpm i -g pm2\nsudo pm2 start index.js --port 80\n```\n3. [Soon] Learn how to attach a DHCP name to your Netbeast as https://home.netbeast and how to deal with wireless configuration in Linux from our [blog](https://blog.netbeast.co).\n\n\u003ca name=\"installation-docker\"\u003e\u003c/a\u003e\n## Using docker :whale:\nMake sure you already have [docker](https://docs.docker.com/engine/installation/) installed.\n\n1. Run our docker image, if it's the first time, it'll be downloaded from the [Docker Hub](https://hub.docker.com/r/netbeast/netbeast/)\n\n```\ndocker run -p 49160:8000 -d netbeast/netbeast\n```\n\nThis will run Netbeast dashboard on port 49160 of the host running the container. You can now play with it. \n\nAccess the dashboard on [http://localhost:49160](http://localhost:49160)\n\nEt voilà!\n\n\n\u003ca name=\"overview\"\u003e\u003c/a\u003e\n# Overview\n#### Find inspiration, think about new projects, connect your new hardware.\nNetbeast apps are HTML5 user interfaces that enable controlling IoT or visualizing their data. Netbeast plugins are apps that translate from the Netbeast IoT Unified Scheme, to each particular implementation of an IoT device.\n\n**Explore existing apps and plugins of our [public registry](https://dashboard.netbeast.co/explore).**\n\n## Control devices regardless of their brand and technology\nTake a look on our unified API on action in this demo on youtube, under a Netbeast app that creates new scenes.\n\n[![IMAGE ALT TEXT HERE](https://img.youtube.com/vi/YNERwJdykuQ/0.jpg)](https://www.youtube.com/watch?v=YNERwJdykuQ)\n\nhttps://www.youtube.com/watch?v=YNERwJdykuQ\n\n## Measure all your data\nUse the [Netbeast API](https://github.com/netbeast/api) along with the dashboard to publish data through MQTT or reuse it in your apps. [Read more](http://docs.netbeast.co/chapters/api_reference/index.html\n).\n\n![Dashboard live GIF](public/img/history.gif)\n\n## Write IoT apps without spending on hardware or suffering expensive deployments\nTake advance of Netbeast IoT middleware to test your apps with software that mocks the hardware interface.\n\n![Virtual plugins](https://docs.netbeast.co/img/bulb-padjs.gif)\n\nFind tutorials in the [docs](http://bit.ly/1VYfqDH), read a blog post about it on [TopTal](https://www.toptal.com/nodejs/programming-visually-with-node-red) or join the [forum](http://bit.ly/23UyVMR) to ask how to do it.\n\n\u003ca name=\"documentation\"\u003e\u003c/a\u003e\n## Documentation\nWe publish a [gitbook](https://www.gitbook.com/book/netbeast/docs/details) with fresh documentation on [https://docs.netbeast.co](http://bit.ly/1VYfqDH). If you want to open an issue, contribute or edit it, find your way on its github repo https://github.com/netbeast/docs.\n\n\u003ca name=\"iot-with-node\"\u003e\u003c/a\u003e\n# Create IoT with Node.js\nIn Netbeast we care about education, openness and interoperability. We have created a series of workshops to teach developers to better use HTTP, MQTT in combination with the **Dashboard** to create data bindings and incredible apps. Use your favorite boards and platforms as Arduino, Pi Zero, Pine64, Belkin Wemo, Homekit and a infinite list, connected.\n\n\u003ca name=\"apps\"\u003e\u003c/a\u003e\n## Apps\nA Netbeast app allows you to run the Dashboard unique API in the browser or backend equally. Just expose some user interface in your apps root. In the following snippet we serve in the root all files inside `public` folder.\n\n```\nvar express = require('express')\nvar app = express()\n\n// Netbeast apps need to accept the port to be launched by parameters\nvar argv = require('minimist')(process.argv.slice(2))\n\napp.use(express.static('public'))\n\nvar server = app.listen(argv.port || 31416, function () {\n  var host = server.address().address\n  var port = server.address().port\n  console.log('Example app listening at http://%s:%s', host, port)\n})\n```\n\nLearn how to create new scenes and user interfaces as bots, speech recognition, smart triggers. Learn how to develop Netbeast apps, debug and publish them on the [documentation](https://docs.netbeast.co/chapters/developing/apps/write_your_first_app.html)\n\n\u003ca name=\"connect-devices\"\u003e\u003c/a\u003e\n## Connect Devices\n\u003e A plugin is an app that enables your Dashboard to communicate with a different protocol or proprietary device.\n\u003e It's like if you, that want to learn Chinese, could speak Chinese by installing an app.\n\u003e Luis, cofounder of Netbeast\n\nA basic plugin must implement at least a `discovery` primitive to declare itself on Netbeast's database.\nFill the gaps to create your first hardware integration into Netbeast:\n```\nvar netbeast = require('netbeast')\nvar express = require('express')\nvar cmd = require('commander') // reads --port from command line\n\n// Netbeast tells you in which port to run your Plugin endpoint\ncmd.option('-p, --port \u003cn\u003e', 'Port to start the HTTP server', parseInt)\n.parse(process.argv)\n\nvar app = express()\n\n/*\n* Discover your resources / scan the network\n* And declare your routes into the API\n*/\n\napp.get('/discover', function () {\n\t/* TODO, implement discovery */\n\n\t/* for each device */\n\tnetbeast('topic').create({ app: 'my-first-plugin', hook: 'DEVICE_ID' })\n\t/* end of for */\n\n\t/* or */\n\t/* Register all device together and delete the resources no longer available */\n\tnetbeast('topic').udateDB({ app: 'my-first-plugin', hook: ['DEVICE1_ID', 'DEVICE2_ID', 'DEVICE3_ID', 'DEVICE4_ID'] })\n})\n\n/*\n* Create here your API routes\n* app.get(...), app.post(...), app.put(...), app.delete(...)\n*/\n\napp.get('/:device_id', function (req, res) {\n\t// id of the device the dashboard wants\n\t// \u003c\u003c req.params.device_id \u003e\u003e\n\t// dashboard will do GET on this route when\n\t// netbeast('topic').get({})\n\n\t/* TODO: Return device values from req.query */\n\n\t// res.json({ YOUR_PLUGIN_DATA })\n})\n\napp.post('/:device_id', function (req, res) {\n\t// id of the device the dashboard wants\n\t// \u003c\u003c req.params.device_id \u003e\u003e\n\t// dashboard will do POST on this route when\n\t// netbeast('topic').set({})\n\n\t/* TODO: Change device values from req.body */\n\n\t// res.json({ YOUR_PLUGIN_DATA })\n})\n\n\nvar server = app.listen(cmd.port || 4000, function () {\n  console.log('Netbeast plugin started on %s:%s',\n  server.address().address,\n  server.address().port)\n})\n```\n\nLearn how to launch it, debug it and publish it on the [documentation](https://docs.netbeast.co/chapters/developing/plugins/write_your_first_plugin.html).\n\n\u003ca name=\"community\"\u003e\u003c/a\u003e\n## Community\n##### \u003cimg src=\"https://pbs.twimg.com/profile_images/3264780953/6c9a2cd7bb2efcb4c53d32900e52c8ac_400x400.png\" height=\"24px\" width=\"auto\"/\u003e Join us in our [forum](http://forum.netbeast.co/c/otros/desarrolladores)\n##### \u003cimg src=\"https://slack.com/img/slack_hash_128.v1442100037.png\" height=\"24px\" width=\"auto\"/\u003e Ask for an invitation to join our Slack team [here](https://netbeastco.typeform.com/to/VGLexg)\n##### Project [website](https://netbeast.co/developer)\n\u003ca name=\"contribute\"\u003e\u003c/a\u003e\n## Contribute\nTake a look to our [CONTRIBUTING.md](https://github.com/netbeast/dashboard/blob/master/CONTRIBUTING.md) file in order to see how can you be part of this project. Or take a look on [Netbeast's discourse forum](http://bit.ly/23UyVMR) to find for inspiration, projects and help.\n\n**TL;DR** Make a Pull Request.\nIf your PR is eventually merged don't forget to write down your name on the [AUTHORS.txt](https://github.com/netbeast/dashboard/blob/master/AUTHORS) file.\n\n---\n\u003cimg src=\"https://github.com/netbeast/docs/blob/master/img/open-source.png?raw=true\" height=\"140px\" width=\"auto\"/\u003e\n\u003cimg src=\"https://github.com/netbeast/docs/blob/master/img/open-hw.png?raw=true\" height=\"140px\" width=\"auto\"/\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\n\u003cimg src=\"https://camo.githubusercontent.com/41830215b4097f57cd7780ad127fb0917fc8f818/68747470733a2f2f63646e2e7261776769742e636f6d2f6665726f73732f7374616e646172642f6d61737465722f737469636b65722e737667\" height=\"140px\" width=\"auto\"/\u003e\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetbeast%2Fdashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnetbeast%2Fdashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnetbeast%2Fdashboard/lists"}