From 0eaee053f5307742bc1691fe7918113b1bf22a16 Mon Sep 17 00:00:00 2001 From: mani Date: Fri, 9 Jan 2026 00:19:14 +0100 Subject: [PATCH] Fix Caddyfile: Proper reverse proxy to Python filter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Caddyfile now: - Runs on port 8097 (external) - Proxies to xbox-filter:8096 (Python filter) - Python filter handles all Xbox detection and codec filtering - Python filter then proxies to jellyfin:8096 (internal) Architecture: Client :8097 → Caddy → :8096 Python Filter → :8096 Jellyfin Use Caddy if you need additional features like: - SSL/TLS termination - Rate limiting - Access control - Advanced routing Or use Python filter directly on port 8096 for simpler setup. --- docker/jellyfin-xbox-proxy/Caddyfile | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/docker/jellyfin-xbox-proxy/Caddyfile b/docker/jellyfin-xbox-proxy/Caddyfile index 47309e8..342321b 100644 --- a/docker/jellyfin-xbox-proxy/Caddyfile +++ b/docker/jellyfin-xbox-proxy/Caddyfile @@ -1,6 +1,10 @@ -:8096 { - # Forward all requests to Jellyfin - reverse_proxy jellyfin:8096 { +# Caddyfile for Jellyfin Xbox Codec Filter Proxy +# Simple reverse proxy to the Python filter service + +:8097 { + # All requests go to the Python filter + # The Python filter handles Xbox detection and codec filtering + reverse_proxy xbox-filter:8096 { # Pass through headers header_up Host {host} header_up X-Real-IP {remote_host} @@ -8,15 +12,12 @@ header_up X-Forwarded-Proto {scheme} } - # Handle Xbox codec filtering via external handler - @xbox_playback { - path /Users/*/Items/*/PlaybackInfo - method POST - header User-Agent *Xbox* - } + # Enable compression for better performance + encode gzip - handle @xbox_playback { - # Forward to Python filter service - reverse_proxy http://xbox-filter:5000 + # Access logging + log { + output stdout + format console } }