Hi! I’m a DevOps engineer and software dev who loves self-hosting things.
That’s awesome! I love his Helm chart. It’s the most impressive Helm library I’ve ever seen. I maintain a bunch of charts and I exclusively use his library chart :)
I just mentioned in a response to @seang96@exploding-heads.com, but I feel like deploying a separate nginx is probably cleaner, I just didn’t want another SPOF that I could break at some point in the future.
Yep I’m still working on a helm chart. Currently, each service is deployed with the bjw-s app-template helm chart, but I’d like to combine it all into a single chart.
The hardest part was getting ingress-nginx
to pass ActivityPub requests to the backend, but we settled on a hack that seems to work well. We had to add the following configuration snippet to the frontend’s ingress annotations:
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($http_accept = "application/activity+json") {
set $proxy_upstream_name "lemmy-lemmy-8536";
}
if ($http_accept = "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") {
set $proxy_upstream_name "lemmy-lemmy-8536";
}
if ($request_method = POST) {
set $proxy_upstream_name "lemmy-lemmy-8536";
}
The value of the variable is $NAMESPACE-$SERVICE-$PORT
.
I tested this pretty thoroughly and haven’t been able to break it so far, but please let me know if anybody has a better solution!
+1 for Authentik! It definitely has a steep learning curve, but once you get comfortable with it, it’s really versatile. The integration docs have tons of walkthroughs for setting up Authentik with different apps which is epecially helpful when getting started.