{"id":13564723,"url":"https://github.com/cnrancher/octopus","last_synced_at":"2025-04-03T21:31:38.622Z","repository":{"id":39783189,"uuid":"242047081","full_name":"cnrancher/octopus","owner":"cnrancher","description":"Lightweight device management system for Kubernetes/k3s","archived":true,"fork":false,"pushed_at":"2022-02-17T01:29:59.000Z","size":10297,"stargazers_count":155,"open_issues_count":11,"forks_count":40,"subscribers_count":9,"default_branch":"master","last_synced_at":"2024-11-04T17:48:04.789Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cnrancher.github.io/docs-octopus/eng","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/cnrancher.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-21T03:38:13.000Z","updated_at":"2024-09-19T09:02:01.000Z","dependencies_parsed_at":"2022-07-14T22:46:47.954Z","dependency_job_id":null,"html_url":"https://github.com/cnrancher/octopus","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnrancher%2Foctopus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnrancher%2Foctopus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnrancher%2Foctopus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cnrancher%2Foctopus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cnrancher","download_url":"https://codeload.github.com/cnrancher/octopus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247083487,"owners_count":20880850,"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":[],"created_at":"2024-08-01T13:01:35.010Z","updated_at":"2025-04-03T21:31:33.614Z","avatar_url":"https://github.com/cnrancher.png","language":"Go","funding_links":[],"categories":["Go","Edge \u0026 IoT"],"sub_categories":[],"readme":"# Octopus\n\n**Octopus is no longer being actively maintained.**\n\n[![Build Status](http://drone-pandaria.cnrancher.com/api/badges/cnrancher/octopus/status.svg)](http://drone-pandaria.cnrancher.com/cnrancher/octopus)\n[![Go Report Card](https://goreportcard.com/badge/github.com/cnrancher/octopus)](https://goreportcard.com/report/github.com/cnrancher/octopus)\n\nOctopus is a light-weight and cloud-native device management system for Kubernetes and k3s, it does not need to replace any basic components of the Kubernetes cluster. After Octopus deployed, the cluster can have the ability to manage edge devices as custom k8s resources.\n\n\u003c!-- toc --\u003e\n\n- [Idea](#idea)\n- [Documentation](#documentation)\n- [Quick-start](#quick-start)\n- [Source code](#source-code)\n- [License](#license)\n\n\u003c!-- /toc --\u003e\n\n## Idea\n\nLike a real octopus, Octopus consists of the `brain` and `limbs`. The `brain` only needs to deploy one or automatically select a leader in HA mode. It only needs to process relatively concentrated information, such as verifying the existence of nodes and the existence of device models (types). Limbs need to be deployed on each edge node that can be connected to the device, and they communicate with the actual device through the device adaptor (Adaptors). Therefore, Octopus uses a DeviceLink YAML file (a custom-defined k8s object) to configure and manage its device connections.\n\nFor more details please refer to the [official documentation](https://cnrancher.github.io/docs-octopus/eng/).\n\n## Documentation\n\n\u003c!-- toc --\u003e\n- Octopus\n    - [About Octopus](https://cnrancher.github.io/docs-octopus/docs/en/about)\n    - [Quick-start guide](https://cnrancher.github.io/docs-octopus/docs/en/quick-start)\n    - [How to develop](https://cnrancher.github.io/docs-octopus/docs/en/develop)\n    - [How to monitor](https://cnrancher.github.io/docs-octopus/docs/en/monitoring)\n    - [The state transition of DeviceLink](https://cnrancher.github.io/docs-octopus/docs/en/devicelink/state-of-dl)\n- Adaptors\n    - [How it works](https://cnrancher.github.io/docs-octopus/docs/en/adaptors/adaptor)\n    - [How to develop](https://cnrancher.github.io/docs-octopus/docs/en/adaptors/develop)\n- Contribution\n    - [How to contribute](./CONTRIBUTING.md)\n\u003c!-- /toc --\u003e\n\n## Quick-start\n\nThere are two ways to deploy the Octopus, for quick-start, you can use the manifest YAML file to bring up the Octopus. The installer YAML file is under the [deploy/e2e](./deploy/e2e) directory on Github.\n```shell script\n# install octopus\n$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus/master/deploy/e2e/all_in_one.yaml\n\n# install ui\n$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus-api-server/master/deploy/e2e/all_in_one.yaml\n\n# install adaptors\n$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus/master/adaptors/modbus/deploy/e2e/all_in_one.yaml\n$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus/master/adaptors/opcua/deploy/e2e/all_in_one.yaml\n$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus/master/adaptors/mqtt/deploy/e2e/all_in_one.yaml\n$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus/master/adaptors/ble/deploy/e2e/all_in_one.yaml\n$ kubectl apply -f https://raw.githubusercontent.com/cnrancher/octopus/master/adaptors/dummy/deploy/e2e/all_in_one.yaml\n```\n\nOptionally, you can use this [repository](https://github.com/cnrancher/octopus-chart) hosts official Helm charts for Octopus. These charts are used to deploy Octopus to the Kubernetes/k3s Cluster.\n```shell script\n# add octopus helm repo\n$ helm repo add octopus http://charts.cnrancher.com/octopus\n$ helm repo update\n\n# create octopus-system namespace\n$ kubectl create ns octopus-system\n\n# install octopus, ui and adaptors\n$ helm install --namespace octopus-system octopus octopus/octopus\n```\n\n## Source code\nOctopus is 100% open source software. Project source code is spread across a number of repos:\n\n| Name | Repo Address |\n|:---|:---|\n| Octopus UI | https://github.com/cnrancher/octopus-ui |\n| Octopus API Server | https://github.com/cnrancher/octopus-api-server |\n| Octopus Chart | https://github.com/cnrancher/octopus-chart |\n| Octopus Simulator | https://github.com/cnrancher/octopus-simulator |\n| Octopus Docs | https://github.com/cnrancher/docs-octopus |\n\n## License\nCopyright (c) 2020 [Rancher Labs, Inc.](http://rancher.com)\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at [LICENSE](./LICENSE) file for details.\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnrancher%2Foctopus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcnrancher%2Foctopus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcnrancher%2Foctopus/lists"}