Announcing Eliot — Container platform for IoT devices

Erno Aapa
Erno Aapa
Jan 22, 2018 · 6 min read
Image for post
Image for post
Eliot — Container platform for IoT devices

Since collected all lessons from Eliot, founded Kubiot — Kubernetes for IoT.
Sign up for early access at!
- Erno

I’m super excited to tell about the project that I have been doing in my free time past months. Eliot is Docker and Kubernetes inspired platform for managing containers in IoT devices and it’s available under MIT open source license.

I have over 10 years of software engineer experience and have been over five years really active in the DevOps community and have seen the change.
While I was working in drone company, and building drone-based automated inspection service, I was surprised that there’s no state-of-the-art solution for managing software in connected devices that is common nowadays in cloud environments.

Most solutions were clumsy and error-prone “manually-install-and-copy-image” solutions. OTA (over-the-air) solutions were mostly outdated or otherwise unusable for modern “continuous delivery” world, not to mention poor security. And all IoT platforms were basically just agents to push data to some cloud service for analysis.


  • No internet connection required
  • Good configuration management
  • Easy development and debugging in the device
  • Simple and fast application deployment and updates
  • Good security and software isolation
  • Built for connected devices from ground up

And that’s the day when Eliot born ❤️

You probably have heard of containers. Containers have revolutionized in past years how we built, ship and run the software.
In Eliot, everything runs inside containers. It’s like CoreOS or Kubernetes in a sense that there’s pretty much only Linux kernel and small agent in the OS and everything else gets deployed to the device in containers. This makes managing and updating software on the device really easy and attack surface for hackers is minimal.

Image for post
Image for post
Eliot is built on top of open source components that are already in use by millions of users

Eliot uses containerd to run containers. containerd is container runtime from the core of Docker and open sourced lately by Docker Inc. That’s used everywhere were Docker is used. And that’s almost everywhere 😃
It uses linuxkit, another open source project from Docker Inc., to build really minimal Operating System to run containers. EliotOS is less than 70Mb which is small compared to for example to Raspbian 1.5Gb 😮!

To make the life of developers and operators easy as possible, Eliot provides nice “Kubernetes like” interface on top of these open source components, while keeping the setup small and secure.

You don’t need to switch your chosen IoT tool or platform to collect and process data in the cloud, Eliot is just helping you to manage the device configuration and software more easily. I.e. you can use Eliot to deploy your IoT platform to the device. It probably makes your life even easier, because the community can share common building blocks as images in Docker Hub.

Connecting to Eliot enabled device is super easy. You don’t need to figure out what IP address the device got or hard code static IP, just ask Eliot to list devices and it will take care of it on your behalf.

Eliot discovers devices in the same network automatically with a technique called Zeroconf. When your PC “magically” find printers from the network or when you start playing the Youtube video in your Chromecast, you actually use the same technology.

✨ It’s the same magic that Apple, Google, Microsoft uses to make your life easier

To run the container on your device, you can use the same command that you’re used to already when you run container locally with Docker,
just change docker command to eli.

Running container in the device is usually one-time ad-hoc testing and that’s why by default Eliot delete the container when you exit from the process. To deploy container permanently, you need to create a Pod.

If you like Kubernetes, you❤️ Eliot

The core concept in Eliot is Pod, that might be familiar already if you have used Kubernetes. A Pod is the basic building block of Eliot and is the main model object that you deploy and manage. A Pod groups one or more containers together that are meant to get started, deployed and deleted together.

You can list all running Pods with eli get pods

And get more detailed information with eli describe pod <name>
…just like in Kubernetes 😉

There are many features and I’m not gonna list all of them here, but I’ll show one more thing. Often there‘s need to get access to the device and the container to run debug or run some command.
With Eliot you don’t need to start setting up SSH or some other terminal access, all that you need to do is ask Eliot to execute a shell in the container and connect your local terminal session with it.

Now that’s cool, right?! 😀

And at the end, clean up the device by removing all Pods and it’s fresh like at beginning of a day!

Like it while it’s hot!

I would really appreciate if you drop me a ⭐️ at GitHub so I’ll get my dopamine boost and keep pushing new features out! 🙂

Eliot is in an early phase but is already implements most important functionalities to manage containers.
And getting started with RaspberryPI3 is easy with EliotOS.

Check out the documentation at
and source code at

Image for post
Image for post

Join our community Slack and read our weekly Faun topics ⬇


The Must-Read Publication for Creative Developers & DevOps Enthusiasts

Sign up for FAUN


Medium’s largest and most followed independent DevOps publication. Join thousands of aspiring developers and DevOps enthusiasts Take a look

By signing up, you will create a Medium account if you don’t already have one. Review our Privacy Policy for more information about our privacy practices.

Check your inbox
Medium sent you an email at to complete your subscription.

Erno Aapa

Written by

Erno Aapa

Co-Founder of @polarsquadhq, Creator of, DevOps enthusiast, public speaker, husband, and daddy! :)



The Must-Read Publication for Creative Developers & DevOps Enthusiasts. Medium’s largest DevOps publication.

Erno Aapa

Written by

Erno Aapa

Co-Founder of @polarsquadhq, Creator of, DevOps enthusiast, public speaker, husband, and daddy! :)



The Must-Read Publication for Creative Developers & DevOps Enthusiasts. Medium’s largest DevOps publication.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store