Manual application update for standalone devices

Our devices running Balena OS are connected to our custom device/application management server (not BalenaCloud or OpenBalena). Is there a way to configure the balena supervisor to pull from a private container registry and trigger it to update application container images via its API?

Hi @hucqym, openBalena does have it’s own registry which is “private” so I imagine it’s possible. First thing that comes to mind is the config.json file on your balenaOS installation, there is a registryEndpoint in there. Have you tried changing that? I’ll ask the team to see if they have any input.

Note that pairing balenaOS with a custom cloud (other than balenaCloud/openBalena) is most definitely uncharted territory. Can you share the reasons you went with that instead of openBalena?

Note that it’s balenaEngine the one pulling the images and not the supervisor.

Hi @tmigone thanks for your response. I have been following openbalena for a while now and it just doesn’t seem to be receiving as much love as the other projects. You folks have been building great products so I am certainly not complaining. I am doing some exploration around doing device deployment/management via Kubernetes.

Hey @hucqym ,

We’d be happy to answer any questions you have during your exploration. I’m interested to see why you think that openbalena does not have the same level of support though. On a related topic, is your exploration incompatible with openbalena?


hi @ntzovanis. Three primary criteria for me to use BalenaOS are:

  1. remote host OS update capability
  2. easy management of devices and
  3. easy deployment of application

While Balena cloud manages to do that, it is in a proprietary way that makes it difficult for us to adapt to a new use case (eg. if I want to deploy apps based on device roles but all managed within the same application).

I did get openbalena setup after a bit of jugglery and that process was not simple and clean. This is in line with what I would expect a beta product to be in (as the project rightly claims) but that has been the case for multiple years now with no clear timeline to transition. We would have to do significant amount of work on top of Open Balena for the above mentioned three aspects. And if we have to do it, we would rather build on a more widely supported open-source stack.

Here’s what I have done so far already leading to much easier operation for us:
Replace the stock supervisor on Balena OS with a custom container image by changing the pointer in supervisor.conf. The custom image runs a k3s agent that connects to a cluster master in the cloud. That’s it; we now have the device on a Kubernetes cluster with a wide gamut of tools available for management/deployment and also our knowledge.

Balena Cloud is a FANTASTIC product and I would easily recommend it to anyone whose primary focus is around app container development. But for our current plan, we must find an opensource alternative at this layer.