What auth apps do you use ive seen authelia, authentik, keycloack but whats overall the best
I ended up at PocketID. Authentik (and I think authelia too) is good but way more complicated than what I needed for a homelab. A lot of people like VoidAuth, but i didn’t care for the visual style. Don’t think I ever tried keycloak.
my mates and i are also hosting pocketID. it’s solid stuff
Voidauth looks intresting. Thanks!
Developer of VoidAuth here; if you decide to give it a try let me know if you run into any issues during setup, or have any feedback!
I have been loving it so far and got immich and going to add others and under it soon.
Using VoidAuth here, really good software and documentation. Thanks for that piece of freedom !
I did try it out and its great! One issue i had is after logging in it says not found however
Any plans to support FreeBSD in the future? Or mainly focusing on a docker solution?
Same. I tried a few other options from F-Droid/Droidify and Aegis was the easiest for me.
Yep switched to aegis a year ago. Works great.
Authentik is great, super versatile, if not a bit of effort to get it set up initially
I used authentik first as it was suggested by a friend with whom we are sharing the vps, and so I kept using that also for another personal vps.
It is a good combination of robustness and flexibility for me, plus we needed a user dashboard or at least a list of apps. Custom workflows, blueprints and stuff were a bit of a pain to understand, so I just copy them between the two install I have because I keep forgetting how everything works. It’s also quite resource-heavy, so I might try something different in the future.
Its really stange seeing kanidm basically never mentioned in these types of threads dispite how perfect it is for selfhosting: great documentation, incredibly easy to get setup, easy to make a custom themed/setup auth page, lets users name themselves how they prefer instead of requiring “firstname lastname” (why does every service need a lastname when it never gets used?)
Authelia and authentik are cool but are way more complex then you need for authenticating a couple services and for me at least feel “bloated” for my usecase
Authentik
I love authentik
Now it needs no middleware. Just authentik and postgres
The ui is great, features are great, great api. Super easy to self host and manage
Open source, small dedicated team. Can’t ask for more
I use Stratum on android and GNOME Authenticator on Linux desktop
The best is pretty subjective and partially relies on what you need.
Keycloak is one of the most feature complete ones I think.
I’ve used authelia before and liked it, but it had a very bare UI and everything was done through config files which forced redeploys on changes. It wasn’t ideal for me.
I’m currently trying out voidauth. It’s got some more Ui features compared to authelia and can apparently also simulate some Active Directory queries to forward your users to third party tools for provisioning ( unless I saw that wrong, I haven’t tested any yet ).
Authentik looked nice, but I haven’t gotten around to checking that one out yet.
The one built in to Caddy for anything that doesn’t really have authentication. Everything else uses its own and i only have a couple services accessible outside the home.
Most everything is only accessible within my home and my guest wifi is on its own vLAN. Even then I’m the only person who actually uses most things that I setup.
I use authentik. It’s probably fairly easy to set up if you use their docker-compose, but I run it as rootless podman, which took a little work to get it converted to a quadlet pod. But now that it’s set up, it works great and handles a variety of self-hosted apps that use saml, oidc, ldap, and forward-auth. It’s one of the few options that handles all the different authentication types natively. I also set up passkeys and standard two-factor time codes.
There are some very helpful authentik youtube tutorials by Cooptonian.
Would you be willing to share that Quadlet? I also run rootless Podman on my main VPS and I’m approaching that point where I have enough services to justify a dedicated IDM solution.
authentik.pod [Pod] PodName=authentik PublishPort=9000:9000 PublishPort=9443:9443 PublishPort=3389:3389 PublishPort=6636:6636 authenik_db.container [Unit] Description=authentik_db Wants=network-online.target After=network-online.target [Service] Restart=always [Container] EnvironmentFile=.env Pod=authentik.pod ContainerName=authentik_db Image=docker.io/library/postgres:17-alpine AutoUpdate=registry Volume=authentik_db.volume:/var/lib/postgresql/data:Z Environment=POSTGRES_USER=authentik Environment=POSTGRES_DB=authentik [Install] WantedBy=default.target authentik_server.container [Unit] Description=authentik_server Wants=network-online.target After=network-online.target [Service] Restart=always [Container] EnvironmentFile=.env Pod=authentik.pod ContainerName=authentik_server Image=ghcr.io/goauthentik/server:2026.5 Exec=server AutoUpdate=registry Environment=AUTHENTIK_POSTGRESQL__HOST=authentik_db Environment=AUTHENTIK_POSTGRESQL__USER=authentik Environment=AUTHENTIK_POSTGRESQL__NAME=authentik Volume=authentik_media.volume:/data/media:U,Z Volume=authentik_data.volume:/data:U,Z Volume=authentik_templates.volume:/templates:U,Z [Install] WantedBy=default.target authentik_worker.container [Unit] Description=authentik_worker Wants=network-online.target After=network-online.target [Service] Restart=always [Container] EnvironmentFile=.env Pod=authentik.pod ContainerName=authentik_worker Image=ghcr.io/goauthentik/server:2026.5 Exec=worker AutoUpdate=registry Environment=AUTHENTIK_POSTGRESQL__HOST=authentik_db Environment=AUTHENTIK_POSTGRESQL__USER=authentik Environment=AUTHENTIK_POSTGRESQL__NAME=authentik Environment=AUTHENTIK_LISTEN__HTTP=[::]:9001 Environment=AUTHENTIK_LISTEN__METRICS=[::]:9301 Volume=authentik_media.volume:/data/media:U,Z Volume=authentik_data.volume:/data:U,Z Volume=authentik_templates.volume:/templates:U,Z Volume=authentik_certs.volume:/certs:U,Z Volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock:z [Install] WantedBy=default.target authentik_ldap.container [Unit] Description=authentik_ldap Wants=network-online.target After=network-online.target [Service] Restart=always [Container] Pod=authentik.pod ContainerName=authentik_ldap Image=ghcr.io/goauthentik/ldap:2026.5 AutoUpdate=registry Environment=AUTHENTIK_HOST=https://authentik.mydomain.com/ Environment=AUTHENTIK_INSECURE="false" Environment=AUTHENTIK_TOKEN=wowthisisquitethelongandsafetokenthatnoonewilleverhack [Install] WantedBy=default.target ````___`You a real one, much appreciated






