authentik or Authelia for Traefik forward auth: which fits your setup
If you are protecting several apps behind Traefik with a small team or homelab, the decision is how much identity provider you want to run. Authelia is the lighter option: an Apache-2.0 companion that Traefik supports, where the proxy asks Authelia whether each request may pass and unauthenticated users land on its login portal. authentik is the heavier option: its proxy provider runs through an embedded outpost in the server container, with a worker container and PostgreSQL holding all configuration and data. Pick Authelia when forward auth is the whole job and you want a small footprint. Pick authentik when you want an admin UI and a fuller identity provider behind the same proxy.
Four conditions settle most cases. First, the user backend: Authelia reads users from a YAML file with hashed passwords or from an LDAP directory such as FreeIPA or Active Directory, while authentik keeps users in its own database and also offers LDAP as a provider for other systems. Second, second factors: Authelia documents one-time passwords, security keys, passkeys and Duo mobile push, so confirm that authentik's flows cover the methods your users need. Third, the protocols your apps speak: Authelia is OpenID Connect certified for several profiles but has no SAML support, so any app that needs SAML points you to authentik. Fourth, tolerance for PostgreSQL: authentik requires it, while Authelia can store its data in PostgreSQL, MySQL or local SQLite.
Before you choose, list each app and whether it needs forward auth only, OIDC, or SAML. Check the Traefik configuration for your chosen option in its documentation, and confirm the HTTPS requirement, since Authelia only works for sites served over HTTPS and declines plain HTTP. Budget resources against the authentik Docker Compose guide, which calls for at least 2 CPU cores and 2 GB of RAM for test and small-scale production setups, and confirm your own load before sizing. Also plan the upgrade path: authentik's 2025.10 release notes warned of roughly 50% more PostgreSQL connections after upgrading, so review database capacity before you update. The wider comparison of authentik, Authelia and Keycloak covers the same trade-offs for larger estates.
How authentik and Authelia compare on forward auth parts
This table sets authentik's proxy outpost against Authelia's forward-auth companion across the parts that decide a Traefik setup: licensing, components, user backends, second factors, protocols, storage and release cadence. Read each row against your own apps and identity source, because the two products make different trade-offs on protocol breadth and operating footprint.
| Area | authentik | Authelia |
|---|---|---|
| License and edition | Core is MIT licensed, but code under authentik/enterprise needs a paid Enterprise subscription for production use | Apache-2.0 licensed with no paid edition described in the supplied facts |
| Traefik integration model | Proxy provider runs through an embedded outpost in the server container, configured inside the admin UI | Companion service that Traefik consults through forward auth on each request; Traefik is on the supported proxies list |
| Components to run | Server container with embedded outpost, worker container and PostgreSQL | Authelia service with a storage backend and a user backend; confirm your exact deployment layout in the Authelia docs |
| User backends | Built-in directory plus LDAP and other provider types; Entra ID and Google Workspace sync are Enterprise-only | LDAP directories such as OpenLDAP, FreeIPA or Active Directory, or a YAML file of users with hashed passwords |
| Second factors | Confirm the factor list for your version in the authentik documentation before relying on it for a specific method | One-time passwords, security keys and passkeys, and Duo mobile push, plus self-service password reset |
| OIDC support | OAuth2 and OpenID Connect provider for apps that speak OIDC natively | OpenID Certified for the Basic, Implicit, Hybrid, Form Post and Config OP profiles |
| SAML support | Supported as a provider type | No SAML support listed in the Authelia support chart |
| Storage | PostgreSQL holds configuration and data; no Redis since the 2025.10 release | PostgreSQL, MySQL or local SQLite for preferences, second factor registrations and logs |
| HTTPS requirement | Confirm the HTTPS and cookie settings for your proxy setup in the authentik documentation | Works only over HTTPS because session cookies require it; plain HTTP is not supported |
| Release cadence | Current release 2026.8.4 (October 14, 2026); 2026.5 and 2026.8 lines receive security fixes | Current release v4.39.28 (September 17, 2026); confirm the patch policy in the release notes |
| Enterprise-only items | mTLS, privileged access management, password history and enhanced audit logging sit outside the free core | Not applicable; no paid tier appears in the supplied facts |
How Traefik hands each request to authentik or Authelia
Both products use the same basic pattern: Traefik sends each incoming request to an auth service before the backend app sees it. If the request has no valid session, the user is redirected to a login portal, and once a session exists the request passes through to the app. The difference lies in where that auth service runs and what it has to be paired with. In authentik, the proxy outpost is embedded in the server container, so the same deployment that serves the admin UI and the login flows also answers forward-auth checks. In Authelia, the server is a separate companion service that the proxy asks on every request, so you run and route it as its own component alongside Traefik.
Authelia adds a hard constraint that changes how you plan the edge. Its session cookies require HTTPS, and the project declines to support plain HTTP, so every protected site and the Authelia portal must sit behind a valid TLS certificate before you test anything. Authentik's outpost integration does not carry that same stated requirement in the supplied documentation, but you should still serve it over HTTPS for session security. Plan certificate issuance and the public hostnames for the login portal first, because they affect every router you define.
The exact Traefik middleware configuration differs for each project, including how forwarded headers, the verification endpoint and the redirect behavior are declared. Do not copy a snippet from a blog or an older guide. Check the current authentik provider and proxy outpost documentation, and Authelia's Traefik integration guide, against the versions you plan to run, then test an unauthenticated request, a logged-in request and a logout in a non-production environment. Record which headers reach your backend, because apps that trust identity headers depend on that behavior.
What changes the result for a homelab or small team
Six questions decide whether authentik or Authelia fits a Traefik setup. Each one changes the answer only under specific conditions, so check them against your user base, apps and upkeep capacity before you pick.
Where user accounts live
Authelia checks first-factor passwords against an LDAP directory such as FreeIPA or Active Directory, or against a YAML file of users with hashed passwords. If your users already sit in LDAP, Authelia can use that directory directly. If you need a self-service admin UI for creating users, groups and flows, authentik provides one, and that matters most when someone other than you manages accounts. Confirm which user store your directory setup needs before you commit.
Which second factors you need
Authelia supports one-time passwords, security keys, passkeys and Duo mobile push. If your policy requires passkeys or Duo push specifically, verify that the exact method and your Duo setup match what you plan to enforce. Check authentik's current factor options against the same list, because a requirement for a particular method can decide the choice on its own.
Proxy protection or real OIDC and SAML login
Forward auth protects any HTTP app without changing it, which suits dashboards and tools with no login of their own. Apps that speak OIDC or SAML natively, such as Grafana, Nextcloud or Jellyfin, get cleaner single sign-on through a full identity provider. Authelia is OpenID Certified for several OIDC profiles and lists no SAML support, so SAML-only apps point toward authentik. Inventory your apps by protocol before deciding.
Whether PostgreSQL is already running
authentik stores all configuration and data in PostgreSQL and runs a server container plus a worker container, so it expects a database you can back up and upgrade. Authelia can store its data in PostgreSQL, MySQL or local SQLite, which makes a single-host homelab simpler to start. If you already operate PostgreSQL with backups, authentik adds little new operational load. If you do not, factor in the cost of learning to run it.
Expected user count and external users
A household or small team with a few internal users can run either tool on modest hardware. authentik's Compose guide calls for at least 2 CPU cores and 2 GB of RAM and positions Compose for test setups and small-scale production. Enterprise licensing for authentik is priced per user, with a separate rate for external users, so count guests and partners as well as staff. If external users or Entra ID and Google Workspace sync are needed, confirm which features require the paid edition.
How often you can apply upgrades
authentik publishes versions named by year and month, and its security policy lists specific lines that receive security fixes, with advance notice of security releases. Authelia is a single project with its own release cadence. Both need upgrades on your schedule, since an SSO server sits in front of every app. If you cannot test and apply updates within a short window, weigh the lighter Authelia footprint against the upgrade work authentik's more complete stack requires.
Which option fits which situation
This is the setup Authelia was built for. You run Traefik in front of a handful of services, you have one owner, and your users fit in a YAML file or an existing LDAP directory. Authelia acts as the companion that Traefik asks about each request, sends unauthenticated visitors to its login portal, and handles one-time passwords, security keys, passkeys and Duo push as second factors. Its storage can be local SQLite, which keeps the moving parts small.
- Fewer components: Authelia runs as a single service that Traefik consults through forward auth, with no separate worker or database server required for a small install.
- File-based users: Accounts can live in a YAML file with hashed passwords, so there is no directory to operate.
- Second factors: One-time passwords, security keys, passkeys and Duo mobile push are documented options.
- Requires HTTPS: Authelia only serves sites over HTTPS because its session cookies need it, so plan certificates before you start.
- Condition that changes the answer: If you later need a graphical admin console for many users, or SAML for applications that do not speak OIDC, authentik's broader provider list is the better fit.
Before committing, confirm which second factors and user backend your own Traefik version and Authelia release support.
This fits a small IT or platform team that manages a growing set of internal applications and wants administrators to create users, groups and applications from a web interface. authentik provides an admin UI, OAuth2 and OpenID Connect, SAML, LDAP and proxy providers, and its proxy outpost can protect applications that have no login of their own. The core is MIT licensed, so the free edition covers the protocols most small teams need.
- Admin console: Users, groups, flows and providers are managed from the browser rather than from configuration files.
- Protocol coverage: OIDC and SAML can be used side by side for different applications, which Authelia does not offer because it has no SAML support.
- Proxy outpost: Apps without native login can sit behind authentik, similar in purpose to Authelia's forward auth.
- Heavier footprint: The server and worker containers need PostgreSQL, and the Docker Compose guide positions a host with at least 2 CPU cores and 2 GB of RAM for small-scale production.
- Condition that changes the answer: If your apps only need OIDC and you prefer a minimal service with no database to upgrade, Authelia remains simpler. If you need Entra ID or Google Workspace sync, mTLS or other Enterprise features, those sit in the paid edition and need a subscription for production.
Check the free edition against your exact provider list before you assume SAML or LDAP coverage.
This applies when your user accounts, groups and password policy already live in FreeIPA or Active Directory. Authelia can authenticate users directly against an LDAP directory, and its documentation names FreeIPA and Microsoft Active Directory as supported sources, so you keep one source of truth for accounts. authentik can also federate with LDAP, so both options can reuse what you already run. The choice then comes down to the protocols and the admin model you want on top.
- Single source of truth: Accounts stay in the directory, so disabling a user there also removes their forward-auth access.
- Authelia path: Authelia reads users from LDAP and adds its own second factors and portal in front of Traefik, with no separate user store to maintain.
- authentik path: authentik reads LDAP sources and adds provider types for OIDC, SAML and proxy access, which helps if applications need more than forward auth.
- Directory ownership: Your directory team may already manage schema and replication, so keep changes to group membership in the directory rather than in the SSO tool.
- Condition that changes the answer: If your organization wants the directory itself to handle Kerberos or certificates for Linux, that is a FreeIPA question, not an SSO one.
Confirm with your directory administrators which LDAP attributes and group structure the SSO tool will read, and test a disabled account before go-live.
Resource needs and what authentik's stack adds
The resource gap between these two options is structural: authentik runs as a server container with an embedded outpost, a worker container for background tasks and PostgreSQL, while Authelia is a single companion service that stores its data in PostgreSQL, MySQL or a local SQLite file. authentik's Docker Compose guide calls for a host with at least 2 CPU cores and 2 GB of RAM and positions Compose for test setups and small-scale production, so that is the floor to plan around, not a sizing result for your traffic. Before you commit, confirm which database engine you will operate, because authentik always needs PostgreSQL while Authelia can run on SQLite for a single-host lab.
The authentik 2025.10 release notes state that authentik no longer uses Redis at all, moving caching, tasks, sessions and WebSocket functions to PostgreSQL. That removes one container from the stack, but it shifts load onto the database, and the release notes warn of roughly 50% more PostgreSQL connections after upgrading. If you already run an authentik release from before 2025.10, check your PostgreSQL max_connections headroom and connection pooling before you upgrade, and confirm the current figures against the release notes for the version you plan to deploy. Teams that do not already operate PostgreSQL should treat it as a new backup, patch and monitoring responsibility.
Measure rather than estimate. In a test deployment behind your Traefik instance, record idle and peak memory for each authentik container and for Authelia, along with PostgreSQL connection counts during a normal login burst, a scheduled sync and a restart of the proxy. Run the same test with your real number of protected applications and users, because forward-auth checks happen on every request to a protected route. The output tells you whether a small host is enough and which database settings need tuning, and it gives your quote request a concrete basis for hosting and operating effort.
How to test both options on your own Traefik setup
This sequence puts one non-production app behind Traefik with each option so you can observe redirects, sessions, second factors, user backends, resource use and upgrade effort on your own hardware before you commit. Each step ends with a check you can record and compare.
Confirm the supported release lines first
Before installing anything, open the authentik and Authelia GitHub releases pages and the authentik security policy, and note which release lines currently receive fixes and which version is the latest. Record the exact versions you will test, because the upgrade step later depends on that choice. The step is done when you have a written list of two versions, one per product, with the date you checked them.
Stand up a Traefik lab with one test app
Run Traefik and one low-risk internal app (for example, a static web page) on a host you control, using a test hostname with a valid HTTPS certificate. Authelia only works over HTTPS because its session cookies require it, so an HTTP-only lab will not tell you anything useful. The step is done when you can reach the app directly over HTTPS and Traefik routes it without any authentication.
Deploy authentik and Authelia side by side
Deploy authentik with its server, worker and PostgreSQL containers, and wire a proxy provider to the test app through the embedded outpost. Then deploy Authelia as a separate forward-auth companion and point the Traefik middleware at it. Keep the two setups in separate stacks so you can switch between them without rebuilding the lab. The step is done when each stack protects the test app independently and you can switch the protected route between them.
Test redirects and session behavior over HTTPS
Open the test app in a private browser window and confirm that an unauthenticated request is redirected to the login portal of each product. Log in, close and reopen the browser, change session timeouts if your configuration allows it, and check whether the session survives and whether logout clears access on the app. Repeat with a second app on a different subdomain to see how the session cookie behaves across hostnames. The step is done when you have written down the redirect target, session length and logout result for each product.
Register a passkey or one-time password
Sign in as a test user and enroll the second factor you intend to use in production, such as a security key, passkey or one-time password, in each product. Authelia lists one-time passwords, security keys, passkeys and Duo mobile push, so confirm which of these your chosen configuration supports. Then sign out and sign in again to confirm the factor is required. The step is done when the factor is enforced on a fresh login in both products and you have noted any extra setup steps.
Test the user backend you actually use
Connect each product to the user source your organization really runs, whether that is an LDAP directory, Active Directory, FreeIPA or a file of users, and sign in with several real accounts including one that should be denied. Check group membership handling, password changes and what happens when a user is disabled in the source. Confirm the backend choice against each vendor's documentation rather than assuming it. The step is done when a permitted user gets in, a denied user does not, and a disabled account loses access.
Measure memory and PostgreSQL connections
While the test traffic runs, record the memory each container uses and, for authentik, the number of PostgreSQL connections, using your container runtime's stats and a query against the database. Note that the authentik 2025.10 release notes warned of roughly 50% more PostgreSQL connections after upgrading, so compare baselines before and after any upgrade. Repeat the measurement under a modest load of several concurrent logins. The step is done when you have a table of idle and loaded memory and connection counts for each product, labeled with the versions tested.
Rehearse the upgrade path for your release line
Upgrade the test deployment from the version you installed to the next patch or minor release on the line you plan to run, following each project's upgrade notes. Check that sessions, enrolled factors and user bindings survive, and that the test app still works afterward. Keep a backup of the PostgreSQL database taken before the upgrade so you can restore it if needed. The step is done when the upgrade completes without losing test configuration and you have a short written runbook for the production upgrade.
Questions buyers ask before choosing forward auth
Is authentik's free edition enough to protect apps behind Traefik?
For many small setups, yes: the MIT-licensed core includes proxy providers and the embedded outpost, so you can place applications behind Traefik without a paid subscription. The paid Enterprise edition is required for code under the enterprise directory, which covers features such as Entra ID and Google Workspace integrations, mTLS client certificate authentication and privileged access management. Check that the features you need sit in the free core before you assume the free edition is enough. The license file in the authentik repository is the source to confirm against. If you need enterprise features or vendor support, the subscription is a separate line item from any implementation work.
Can Authelia act as an OIDC provider for applications?
Yes, Authelia includes an OpenID Connect provider and is OpenID Certified for the Basic, Implicit, Hybrid, Form Post and Config OP profiles. That makes it workable for applications that can speak OIDC directly, such as some dashboards and developer tools. Its main job remains forward auth, so apps that need broad OIDC features, many clients or fine-grained administration may fit better on a full identity provider. Confirm the specific OIDC client settings your applications need against Authelia's OpenID Connect documentation before you commit.
Does either option need SAML for this setup?
Only if an application requires SAML. authentik supports SAML as a provider type, while Authelia's support chart lists no SAML support. For a Traefik setup that protects web apps at the proxy layer, forward auth does not need SAML at all. If one or more applications only accept SAML, authentik is the option that covers that case within the same product, and you would plan that integration as a separate step. Inventory your applications first, since the answer decides the platform more than any other factor.
What does the setup involve, and can a small team do it alone?
A small team with Docker and Traefik experience can run either option, but the work differs. Authelia is a companion service with a YAML configuration, a user backend (a file or LDAP directory) and a database for second factor registrations and logs, which it stores in PostgreSQL, MySQL or SQLite. Authelia requires HTTPS for its session cookies, so certificates and DNS must be right from the start. authentik runs a server and a worker container with PostgreSQL and manages configuration through an admin interface. Its Compose guide targets a host with at least 2 CPU cores and 2 GB of RAM for test and small-scale production. Plan time for certificate handling, testing each protected route and documenting the access rules.
What does an outside implementation pay for, and what drives its cost?
An implementation partner is paid for the written scope: planning the access model, deploying the chosen option, connecting the user backend, configuring Traefik routes, hardening, testing and handover documentation. Costs rise with the number of applications, the complexity of each route, the number of user backends, the number of second factor methods, and the amount of testing and documentation required. DeployOpen does not publish a price list, and most engagements are fixed-scope, so the quote follows from the agreed scope. Ask for the deliverables, which applications are in scope, what testing is included, and what ongoing support is excluded.
How hard is it to switch from Authelia to authentik later?
Switching is manageable when the change is scoped carefully, but it is not free. Both options sit in front of applications through Traefik, so route definitions and middleware references change, and each protected application must be retested. User data does not move automatically: Authelia users come from a file or LDAP directory, while authentik keeps its own accounts unless you connect it to an external source. Second factor enrollments usually need to be re-registered by users. Document your current routes and user sources before choosing, so a later move is a planned project rather than an emergency.
Do enterprise features such as Entra ID sync matter for this setup?
They matter only if your users already live in Microsoft Entra ID or Google Workspace and you want their accounts and groups mirrored into the proxy login. The pricing page places Entra ID and Google Workspace integrations in the Enterprise edition, which is billed per user, with a per-user rate for internal users and a separate rate for external users. For a homelab or a small team with a local user list, the free core is usually enough. For a team with an existing Entra ID tenant, the sync can save manual account work and reduce offboarding risk, so price it against the subscription and the implementation scope before deciding.
What switching later costs and how to limit it
Moving between a forward auth companion and a full identity provider is never just a proxy change. Authelia sits in front of Traefik and answers each request through the forward-auth middleware, so its users, second factor registrations and session policy live in Authelia's own storage. authentik's proxy outpost also protects apps, but the identity records, flows, groups and enrolled authenticators live in authentik's PostgreSQL database. Every app that uses OpenID Connect also holds its own client ID, client secret and redirect URIs, which must be recreated against the new issuer. Passkeys and TOTP devices are usually bound to the relying party and domain they were enrolled under, so users may need to re-enroll their second factors. Confirm with each vendor how their current version handles credential export and whether a relying party change is needed.
Limit the cost by writing down three things on day one: the redirect URI pattern for every protected app, the stable user identifier your apps rely on (for example, the username or email claim that goes into an application's account table), and the user backend, whether a YAML file, LDAP directory such as FreeIPA or Active Directory, or a database-backed store. If user records come from LDAP, the directory stays the source of truth and switching providers mostly means reconfiguring the connection rather than migrating accounts. If users live only inside one identity provider, keep an export or a scripted provisioning path so accounts can be recreated. Also record which apps use forward auth only and which use OIDC, because forward-auth apps usually need only a Traefik middleware change while OIDC apps need client work.
Before committing, ask each vendor and test in your own environment: how user and device data can be exported or imported, whether the current Authelia and authentik releases support migration tooling, and what the upgrade path looks like between the versions you run. Run a pilot with one non-critical app and a test user, then time how long re-enrollment takes for a real user. Keep the documented redirect URIs, identifiers and backend choices in version control next to your Traefik configuration so a future switch becomes a planned change rather than a rebuild.
How DeployOpen helps you evaluate and implement
DeployOpen plans, implements and supports self-hosted open-source platforms inside your own infrastructure, so the choice between authentik and Authelia can be tested against your real Traefik setup before anything is committed. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
How we scope
- Inventory the applications that need protection, their login methods and which ones support OIDC natively.
- Define the user backend (LDAP, file-based users or an existing directory) and the required second factors.
- Agree in writing which Traefik routes, middlewares and HTTPS certificates are in and out of scope.
How we build
- Deploy the chosen option in a test environment alongside Traefik, using your own hostnames and TLS setup.
- Configure forward auth or proxy outposts, access rules and second factor enrollment for the agreed applications.
- Test login, logout, session expiry, failed-login lockout and OIDC flows against each protected app.
How we hand over
- Document the configuration, access policies, backup and restore steps and the upgrade path for each component.
- Walk your operations team through troubleshooting for redirects, cookies and proxy header issues.
- Deliver a written record of tests performed and open items that your team owns after handover.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer after handover.
- Retainers can cover version upgrades of authentik or Authelia and re-testing of protected applications.
- Confirm response expectations and included upgrade work in the written retainer scope before signing.

