{"id":24811103,"url":"https://github.com/thin-edge/tedge-nodered-plugin","last_synced_at":"2025-03-25T13:24:10.474Z","repository":{"id":171936110,"uuid":"644491980","full_name":"thin-edge/tedge-nodered-plugin","owner":"thin-edge","description":"thin-edge.io plugin to managed Node-RED projects","archived":false,"fork":false,"pushed_at":"2024-12-14T18:49:47.000Z","size":2652,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T05:54:16.995Z","etag":null,"topics":["community","nodered","plugin","thin-edge"],"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/thin-edge.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-23T16:16:55.000Z","updated_at":"2024-12-14T18:45:52.000Z","dependencies_parsed_at":"2024-11-10T11:23:12.107Z","dependency_job_id":"7c448f29-341c-4f5e-a380-5f9760d9c942","html_url":"https://github.com/thin-edge/tedge-nodered-plugin","commit_stats":null,"previous_names":["reubenmiller/tedge-nodered-plugin"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-nodered-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-nodered-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-nodered-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thin-edge%2Ftedge-nodered-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thin-edge","download_url":"https://codeload.github.com/thin-edge/tedge-nodered-plugin/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245468714,"owners_count":20620439,"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":["community","nodered","plugin","thin-edge"],"created_at":"2025-01-30T12:19:24.403Z","updated_at":"2025-03-25T13:24:10.444Z","avatar_url":"https://github.com/thin-edge.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tedge-nodered-plugin\n\n## Pre-requisites\n\nNaturally, node-red must be installed in order to use this plugin as the plugin uses the node-red REST api to managed node-red flows. We recommend installing node-red in a container using the [tedge-container-plugin-ng](https://github.com/thin-edge/tedge-container-plugin/tree/next) thin-edge.io software management plugin.\n\nnode-red \n\nnode-red supports two different modes, one is the classic mode when flows are just simple json files (e.g. `flows.json`), and the other is the project mode where a flows.json is deployed via a git repository. The former (simple json files) is more flexible and widely used, so it is the recommended way to deploy flows to a device.\n\nTo help with the installation the following docker-compose.yaml files can be used to deploy a node-red container via thin-edge.io.\n\n* [node-red (flows/classic mode))](tests/testdata/docker-compose.nodered-flows.yaml) (recommended)\n* [node-red in project mode)](tests/testdata/docker-compose.nodered-project.yaml)\n\nBe sure to check out the [Node-RED documentation](https://nodered.org/docs/getting-started/) for more details on how to configure the node-red container.\n\n## Plugin summary\n\nInstall/remove node-red flows or projects on a device using the thin-edge.io software management plugin API.\n\n**Technical summary**\n\nThe following details the technical aspects of the plugin to get an idea what systems it supports.\n\n|||\n|--|--|\n|**Languages**|`golang`|\n|**CPU Architectures**|`armv6 (armhf)`, `armv7 (armhf)`, `arm64 (aarch64)`, `amd64 (x86_64)`|\n|**Supported init systems**|`N/A`|\n|**Required Dependencies**|-|\n|**Optional Dependencies (feature specific)**|-|\n\n### How to do I get it?\n\nThe following linux package formats are provided on the releases page and also in the [tedge-community](https://cloudsmith.io/~thinedge/repos/community/packages/) repository:\n\n|Operating System|Repository link|\n|--|--|\n|Debian/Raspbian (deb)|[![Latest version of 'tedge-nodered-plugin' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/deb/tedge-nodered-plugin/latest/a=arm64;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/deb/tedge-nodered-plugin/latest/a=arm64;d=any-distro%252Fany-version;t=binary/)|\n|Alpine Linux (apk)|[![Latest version of 'tedge-nodered-plugin' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/alpine/tedge-nodered-plugin/latest/a=aarch64;d=alpine%252Fany-version/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/alpine/tedge-nodered-plugin/latest/a=aarch64;d=alpine%252Fany-version/)|\n|RHEL/CentOS/Fedora (rpm)|[![Latest version of 'tedge-nodered-plugin' @ Cloudsmith](https://api-prd.cloudsmith.io/v1/badges/version/thinedge/community/rpm/tedge-nodered-plugin/latest/a=aarch64;d=any-distro%252Fany-version;t=binary/?render=true\u0026show_latest=true)](https://cloudsmith.io/~thinedge/repos/community/packages/detail/rpm/tedge-nodered-plugin/latest/a=aarch64;d=any-distro%252Fany-version;t=binary/)|\n\n### What will be deployed to the device?\n\n* The following software management plugins which is called when installing and removing `nodered` projects via Cumulocity IoT\n    * `nodered-project` - Deploy a project using the node-red project structure (e.g. git repository containing a flow)\n    * `nodered-flows` - Deploy a node-red flow (e.g. `flows.json`)\n\n## Plugin Dependencies\n\nThe following packages are required to use the plugin:\n\n* node-red (we recommend deploying it as a container)\n\n\n### Deploying format\n\n#### nodered-flows\n\nA node-red flows file, is the classic node-red json format which you get when you export the node-red project from the node-red UI.\n\nExample flows:\n\n* [flows.json](https://github.com/reubenmiller/nodered-demo-next/blob/main/flows.json)\n\nYou can use [go-c8y-cli](https://goc8ycli.netlify.app/) to create the Cumulocity IoT software repository items for your flow:\n\n```sh\n# Create a new software item\nc8y software create --name myflow --softwareType nodered-flows\n\n# For each version, upload a new flows.json file\nwget -O - https://github.com/reubenmiller/nodered-demo-next/blob/main/flows.json \u003e flows.json\nc8y software versions create --software myflow --version 1.0.0 --file ./flows.json\n```\n\n\n#### nodered-project\n\nA node-red project can be deployed to a device via the software management feature, where the software artifact is a simple json format which the `.repo` property which indicates the Git repository of the node-red project which should be deployed to the device.\n\nBelow is an example of such as deployment artifact.\n\n```json\n{\n    \"repo\": \"https://github.com/reubenmiller/nodered-demo-next\"\n}\n```\n\nYou can use [go-c8y-cli](https://goc8ycli.netlify.app/) to create the Cumulocity IoT software repository items for your flow:\n\n```sh\n# Create a new software item\nc8y software create --name my-nodered-project --softwareType nodered-project\n\n# For each version, upload a new flows.json file\necho '{\"repo\": \"https://github.com/reubenmiller/nodered-demo-next\"}' \u003e my-nodered-project.json\nc8y software versions create --software my-nodered-project --version 1.0.0 --file ./my-nodered-project.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthin-edge%2Ftedge-nodered-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthin-edge%2Ftedge-nodered-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthin-edge%2Ftedge-nodered-plugin/lists"}