← alle Posts

16. Juli 2026 English Homelab

One for All: SSO in the Homelab with Authentik

The road from password sprawl to single sign-on – and what I learned along the way.

I host a whole pile of services in my homelab. Photo management, files, document archive, media server, recipes, networking bits… the list is long and keeps growing.

Until now, all of those services have run largely independently of each other.

For me personally, the login handling was never much of a problem: my password manager (1Password) keeps the credentials, fills them in automatically, done. That’s a lot of services, a lot of accounts and a lot of passwords – but the handling is seamless and I barely notice it.

But: I’m not the only user. Some of the services are also used by Johanna, or by friends and family. A few small examples:

And that’s where the problem starts: for every one of these services, each user needs their own account and their own password. Add the respective (sub-)domain on top, and every service comes with its own little „how did that go again?“ package…

But I don’t want to ask anyone to memorise separate credentials for the recipe database, the cocktail menu and the image editor. And besides: when I set up a new service, I want to be able to enable it for Johanna or anyone else with a single click – without a new account, without a new password, without „I’ll send you the credentials on WhatsApp“.

The solution has been around for decades and almost everyone uses it daily without thinking about it: Single sign-on (SSO). Log in once, centrally, then use every service you’ve been granted. Exactly what „Log in with Google/Apple/Facebook“ does – only self-hosted, on my own services, and without a cloud giant reading along.

Authentik as the bouncer

After some research I went with Authentik – a self-hosted identity provider that has been running on its own subdomain here ever since, playing bouncer for (almost) all my services.

Why Authentik?

On the user side, everyone gets their own app overview: after logging in you see exactly the services that have been enabled for you – as clickable tiles.

The downsides

Alongside all the positives, there are drawbacks too:

A quick word on the alternatives I looked at (and rejected):

Lessons from practice

By now a good three dozen services sit behind Authentik – from photo management (Immich) through Proxmox to my NAS logins (Synology).

A few things I learned along the way (each of which cost me somewhere between ten minutes and an entire evening of my life):

  1. Check the redirect URI. Character by character, without a trailing slash (or with one – depending on what the service happens to send), matching set to „strict“. Nine out of ten errors during setup were redirect URIs that didn’t match exactly. Tip: just read the redirect_uri= parameter from the address bar in your browser to see what the service actually sends, instead of relying on the docs alone.
  2. Set only a signing key on the provider, no encryption key. Most services can’t do anything with encrypted tokens and acknowledge this with such wonderful error messages as „found 5 parts“. That was my second most common stumbling block.
  3. Align email addresses first, then enable SSO. Most services match the SSO login to existing accounts via the email address. Awkward for me, since in the past I usually set up my accounts in the format service@my-domain. If you don’t align that beforehand, you end up with two accounts afterwards – the old one with all the data, and a fresh, empty SSO account. Some services match on the username instead. A look at the docs beforehand is helpful here…
  1. Always keep a break-glass account. On every service I keep the local admin login in place. When Authentik (or DNS, or the reverse proxy…) plays up, I don’t want to be locked out completely – especially not on the DNS server or the monitoring.
  2. Not every service can (or may). Stirling-PDF put native OIDC behind a paid licence 👎, on Uptime Kuma the OIDC support has been stuck in a vibe-coded pull request for months, and Umami simply rejects SSO upstream. For cases like these: put forward auth in front of them, or deliberately let them run in isolation.
  3. Forward auth and API clients don’t get along. Mobile apps that access a service via API key trip over the login redirect. Those run over VPN straight to the service here instead. Works fine – but good to know before you start wondering.

Conclusion

Was all this strictly necessary? For me alone: probably not, 1Password would have carried on doing the job just fine.

But as soon as more than one person uses the homelab, things look rather different. „Just log in with your account and you’ll see everything that’s been enabled for you“ is a fundamentally better onboarding than „let me create an account for you on five services and send you the passwords“.

The rollout isn’t 100% finished – a few services are still waiting to be hooked up to forward auth, and the onboarding for all users is still pending. But the foundation is in place.

That moment when you enable a freshly set-up service for all users with a single group binding – without creating a single new account – is pretty satisfying.


This post was originally published in German on July 13, 2026.
The original post can be found here: Einer für alle: SSO im Homelab mit Authentik.

Authentik Bar Assistant Break Glass English Forward Auth Homelab Immich Mealie OIDC Proxmox Self-Hosted Snapotter SSO Uptime Kuma

Kommentar schreiben

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert. Kommentare erscheinen nach Freischaltung.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.