Exploring the problem of many applications with many separate login systems, the birth of Authelia in 2016 as a lightweight forward authentication server focused on SSO and MFA, up to an honest comparison with Authentik, Keycloak, oauth2-proxy, and basic auth.

After episode 0 made sure the environment is ready — basic reverse proxy and forward authentication skills, Docker Compose installed, and the lab topology designed — in this episode we step back for a moment to answer the most decisive question: why do we need Authelia?
This question isn't just historical trivia. Understanding Authelia's background answers three practical questions: (1) what exactly is the problem with "many applications, many login systems" that we've been accepting as normal, (2) why the existing solutions — basic auth, oauth2-proxy, Authentik, Keycloak — don't always fit, and (3) when Authelia is the right choice and when it isn't. Like understanding the history of a technology, understanding Authelia's background means you can not only install it, but know why it exists.
Imagine your house has ten doors, and each door has a different key. The same guest has to carry ten different keys, and you have to remember ten different rules about who may pass through which door. That's the state of the typical self-hosted server:
123456. There's no shared standard.Authelia was born as an answer to this chaos: one entrance, one policy, one audit trail, and one place to enforce MFA.
The most traditional approach: every application has its own login system, its own user database, and its own policies. For one to three applications, this still makes sense. Beyond that, the management burden grows faster than its value.
The next step people often try: the reverse proxy (for example NGINX) adds a simple login layer with the auth_basic directive:
location / {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}The problems: credentials are sent as plain text (only base64-encoded, not encrypted — safe only over HTTPS), there's no MFA support, no user management, and all users typically share the same single username/password.
A more modern pattern: the proxy "hands over" the authentication decision to an external service. Authelia is one implementation of forward authentication — it checks the session, redirects to the login portal when necessary, then tells the proxy whether the request may be forwarded. This is the pattern that forms Authelia's backbone and that we'll dissect in episode 2.
The more services you homelab, the stronger the need for Single Sign-On (SSO): log in once, all applications open. SSO isn't an enterprise luxury — for the owner of one VPS with five applications, SSO is the humanly sensible way to manage identity.
Authelia was born in 2016 as a community-driven open-source project, licensed under Apache 2.0. Its vision from the start was simple yet firm: to be a lightweight authentication server focused on forward authentication — one thing done very well — rather than a giant platform trying to do everything.
Because it's written in Go, Authelia compiles into a single binary: it's lightweight to deploy, has low memory consumption, and there's no runtime to manage. This design came from the real needs of the self-hosting community: a solution that fits on small servers, is easy to deploy, and integrates seamlessly with existing reverse proxies.
bypass, one_factor, two_factor, deny policies).Remote-User, Remote-Groups, and others), so even applications without their own login system can recognize users.| Solution | Position | Strengths | Limitations |
|---|---|---|---|
| Basic auth (proxy) | Simplest layer | Zero configuration, universal | No MFA, no user management, shared credentials |
| oauth2-proxy | Forward auth via OAuth2 | Lightweight, OAuth2 integration | No self-hosted portal, not a full identity server |
| Authelia | Forward auth specialist | Lightweight (Go), SSO + MFA + access control, no telemetry | Not as complete an enterprise IdP as Keycloak |
| Authentik | All-in-one IdP | Complete portal, visual flow designer, feature-rich | Heavier, steeper learning curve |
| Keycloak | Full enterprise IdP | Most complete features, industry standard | Large overhead for homelab, complex configuration |
The essence of the comparison: Authentik and Keycloak are giant identity platforms — great, but they require significant resources and learning time. Authelia is intentionally narrow: it handles forward authentication, SSO, and MFA very well, and does almost nothing else. For homelabs and small businesses, narrow isn't a weakness — it's a strength.
authelia/authelia and a single binary.Authelia is a great fit for:
Tip
A good rule of thumb: if you have more than three reverse-proxied services and you're starting to get tired of remembering different passwords, it's time for Authelia. If you need multi-level approval flows, cross-organization federation, or strict enterprise compliance, look at Keycloak or Authentik.
In episode 1 we've understood the root problem Authelia solves: the chaos of many login doors — password fatigue, inconsistent policies, and security that depends on the weakest application. We traced the evolution of solutions from per-application authentication, basic auth at the proxy, up to the forward authentication pattern, and saw the birth of Authelia in 2016 as a lightweight forward authentication server focused on SSO, MFA, and access control — written in Go, licensed Apache 2.0, no telemetry. We also compared it honestly with oauth2-proxy, Authentik, and Keycloak.
Key takeaways:
In the next episode, episode 2, we'll dissect Authelia's architecture and core concepts: how the Authelia server, Redis, the user database, and the reverse proxy work together, the journey of a single request from the browser back with a session cookie, and key terms such as access control and policy. See you in episode 2!