For anyone else running lemmy on kubernetes-
Here is an IngressRoute CRD you can use, to leverage your built-in traefik reverse proxy.
Normally-
(ingress / ingressroute) -> (service) -> (nginx proxy) -> (lemmy / lemmy ui)
With this-
(ingress / ingressroute) -> (service) -> (lemmy / lemmy ui)
A slight optimization to better take advantage of the built in kubernetes functionality. (since, it already has a nginx and/or traefik instance running).
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: lemmy
namespace: lemmy
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`lemmyonline.com`) && (Headers(`Accept`, `application/activity+json`) || HeadersRegexp("Accept", "^application/.*") || Headers(`Accept`, `application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"`))
services:
- name: lemmy
port: http
- kind: Rule
match: Host(`lemmyonline.com`) && (PathPrefix(`/api`) || PathPrefix(`/pictrs`) || PathPrefix(`/feeds`) || PathPrefix(`/nodeinfo`) || PathPrefix(`/.well-known`))
services:
- name: lemmy
port: http
- kind: Rule
match: Host(`lemmyonline.com`) && Method(`POST`)
services:
- name: lemmy
port: http
- kind: Rule
match: Host(`lemmyonline.com`)
services:
- name: lemmy-ui
port: http
Just- make sure to replace your host, with the proper instance name.