{"id":13741149,"url":"https://github.com/ernoaapa/eliot","last_synced_at":"2025-08-20T01:31:37.542Z","repository":{"id":144202277,"uuid":"113276984","full_name":"ernoaapa/eliot","owner":"ernoaapa","description":"Open source system for managing containerized applications in IoT device","archived":false,"fork":false,"pushed_at":"2018-12-18T16:28:02.000Z","size":4401,"stargazers_count":269,"open_issues_count":10,"forks_count":20,"subscribers_count":30,"default_branch":"master","last_synced_at":"2024-12-10T00:40:22.347Z","etag":null,"topics":["containerd","containers","golang","iot","linuxkit","runc"],"latest_commit_sha":null,"homepage":"https://docs.eliot.run","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/ernoaapa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-12-06T06:16:12.000Z","updated_at":"2024-05-27T10:25:12.000Z","dependencies_parsed_at":"2024-01-18T21:40:52.563Z","dependency_job_id":"e716e7e4-8118-45c1-9a65-68e0a5d82339","html_url":"https://github.com/ernoaapa/eliot","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernoaapa%2Feliot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernoaapa%2Feliot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernoaapa%2Feliot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ernoaapa%2Feliot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ernoaapa","download_url":"https://codeload.github.com/ernoaapa/eliot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230382858,"owners_count":18216854,"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":["containerd","containers","golang","iot","linuxkit","runc"],"created_at":"2024-08-03T04:00:56.059Z","updated_at":"2024-12-19T05:07:48.203Z","avatar_url":"https://github.com/ernoaapa.png","language":"Go","funding_links":[],"categories":["Edge \u0026 IoT","Go"],"sub_categories":[],"readme":"\n![Eliot](docs/eliot-logo-medium.png)\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/ernoaapa/eliot)](https://goreportcard.com/report/github.com/ernoaapa/eliot)[![Go Report Card](https://img.shields.io/badge/deb-packagecloud.io-844fec.svg)](https://packagecloud.io/ernoaapa/eliot)\n\n\u003e This is early alpha version! There's not all features yet implemented, not heavily tested with different devices and code might get large breaking changes until the first release.\n\nEliot is a open source system for managing containerized applications on top of the IoT device with an emphasis to usability, simplicity, security and stability. Eliot gives simplified app delivery, isolation and additional security to traditional installations.\n\n[![asciicast](https://asciinema.org/a/vZcVZKEfAosSSrhWrJbmIqAd9.png)](https://asciinema.org/a/vZcVZKEfAosSSrhWrJbmIqAd9?autoplay=1\u0026speed=2\u0026t=4)\n\nDocker and Kubernetes have inspired heavily and if you're familiar with those, you find really easy to get started with Eliot.\n\n\u003csub\u003eBuilt with ❤︎ by [Erno Aapa](https://github.com/ernoaapa) and [contributors](https://github.com/ernoaapa/eliot/contributors)\u003c/sub\u003e\n\n## Usage\n\n- [Documentation](http://docs.eliot.run)\n- [Binary releases](https://github.com/ernoaapa/eliot/releases)\n- [Docker releases](https://hub.docker.com/r/ernoaapa/eliotd/tags)\n\nEliot is based on top of the [containerd](https://github.com/containerd/containerd) to provide simple, _Kubernetes like_ API for managing containers.\n\nEliot is built from following components\n- `eli` - Command line tool for managing the device\n- `eliotd` - Daemon for the device to manage containers\n\n### Features\n- Manage running containers in the device\n- Attach to container process remotely for debugging\n- Fast _develop-in-device_ development start\n\n[Let us know](https://github.com/ernoaapa/eliot/issues/new) what would be the next awesome feature :)\n\n## Getting started\n[See the documentation](http://docs.eliot.run/getting_started.html) how to get started with Eliot.\n\n**Rest of this document is about developing Eliot itself, not how to develop on top of the Eliot.**\n\n## Development\n\n### Prerequisites\n- [Install Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)\n- [Install Golang 1.10](https://golang.org/doc/install)\n- [Install Docker](https://docs.docker.com/install/)\n- [Install Linuxkit](https://github.com/linuxkit/linuxkit#build-the-linuxkit-tool)\n- [Install goreleaser](https://goreleaser.com/#introduction.installing_goreleaser) (for building `eliotd`)\n- Get Eliot source code `git clone https://github.com/ernoaapa/eliot \u0026\u0026 cd eliot`\n\n### Developing `eli` cli\nIf you're making changes to the `eli` command line tool, you can just build and run the command\n```shell\ngo run ./cmd/eli/* get nodes\n```\n\n### Developing `eliotd` daemon\nTo develop `eliotd` there's two different ways; latter is not tested\n- run `eliotd` in EliotOS with Linuxkit\n- run `eliotd` daemon locally\n\n#### Run EliotOS locally\nFor development purpose, you can build and run the [EliotOS](https://github.com/ernoaapa/eliot-os) locally, but keep in mind that the **environment is amd64 not arm64** so container images what work in this environment might not work in RaspberryPI if the images are not multi-arch images.\n\n1. Build `eliotd` binary and Docker image\n   - `goreleaser --snapshot --rm-dist`\n2. Get EliotOS linuxkit configuration\n   - `curl https://raw.githubusercontent.com/ernoaapa/eliot-os/master/rpi3.yml \u003e rpi3.yml`\n3. Update `rpi3.yml`\n   - Check from `goreleaser` the `amd64` container image name\n   - Edit the `rpi3.yml` and update the `eliotd` image tag to match with the previous value\n4. Build EliotOS image:\n   - `linuxkit build rpi3.yml`\n5. Start image:\n   - MacOS: `sudo linuxkit run hyperkit -cpus 1 -mem \"1048\" -disk size=10G -networking vmnet moby`\n6. Test connection\n   - `eli get nodes`\n\n#### Run `eliotd` locally\nThis is not tested, but should go roughly like this:\n\n1. Install [runc](https://github.com/opencontainers/runc)\n2. Install [containerd](https://github.com/containerd/containerd/blob/master/docs/getting-started.md#starting-containerd)\n3. Run `go run ./cmd/eliotd/* --debug --grpc-api-listen 0.0.0.0:5000`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fernoaapa%2Feliot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fernoaapa%2Feliot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fernoaapa%2Feliot/lists"}