Eating your own dog food

The Portal ecosystem is more than the software that runs on the Portals themselves, it also consists of a bunch of administrative functions. Among others things, they

  • create, assign, upgrade, and remove Portals,
  • manage Portal resources,
  • monitor Portal health
  • accept and process payments,
  • receive and process app usage reports for revenue share.

Until now, these tools were accessed using a command line interface, but with increasing complexity I decided that it is time for something graphical.

There is the saying "Eat your own dog food", which means that you should use the products that you create. So the new graphical interface became a brand-new Portal app. And it really shows the simplicity Portal can provide if used correctly.

App Integration Overhaul

When developing a piece of software, the best way to make steady and sustainable progress is to work in small and self-contained increments. Each change should have a clear scope that is easy to reason about, to test, and to roll back if needed. Side effects should be avoided as much as possible. With the latest update, I did the opposite of that.

Smart Home and IoT

MQTT

Recently, we were made aware of some smart home appliances that use MQTT to talk to a backend in order to publish data or receive commands. This backend can be freely configured, it just needs a MQTT broker.

Peer-2-Peer Communication

It has been some time since our last update here on Patreon. For one thing, we have been busy with lots of smaller tasks - both technical and regarding business development - that do not really warrant a blog post. Some of them made it into our newsletters though. But another reason for the long silence is the next big feature which was a particularly tricky and time-consuming one: peer-2-peer communication.

Backup your Portal

This is a big one! Since from the start, we told everyone that Portal is in an early prototype stage. Your data is not safe, and it could get lost at any time. Technically, this is still the case, but now it is possible to download a full backup of all of your data whenever you want.

Shared Directories

⚠️ This feature is not backward-compatible. Your current Portal must be deleted, and you need to recreate it. Write us as soon as you are ready.

Most apps that you install on your Portal need to persist data in some way. There are currently two ways they can do that: a) they request a database on the Postgres instance that is running on the Portal or b) they mount a part of the Portal's filesystem.

Starting and Stopping Apps

Rationale

Running Apps on Portal is realized through docker-compose. When you install an app, the docker-compose.yml that contains all apps is rerendered and the process restarted. This causes docker-compose to pick up the new app and to pull it and start it.

However, until recently that meant that every app you have installed is running all the time. This limited the number of installed apps severely as the bottleneck was the Portal's RAM - 1GB with the current setup.

New features for the Portal App store

⚠️ If you own a Portal, restart it now, and it will upgrade itself. (Use the settings menu on the top-right.)

When we first designed the app store, we focused on building something that works quickly. It was always meant to be a first shot that would be extended or replaced at some time. We now felt compelled to address this task.

Getting rid of Registration and Login Views

We are continuously working on bringing more apps into our app store. But since we are using apps that were originally made for self-hosting, we often need to make some tweaks. In particular, we want the user to be able to open an app after installation without the need to go through a registration or login form. Each Portal is mainly a single-user platform so that would be quite confusing.