It can interface with ldap, but it cannot act as an ldap provider.
Keycloak only really acts as an OIDC/SAML provider. Whereas Authentik can do OIDC, SAML, LDAP, and more in a single app. It's just extremely rich.
I really like it because it has invites, which are extremely nice if you really want that form of fast onboarding.
Authentik is really feature rich, supporting the most out of any other provider.
The 3 killer features to me from authentik are:
- OIDC
- LDAP
- Invites
Of course there are more. But software that does all 3 of those is rare, and I was frustrated trying to find them.
To play devil's advocate, Authentik is very big and unwieldy in some ways. If you only need OIDC for your family, then maybe pocket id or void auth may be more suitable.
Specifically RADIUS with eap-tls auth for WiFi
You can run authentik as an LDAP server and then federate a seperate server that supports RADIUS eap-tls as federated to that. So if you are willing to run an additional software that connects to LDAP, you can make it do basically anything.
Does it work from behind the rathole?
Finally found this post after a few minutes of searching:
I came across this: https://github.com/cloudbase/garm , which is gitea (probably compatible with forgejo) actions using Incus containers/virtual machines, or on kubernetes directly.
It looks like it's possible to create an alternate implementation of the forgejo actions runner, which doesn't uses different methods of execution.
This is bad, but I don't really care.
On iOS, all browsers are forced to use the safari/webkit browser engine, which simply isn't as modern in terms of security as actual firefox. There is a reason this bug only affects firefox on iOS, and that's probably why.
Blame Apple. Not Mozilla.
Simple solution:
Script is hosted on git somewhere. (Doesn't have to be public, you can also pretty easily make git run over a small http or ssh solution). Or you can host a small http server or whatever.
Script runs git pull (or curl or etc). Sets an env variable to declare that git pull has been ran. Then reruns itself. The script sees the env variable and skips the pull/download/update + rerun phase, and carries on.
Also worth looking into, although they are probably overkill:
Ansible, chef, or similar configuration management tools. Chef mostly follows a pull based model. You have a central config somewhere and it pulls it onto machines.
Ansible mostly follows a push based model. You write a "playbook" on your local machine and it is executed on remote (maybe more than one remote machine) over ssh. Ansible is cool because the only thing you need on remote machines is python, which is usually preinstalled.
Both can be inverted however, to do push/pull instead but that'a how they work by default.
Python is pretty easy. I don't know about guix but nix makes it easy to unvendor python dependencies.
Rust and go are basically impossible. Guix is doing some work:
https://guix.gnu.org/en/blog/2025/a-new-rust-packaging-model/
But they are the only people (afaik) who are doing work for rust. Most of the other similar projects (gentoo, debian) have given up.
Go is even worse. I don't know of anything like antioxidant or cargo2guix (linked in article above) but for go.
Just start writing and upload chapters as lemmy posts.
https://en.wikipedia.org/wiki/Web_fiction
It's also possible to transition to an actual book if you want. Huh, the wikipedia page mentions that the martian by andy weir started out as web fiction. Cool.
My favorite pro is league of legends support.


It's possible to use curl and make it pretend it is contacting a domain when it is actually contacting an ip address.
That way the reverse proxy can still do it's thing.