All posts

Why a homelab controller shouldn't ask you to log in

You already run the servers. An app that manages them should not need its own account, its own cloud, or a copy of your data. Here is the case for a pure client.

There is a particular irony in self-hosting. You went to the trouble of running your own servers so your stuff would stay yours, and then you install an app to manage them that wants you to make an account, log into someone else's cloud, and hand over a token so their backend can reach your boxes.

If the whole point was to keep things at home, the tool you use to run them should respect that too.

What a pure client means

A pure client talks directly to your services and to nobody else. There is no middle server, no account, no sign-up. The app on your device is the only thing in the loop.

  • Your credentials live on the device, in the system keychain, not in a company's database.
  • The connection goes from your phone to your server, over your LAN or your own tunnel, not via a third party.
  • Nothing about what you run, watch, or store leaves your control.

Why the account model should bother you

When an app makes you sign in, ask what the account is actually for. Sometimes it is genuinely needed. Often it exists so your setup can be tied to an identity, synced through their cloud, and counted. That means a copy of how you reach your servers, and sometimes more, ends up sitting on infrastructure you do not own.

For a tool whose entire job is managing private, self-hosted infrastructure, that is the wrong shape. It reintroduces exactly the dependency you were trying to avoid.

What to look for

  • Credentials stored on-device, ideally in the keychain or secure enclave, never on a remote server.
  • Direct connections, so traffic goes to your machines and not through someone else's.
  • No mandatory account to do the basic job.
  • Clear words about analytics, and the ability to run with none.

Convenience features that use a cloud can be fine when they are optional and clearly labelled. The line is whether you had a choice. A controller for your own homelab should start from the assumption that your data is yours, and make you opt in to anything that changes that, rather than the other way around.

Written while building Quartermaster, a native iOS app for self-hosted stacks.