openBalena services not successfully starting

Greetings…

I have been interested in playing around with openBalena over the past month or so. My environment is a System76 Meerkat running pop_os on my local network. I initially was able to get the server running after tweaking the mdns setup. However, couldn’t ever get any of my client boards to successfully connect. (a couple of Pi’s, a RevolutionPI and a Jetson Nano). I concluded this may have something to do with .local stuff and my network, so I decided to try the DNS route.

(Note that at this point I updated the OS on the openBalena box to 21.10 from 20.04)

I setup DNS entries on one of my personal domains to point to the “home network” IP of the openBalena box. I can ping all of the various services with no problem, i.e. api.openbalena.myactualdomain.com. I deleted the openBalena and docker images directories to get a clean start and after download ran…

./scripts/quickstart -U someemailaddr -P somepwd -d openbalena.myactualdomain.com

Config files all look fine, however after startup api, s3, vpn and registry all terminate immediately with exit code 255 (I think code is a docker thing). Haproxy, cert, redis and db all continue to run.

Running ‘./scripts/compose logs api’ only yields the line…
Systemd init system enabled

Running ‘./scripts/compose exec api journalctl -fn100’ doesn’t do anything since the container is not running

At this point I fell back to the openbalena.local route that worked before but now it is yielding the same result with the 4 services terminating immediately.

A few other things I’ve checked…

  • nothing running on base system using key ports
  • firewall is not active
  • can ping to all names from local laptop and server box (api, s3, etc)
  • the box is not running anything else so should have plenty of resources

So, any thoughts or other tips. Seems like there must be a way to determine why these services are terminating. Is 21.10 Ubuntu possibly an issue?

Thanks!!

We’ve not tested openBalena on 21.10, officially only on 18.04, although unofficially, it should work on 20.04.

In order for devices to join openBalena running with mDNS (.local) configuration and depending on the devices you are adding, you may need to make a tweak to some files on the devices, namely /etc/nsswitch.conf and /etc/mdns.allow:

$ mount -o remount r,w /

$ sed -i 's/hosts:.*/hosts:\t\tfiles myhostname dns mdns4 mdns \[NOTFOUND=return\]/g' \
    /etc/nsswitch.conf

$ cat > /etc/mdns.allow << EOF
.local.
.local
EOF

Some later balenaOS versions for some device types already have these settings in the OS.