Kerberos.io on BalenaCloud

Cédric Verstraeten
6 min readApr 12, 2020

As you might know or may have heard, Kerberos.io is a video surveillance system, that allows you to monitor your property using a video camera in just a few minutes. Kerberos.io onboards any camera and deploys to any Linux environment or container runtime; it's easy. As branded on the public website, Kerberos.io can be used by both the open source community as enterprises.

UPDATE; we have made a new video regarding the deployment of Kerberos.io on Balena Cloud, and soon will update this blog as well.

For (5) years the team of Kerberos.io has been working together closely with a highly motivated community, due to this a lot of focus was brought to the UX level of the solution, and this both integrated directly inside the Kerberos.io applications as the onboarding/installation proces. You will surprised.

Installation

When you decide to install Kerberos.io, you might wonder which video camera do I need, which compute engine do I need, and last but not least how can I connect everything together?

The good news is, as previously indicated, that it's pretty straight forward. There are plenty of ways of installing Kerberos.io to for example a Raspberry Pi, your local PC, a server, a docker container, a Kubernetes cluster, etc.

Kerberos Open Source installer to run on any Raspberry Pi.
Kerberos Open Source installer to run on any Raspberry Pi.

When installed Kerberos.io to your Raspberry Pi, or to your Docker host, you will land on an installation page that will guide you through the onboarding process. When you've everything setup correctly, the Kerberos.io interface is self-explaining, both for reviewing recordings as configuration.

Kerberos.io is a great solution and brings everything you need, what you could expect from a modern surveillance solution. Kerberos.io can be connected to Kerberos Cloud, which is its cloud based solution to centralise multiple Kerberos Agents (multiple installations), and execute intelligent processes such as machine learning (object recognition and pattern detection).

On the other hand Kerberos.io doesn't come with a tool that helps you maintaining your device or hardware. In the case of a Raspberry Pi, you can install Kerberos.io directly on the Raspbian OS image, install Kerberos.io using the KIOS (Kerberos OS) image, or run Kerberos.io as a container on a Docker host. After the installation you will need to go into the OS yourself to administer and monitor your system. This is where BalenaCloud comes into the picture.

Kerberos.io and BalenaCloud

Running Kerberos.io as a Docker image on BalenaCloud will give you some extra super powers, a list (but not complete) of features and functions:

  • Easy deployment
  • Easy updating to a new Kerberos.io version
  • Remote SSH (over VPN)
  • Public URL
  • Reboot and restarting of the device
  • Stopping and starting of Kerberos.io
  • etc..

After setting up your Balena deployment, and installing Kerberos.io, you can easily manage your device (with previously mentioned features and functions) through the BalenaCloud dashboard.

The main goal of Balena is not to handle only single installation, but it focuses on scalability as well. This scaling is what they call a fleet. A fleet could mean in Kerberos.io's context, multiple Kerberos agents (or multiple surveillance cameras).

That being said, for simplicity, we will focus in this tutorial to install a single Kerberos.io agent to a Raspberry Pi 3 using BalenaCloud.

Install Kerberos.io to BalenaCloud

Let's start with a good thing, it's super easy. As Balena relies on Docker container technology, we can simply bring the Kerberos.io Docker image to the BalenaCloud, and run it from there.

1. Registration

Start by creating your own account on BalenaCloud. The cool thing is that you can run your first 10 devices for free.

2. Application

Create a new application. In this step you have to specify a name, and a device/board on which you will run the application. Select the starter plan.

3. Device

Once your application is added you can add one or more devices. Select the add device button at the left hand side, a popup will open. On this page you get the chance to customise the Balena image (which you will need to flash to your device). You can specify the base image version (Balena OS), the ethernet/wifi configuration, etc.

Once ready you can click the Download balenaOS button.

4. Flash the image

Flash the image to your SD card using etcher. Once flashed you can insert the SD card into your device.

5. Device is online

After a couple of minutes your device should be listed on your BalenaCloud dashboard.

6. Install BalenaCLI

Before we can push the Kerberos.io Dockerfile to BalenaCloud, we need to install the Balena CLI. Depending on the host OS, you should select the right installation step (Windows, OSX, Linux).

https://github.com/balena-io/balena-cli/blob/master/INSTALL.md#executable-installer

7. Login to Balena CLI

Open your terminal or command prompt, and type balena login. Select the Web authorization option.

8. Query apps and devices

Now you are logged in you should be able to query your devices, using the balena devices command.

Next to that you can also query your applications using the balena apps command.

9. Create Dockerfile

Now we can finally create our Dockerfile (find contents below). At the first line of the Dockerfile, we will import our Kerberos docker image, using a sha256 hash reference.

The reason why we need to define a hash, is because the Kerberos Docker image is a multi-arch image. Unfortunately BalenaCloud cannot manage this, and so it expects to explicitly reference the right DDocker image for your device (in this case armv7hf, a Raspberry Pi 3).

FROM kerberos/kerberos@sha256:70a8b2791c8605ca6f8442b3d7892bb9bfc0789ab2f9f68911e247f7af50caedCMD [“bash”, “/run.sh”]

10. Push Dockerfile

Once you have created the Dockerfile, make sure you are in the same directory with your terminal, and write balena push <appname>. This will initiate the push process.

Once published you should see following command line, and when browsing to your Balena Cloud dashboard you will see your device being updated.

11. Open Kerberos.io Web interface

After your device has been updated with the latest image, you can open your browser and type in the IP address.

You've made it. You've got your Kerberos.io installation running in a few minutes, and got some Balena super powers behind your back. For example, you can turn on VPN, request a Public URL, etc. Have fun ;)

--

--

Cédric Verstraeten

Passionated by and evangelising technology throughout our universe. Developer Relations @microsoft and co-founder @kerberosio .