summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-17 23:32:34 +0300
committerPaul Buetow <paul@buetow.org>2026-04-17 23:32:34 +0300
commit91320c05ff476a86454ae8bc333009f82d377901 (patch)
treec9fca88eccaca03e0cb396e1059a3ce8d564c6ae
parentadda2a06298d04053324abd9a93656eee236c6a0 (diff)
frontends/relayd: route anki.f3s.buetow.org directly to NodePort 30800
Bypass Traefik for anki-sync-server to fix HTTP 303 stream failures. The Anki client maps zstd response body read errors to SEE_OTHER (303). This was caused by Traefik's HTTP proxy layer interfering with the binary zstd-compressed response bodies. Route directly to the anki NodePort like Jellyfin's 30096, which avoids the double-proxy issue.
-rw-r--r--frontends/etc/relayd.conf.tpl14
1 files changed, 14 insertions, 0 deletions
diff --git a/frontends/etc/relayd.conf.tpl b/frontends/etc/relayd.conf.tpl
index f850dd2..b8d7a24 100644
--- a/frontends/etc/relayd.conf.tpl
+++ b/frontends/etc/relayd.conf.tpl
@@ -34,6 +34,13 @@ table <f3s_jellyfin> {
192.168.2.122
}
+# Anki sync server NodePort (bypasses Traefik to fix zstd stream failures)
+table <f3s_anki> {
+ 192.168.2.120
+ 192.168.2.121
+ 192.168.2.122
+}
+
# Garage S3 API on f0/f1/f2 FreeBSD hosts (WireGuard)
table <garage> {
192.168.2.130
@@ -96,6 +103,9 @@ http protocol "https" {
<% } elsif ($host eq 'jellyfin.f3s.buetow.org') {
-%>
match request header "Host" value "<%= $prefix.$host -%>" forward to <f3s_jellyfin>
+ <% } elsif ($host eq 'anki.f3s.buetow.org') {
+ -%>
+ match request header "Host" value "<%= $prefix.$host -%>" forward to <f3s_anki>
<% } elsif ($host eq 'garage.f3s.buetow.org') {
-%>
match request header "Host" value "<%= $prefix.$host -%>" forward to <garage>
@@ -133,6 +143,8 @@ relay "https4" {
forward to <f3s_registry> port 30001 check tcp
# Jellyfin uses NodePorts (bypasses Traefik)
forward to <f3s_jellyfin> port 30096 check tcp
+ # Anki sync server NodePort (bypasses Traefik to fix zstd stream failures)
+ forward to <f3s_anki> port 30800 check tcp
# Garage S3 API on FreeBSD hosts
forward to <garage> port 3900 check tcp
}
@@ -152,6 +164,8 @@ relay "https6" {
forward to <f3s_registry> port 30001 check tcp
# Jellyfin uses NodePorts (bypasses Traefik)
forward to <f3s_jellyfin> port 30096 check tcp
+ # Anki sync server NodePort (bypasses Traefik to fix zstd stream failures)
+ forward to <f3s_anki> port 30800 check tcp
# Garage S3 API on FreeBSD hosts
forward to <garage> port 3900 check tcp
}