Newbie Needing Basic Documentation For Installing Apps; Guacamole


Hello, I am new to balenaOS/cloud and found the user-friendliness and manageability out of the box to be fascinating but I am having trouble finding exact documentation for setting up a new application, or am not looking in the right places.

So far, I have “piHole” up and running smoothly no issues, but I would like to port or build another application that we use on site since the device has a lot of horsepower, specifically Guacamole. I understand balena operates using Docker but I am only familiar with BSD jails, and currently I have Guacamole running on a RaspberryPi2 with FreeBSD. I am also not too familiar with using GIT (no excuse, I know…) and just want to know what the proper steps needed to take a github project and make it work with balenaOS/cloud. If I need to learn Docker and GIT, that’s fine, I was just wondering where I should get started or if someone else has a similar guide even setting up a different application. Thanks!

Hello Wooty, welcome to the balena forums! :slight_smile:

The Get started with Raspberry Pi 3 guide may be a good place to begin and get more familiar with the process of deploying an app to the balenaCloud. That guide starts with a single-container app (a single Dockerfile), but an Apache Guacamole app (like PiHole) would most likely require or benefit from multiple containers. So after you got introduced to Dockerfiles, you would want to have a look at using multiple containers with a docker-compose file.

I see that Apache Guacamole’s docs have a chapter on running with Docker, which could provide a handy starting point:

The “official” Guacamole image on DockerHub seems to be available only for the Intel platform, but I see that someone else wrote a guide on compiling Guacamole for the Raspberry Pi:

By the way, depending on whether you have a stronger allegiance to the RPi or to Guacamole, you might be willing to consider an Intel device like the Intel NUC, which is equally well supported by balena:

Regarding git, while it’s very helpful to use some kind of version control system for software development, it doesn’t have to be git. The “get started” guide uses “git push” as the deployment method, but the balena CLI offers “balena push” as a powerful replacement that saves you the need of learning git. These docs have an overview of deployment with “balena push”:

Learning about Docker is also very helpful, but I’d say you don’t need to learn it beforehand – you can “learn as you go”, while developing the app and having fun with the platform. You can anticipate a bit of head scratching and some puzzles to solve, but we are here to help you along the way – just ask further questions and we’ll do our best to answer them!

This post probably includes everything I need to learn and move forward, and I appreciate taking the time out to add such an enlightening response. And this actually relieves me a little bit knowing I can learn as I go, which is actually how I approached Guacamole on FreeBSD/arm. Thanks again, I will read through all posted material first and will post back if I have any other questions.

On a side note: I am only referencing BSD use and targeting specific ARM platforms mainly because I work at a rural hospital, have a lot of control over what we can implement, and want maximum security in case I decide to put this on the edge of our network. (All facilities connect over a microwave network as well) I chose ARM for cost and architectural security and my growing familiarity however we/I am not against an NUC or VM. Also I noticed in a lot of the documentation I saw you can just download the zip (as I did) from the github page which is why I was wondering about git and actually building up an application.

Lastly, I cannot express how excited I got when I saw almost mandatory certificate authorization for remote web access, this means the world to me being able to manage these installs remotely and securely which is another main point I am going balena. My last two paragraphs were me rattling off, no response needed, thanks again!