apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: lemmy
spec:
entryPoints:
- web
routes:
- kind: Rule
match: Host(`threads.ruin.io`) && PathPrefix(`/api/`)
services:
- kind: Service
name: lemmy
passHostHeader: true
port: 80
- kind: Rule
match: Host(`threads.ruin.io`) && PathPrefix(`/pictrs/`)
services:
- kind: Service
name: lemmy
passHostHeader: true
port: 80
- kind: Rule
match: Host(`threads.ruin.io`) && PathPrefix(`/feeds/`)
services:
- kind: Service
name: lemmy
passHostHeader: true
port: 80
- kind: Rule
match: Host(`threads.ruin.io`) && PathPrefix(`/nodeinfo/`)
services:
- kind: Service
name: lemmy
passHostHeader: true
port: 80
- kind: Rule
match: Host(`threads.ruin.io`) && PathPrefix(`/.well-known/`)
services:
- kind: Service
name: lemmy
passHostHeader: true
port: 80
- kind: Rule
match: Host(`threads.ruin.io`) && Method(`POST`, `PUT`, `DELETE`, `PATCH`, `CONNECT`)
services:
- kind: Service
name: lemmy
passHostHeader: true
port: 80
- kind: Rule
match: Host(`threads.ruin.io`) && HeadersRegexp(`Accept`, `application\/(?:activity|ld)\+json`)
services:
- kind: Service
name: lemmy
passHostHeader: true
port: 80
- kind: Rule
match: Host(`threads.ruin.io`)
services:
- kind: Service
name: lemmy-ui
passHostHeader: true
port: 80
It seems to work correctly. Given that you’re not using kubernetes, you’ll need to do some translation work.