If mobile apps have gotten so good with local sqlite databases, why can’t we hold ourselves to the same standards for servers?
Families or individuals should be able to self host their own software under a sub-domain, give limited access to its some folks and run the show from their servers.
A man can dream, So let’s dream for a bit..
In an ideal world, a customer orders a box with storage of say, a TB and a domain for a year as well.. Should have a small screen which boots up.
Something like Umbrel home.
On power on, the screen boots up. Post startup asks you to connect Ethernet and once done asks you to scan a QR code which will open a url for onboarding. Where it’ll ask
- Admin username & password
- Base domain or maybe tailscale setup for networking.
At this point , an authentication solution like authentik is setup which all the services will use going forward.
At this point a vpn, something like Tailscale should also be setup so that secure access is shared cross devices.
Now the installer suggests installing some apps like Jellyfin, omnivore, vaultwarden, WordPress etc.. & guides the user to start using that website on their other devices. The App Store clearly highlights which apps support SSO and which apps don’t.
Apps should not ask for any input from the user, similar to how mobile apps don’t ask anything from the customer while installing. Similarly during uninstalling, the app will ask if it wants to delete data along with it or not.
App Store listings should also come with companion app information along with QR codes for installing them on other devices. The App Store should also have feedback/reviews similar to Apple App Store.
If an app requests for file permissions, they should just pop up stating that they require access to a certain directory similar to how phones do it.
Stuff like backups are sorted so that if the device happens to be corrupted or non functional for some reason, you should be able to connect the phone & hit restore to the latest functional version. Even backups at a app level are sorted so that restoring to a particular checkpoint is seamless & can be done through admin panel.
Upgrading storage should be a breeze, similar to how you would plug in a 512 GB SD card and move data into it.
Support should be always at reach, maybe with a cost per consultation. So that if an elderly person is not able to log into her Jellyfin account, someone can take control & fix it seamlessly.
Autoscaling should be possible, the user should be able to purchase a new node and during onboarding select that this is a non leader node. The leader will be responsible for managing load.
Status
Settled on using Tipi running on a chromebox.
I’ve currently explored CasaOS, Umbrel, RunTipi and settled on Tipi. I’m also working on a tool to simplify all of this, a project I call Citadel.