Introducing open fleets and self-submitted apps and blocks on balenaHub

We are excited to introduce open fleets on balenaHub. Now any ambitious edge developer can create an app or block, self-submit it to balenaHub, and share it with the entire world.

Introducing open fleets and self-submitted apps and blocks on balenaHub

We launched these changes as part of a Release Party. Now anyone can contribute edge and IoT apps to balenaHub or join an open fleet to add a device to an interesting project.

What’s a release party?

Every once in a while, we run a Release Party which brings multiple team members together to work on releasing a new feature. For Release Party #6, we are introducing open fleets and self-submitted apps and blocks to balenaHub.

We run Release Parties to challenge ourselves, celebrate the work we do together, and put a spotlight on how well we can collaborate as a remote, international team spanning multiple timezones.

What changed?

There are lots of details to go through, so here’s a quick list of the major changes and links to jump to the information you need. Get more details on:

Some background

Last year we introduced Fold for Covid, enabling anyone to put their devices to work to help scientists and doctors find a treatment for COVID-19. Almost 7,000 devices around the world contributed to the project. We learned a lot and it led to the foundation of creating balenaHub.

This experience was also the start of open fleets at balena. A few changes and a Release Party later, this technology is now open to any member of the balena community who wants to to turn their app into an open fleet.

Until now, we’ve been sourcing submissions to balenaHub and managing the addition of all the apps contributed by developers. We’ve now removed that process so that now anyone and everyone can add and manage their own apps and fleets!

Adding your app to the Hub is similar to creating a repo on GitHub or GitLab rather than submitting something to an ‘app store’; there’s nobody deciding if you can or can not store your code on those services, and there is nothing stopping you from putting your app on the Hub either.

What’s an open fleet?

An open fleet is a project that includes an open app where members can join by simply adding their devices (no balenaCloud account required for users just wanting to add a device). The owner of the open app maintains the fleet as an open, non-commercial project. Open fleets have no device limit, encouraging project owners to try and get more users to support and grow their projects.

A great example of an open fleet is Fold for Covid, where anyone is able to connect their device to it without creating a balenaCloud account, needing to push releases, or updates to their devices. Many other citizen science-type use-cases apply here as well, such as a fleet of devices that monitor heat/humidity sensors to manage the risk of forest fires, for example.

Now you can turn your app into an open fleet and encourage others to join it to support your project’s mission, test and get feedback about your app, or to learn what it’s like to be an IoT fleet owner.

Behind the scenes of open fleets

What you may not realize is that the ‘backend’ for balenaHub today is balenaCloud; each application on balenaHub has an associated application with a release on balenaCloud which is where the metadata for each application card is held.

The owners of these apps have marked them public in our API, which allows the information for each to be accessible without a balenaCloud login. This means everyone now has the ability to download an OS image for that application from the hub, and connect a device to join that fleet and download the software.

How do I join an open fleet?

Any app that you see on balenaHub is now an open fleet (and we encourage app owners to add more). Click on an app that you’re interested in and you’ll be taken to its app page.

Introducing open fleets and self-submitted apps and blocks on balenaHub

Users can now add their device to a fleet without having to log into balenaCloud, removing a lot of friction for users who just want to try a project out. However, using a project in this manner means only adding a device– build releases, OS updates, and other configurations are up to the app owner.

Introducing open fleets and self-submitted apps and blocks on balenaHub

From the app page, you can also learn more about the project (its repo), how many devices are on the fleet, a visualization of device locations, and more. If you want to try the project privately, you have the option to fork the project (via Deploy with balena).

LocalUI updates planned soon

We’ll be fast-following and working on a “local UI” for users who don’t have a balenaCloud account and want to manage their device. We’d like to design this so that each application owner can create a simple UI for their project to help fleet members manage their devices.

Open fleets are for non-commercial projects only

Open Fleets are free for use for non-commercial open source projects; if you want to use an existing Hub app for a commercial operation you will be required to create a balenaCloud account to manage it yourself.

How to self-submit your app or block to balenaHub

If you have an edge app that you’d like to contribute to balenaHub, you can follow these simple steps to convert it into an open fleet or block.

Creating an app or block on balenaCloud

Introducing open fleets and self-submitted apps and blocks on balenaHub

Inkyshot’s balena.yml is a great example.

Ensure the app is in working order, has a balena.yml file, including a reference to a logo and clear description of the app.

Make your app or block open in balenaCloud

Introducing open fleets and self-submitted apps and blocks on balenaHub
Go to your Application Settings, provide a GitHub repo link.

Introducing open fleets and self-submitted apps and blocks on balenaHub
Tag your application as an open fleet or block.

Introducing open fleets and self-submitted apps and blocks on balenaHub

Finally, set your application to public! As long as you provide the correct metadata via balena.yml, your project should show up on balenaHub.

For more details on contribution, see our Contribution guide on balenaHub.

Who owns the application once it’s submitted to balenaHub?

Your application belongs to you, but it’s submitted to balenaHub with the understanding that it’s an open source project. Like other projects that you will find on GitHub, it’s open to be forked and replicated, and open to contributions.

We’re just broadcasting it to our global community once it’s on balenaHub. If you’re operating an open fleet, you own the code and members of your fleet will download and use the build releases from your open app. Users can “fork” a copy and create their own open app.

How do I keep my application private?

If you want to use balenaCloud, Deploy with balena, and not make your app open, that’s completely fine as well. Your application will remain private and not be a part of balenaHub. On a project app page, click the fork button to add the project to your balenaCloud account.

If you are using balenaCloud for a commercial use case or aren’t ready to share your project with the world yet you can keep your application private by not changing the settings of your app in your balenaCloud account.

Try it out

We encourage you to try adding your devices to interesting projects, fork projects that you want to customize and transform into unique open fleets, and to contribute your own original open fleets and blocks.

If you need help with your app, turning it into an open fleet, or want to tinker on some balenaBlocks, get in touch on our Forums. We’re looking forward to helping our community out. The more we can test these new changes, the more we’ll learn and find ways to improve the whole experience.

Our product improvements are based on the feedback we get from all of our users. We’re very excited to hear what you all think of open fleets and see what new ideas that you all come up with.

See you at the next Release Party!