All Projects → ernoaapa → Eliot

ernoaapa / Eliot

Licence: apache-2.0
Open source system for managing containerized applications in IoT device

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Eliot

Crun
A fast and lightweight fully featured OCI runtime and C library for running containers
Stars: ✭ 990 (+283.72%)
Mutual labels:  iot, containers
Wasm3
🚀 The fastest WebAssembly interpreter, and the most universal runtime
Stars: ✭ 4,375 (+1595.74%)
Mutual labels:  iot, containers
Netdata
Real-time performance monitoring, done right! https://www.netdata.cloud
Stars: ✭ 57,056 (+22014.73%)
Mutual labels:  iot, containers
Docker Blinkt Workshop
Get into physical computing with Docker and Raspberry Pi
Stars: ✭ 151 (-41.47%)
Mutual labels:  iot, containers
Tasmota
Alternative firmware for ESP8266 with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
Stars: ✭ 16,624 (+6343.41%)
Mutual labels:  iot
Home Assistant Cli
💻 Command-line tool for Home Assistant
Stars: ✭ 243 (-5.81%)
Mutual labels:  iot
Iot Security Wiki
IOT security wiki
Stars: ✭ 241 (-6.59%)
Mutual labels:  iot
Esp32marauder
A suite of WiFi/Bluetooth offensive and defensive tools for the ESP32
Stars: ✭ 233 (-9.69%)
Mutual labels:  iot
Tock
A secure embedded operating system for microcontrollers
Stars: ✭ 3,258 (+1162.79%)
Mutual labels:  iot
Flex4apps
Flex4Apps main project repository
Stars: ✭ 255 (-1.16%)
Mutual labels:  iot
Terrariumpi
Home automated terrarium/aquarium or other enclosed environment with a Raspberry Pi
Stars: ✭ 249 (-3.49%)
Mutual labels:  iot
Parse Embedded Sdks
The Embedded SDKs for the Parse Platform
Stars: ✭ 244 (-5.43%)
Mutual labels:  iot
Cattlepi
effortlessly boot, configure, update and monitor your raspberry pi ☁️
Stars: ✭ 250 (-3.1%)
Mutual labels:  iot
Devicehive Java Server
DeviceHive Java Server
Stars: ✭ 241 (-6.59%)
Mutual labels:  iot
Industrial Iot
Azure Industrial IoT Platform
Stars: ✭ 256 (-0.78%)
Mutual labels:  iot
Badgy
Home of Badgy - IoT Badge
Stars: ✭ 239 (-7.36%)
Mutual labels:  iot
I2c Bus
I2C serial bus access with Node.js
Stars: ✭ 253 (-1.94%)
Mutual labels:  iot
Nodemcu Tool
🔧 Upload + Manage Lua files on NodeMCU
Stars: ✭ 248 (-3.88%)
Mutual labels:  iot
Data Accelerator
Data Accelerator for Apache Spark simplifies onboarding to Streaming of Big Data. It offers a rich, easy to use experience to help with creation, editing and management of Spark jobs on Azure HDInsights or Databricks while enabling the full power of the Spark engine.
Stars: ✭ 247 (-4.26%)
Mutual labels:  iot
Basecamp
An Arduino library to ease the use of the ESP32 in IoT projects
Stars: ✭ 251 (-2.71%)
Mutual labels:  iot

Eliot

Go Report CardGo Report Card

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.

Eliot 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.

asciicast

Docker and Kubernetes have inspired heavily and if you're familiar with those, you find really easy to get started with Eliot.

Built with ❤︎ by Erno Aapa and contributors

Usage

Eliot is based on top of the containerd to provide simple, Kubernetes like API for managing containers.

Eliot is built from following components

  • eli - Command line tool for managing the device
  • eliotd - Daemon for the device to manage containers

Features

  • Manage running containers in the device
  • Attach to container process remotely for debugging
  • Fast develop-in-device development start

Let us know what would be the next awesome feature :)

Getting started

See the documentation how to get started with Eliot.

Rest of this document is about developing Eliot itself, not how to develop on top of the Eliot.

Development

Prerequisites

Developing eli cli

If you're making changes to the eli command line tool, you can just build and run the command

go run ./cmd/eli/* get nodes

Developing eliotd daemon

To develop eliotd there's two different ways; latter is not tested

  • run eliotd in EliotOS with Linuxkit
  • run eliotd daemon locally

Run EliotOS locally

For development purpose, you can build and run the EliotOS 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.

  1. Build eliotd binary and Docker image
    • goreleaser --snapshot --rm-dist
  2. Get EliotOS linuxkit configuration
    • curl https://raw.githubusercontent.com/ernoaapa/eliot-os/master/rpi3.yml > rpi3.yml
  3. Update rpi3.yml
    • Check from goreleaser the amd64 container image name
    • Edit the rpi3.yml and update the eliotd image tag to match with the previous value
  4. Build EliotOS image:
    • linuxkit build rpi3.yml
  5. Start image:
    • MacOS: sudo linuxkit run hyperkit -cpus 1 -mem "1048" -disk size=10G -networking vmnet moby
  6. Test connection
    • eli get nodes

Run eliotd locally

This is not tested, but should go roughly like this:

  1. Install runc
  2. Install containerd
  3. Run go run ./cmd/eliotd/* --debug --grpc-api-listen 0.0.0.0:5000
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].