* web: bug / licenseStatus is not defined on initial render - Test if the licenseStatus is available before rendering the banner - The banner is rendered correctly when the status becomes available. The loading sequence is such that if the user reloads the page, the first attempt to render the license banner fails because the licenseStatus field is not yet populated; the result is an ugly `licenseStatus is undefined` on the console. Because the licenseStatus is a live context, when it is updated any objects that subscribe to it are scheduled for a re-render. This is why the system appears to behave correctly now. While this is invisible to the user, it's still undesirable behavior. Returning `nothing` requires that we remove the type declarations as return values from the renderers. Typescript's inferers do just fine. * fix some other small things Signed-off-by: Jens Langhammer <jens@goauthentik.io> --------- Signed-off-by: Jens Langhammer <jens@goauthentik.io> Co-authored-by: Jens Langhammer <jens@goauthentik.io>
What is authentik?
authentik is an open-source Identity Provider that emphasizes flexibility and versatility. It can be seamlessly integrated into existing environments to support new protocols. authentik is also a great solution for implementing sign-up, recovery, and other similar features in your application, saving you the hassle of dealing with them.
Installation
For small/test setups it is recommended to use Docker Compose; refer to the documentation.
For bigger setups, there is a Helm Chart here. This is documented here.
Screenshots
| Light | Dark |
|---|---|
![]() |
![]() |
![]() |
![]() |
Development
Security
See SECURITY.md
Adoption and Contributions
Your organization uses authentik? We'd love to add your logo to the readme and our website! Email us @ hello@goauthentik.io or open a GitHub Issue/PR! For more information on how to contribute to authentik, please refer to our CONTRIBUTING.md file.



