| The smaller scale homelab/selfhosting people really need a better solution. I think open source developers do as well. What we really need is a small easy to set up solution that provides a clear way for us to integrate our app into it. My ideal would be something that * Supports ldap and OIDC * Can be deployed to docker using one compose file * Only needs to support hundreds of users (keep it simple, easy to deploy, and able to run on a raspberry pi) * Provides basic user management, I want to be able to put users into groups and (if the app supports it) use those groups for in-app ACL. If that service worked well in my homelab (a single-pc docker swarm that runs a few private web services like jellyfin) I'd very likely end up deploying it on my employers infrastructure. My employer is a small business with maybe ~30 users. I'm not sure how to convert something like that into sales though. Still, starting with an open-source solution that solves problems for the little guys often has a "trickle up" effect. Right now I'm looking towards https://github.com/sonicnkt/glauth-ui/ to solve that problem, but it's definitely not anywhere near there yet. |
I have it in production at work. Three instances, clustered (infinispan), running in docker containers orchestrated by kubernetes.
Each instance (pod) is upper-limited to 2gb ram (or 3, can't recall the details now).
It works very well and very reliably, serving about 750 users (as in, real people).
If you have 2GB to spare and a physical core, you can run keycloak with no problems at all.
After all, it all depends on the amount of traffic. Little traffic = little cpu load.
Don't dismiss keycloak because it's written in Java... Quite the contrary, you can tune the JVM to work with little memory (-Xms -Xmx iirc).
Ten years ago it was very common to see tips and tricks to make grails web apps work on as little as 64mb of ram on chap VPSes.