63 Commits

Author SHA1 Message Date
mani
ad655ae4c4 Debug: Add test response for PlaybackInfo matching
Testing if path_regexp works by returning debug response
instead of proxying. This will show:
1. If the path is matched correctly
2. What User-Agent header is received

Once confirmed working, uncomment reverse_proxy lines.
2026-01-09 00:24:51 +01:00
mani
63f6738e11 Major fix: Caddy-based intelligent routing for Xbox filter
Complete architecture overhaul:
- Caddy is now the main proxy (port 8096)
- Only Xbox PlaybackInfo requests go to Python filter
- Everything else (WebSocket, streaming, API) goes directly to Jellyfin

Changes:
- Add Caddy service to docker-compose
- Use path_regexp for proper PlaybackInfo matching
- Remove method POST constraint (handled by path)
- Direct routing for non-Xbox requests
- WebSocket support for /socket endpoint

This fixes:
- 503 errors on normal requests
- 400 errors on WebSocket connections
- Performance issues from proxying everything

Architecture:
Client → Caddy → Check (path + User-Agent)
              ↓ Xbox PlaybackInfo → Python Filter → Jellyfin
              ↓ Everything else → Jellyfin
2026-01-09 00:21:57 +01:00
mani
0eaee053f5 Fix Caddyfile: Proper reverse proxy to Python filter
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.
2026-01-09 00:19:14 +01:00
mani
a0097cae2d Revert "Clean up Xbox proxy: Remove obsolete Caddyfile and improve docs"
This reverts commit 9e6b9fc1db.
2026-01-09 00:18:43 +01:00
mani
9e6b9fc1db Clean up Xbox proxy: Remove obsolete Caddyfile and improve docs
- Remove Caddyfile (Python proxy handles everything)
- Clarify that REQUEST body is filtered, not response
- Add better log examples showing actual output
- Add docker-compose comments about port exposure
- Explain filtering flow: User-Agent detection → JSON parsing → Codec filtering
2026-01-09 00:17:47 +01:00
mani
c9ffefed70 Fix Xbox proxy: Filter REQUEST body instead of response
BREAKING FIX: DeviceProfile is sent FROM client TO server in request body,
not returned in response. This was the bug preventing the filter from working.

Changes:
- Filter DeviceProfile in POST request body before sending to Jellyfin
- Add extensive debug logging to track filtering process
- Remove unnecessary response filtering (DeviceProfile not in response)
- Simplify response handling (always stream)

Now logs:
- 'Xbox PlaybackInfo request detected' when Xbox client detected
- 'Filtering Xbox DeviceProfile in REQUEST' when filtering
- 'No DeviceProfile found' if profile missing (debug info)
2026-01-09 00:15:08 +01:00
mani
485b809a63 Fix Xbox proxy: Add proper header forwarding and streaming support
- Add query parameter forwarding (?api_key=... etc.)
- Add X-Forwarded-* headers for client IP tracking
- Exclude problematic headers (content-length, transfer-encoding, etc.)
- Add streaming support for large files (8KB chunks)
- Add root route handler
- Properly forward all HTTP methods
2026-01-09 00:12:50 +01:00
mani
1cedac1aa9 Add Xbox codec filter proxy as alternative to code patches
- Transparent reverse proxy that filters AV1/Opus for Xbox clients
- Detects Xbox via User-Agent header
- Docker-based solution, no Jellyfin code modifications needed
- Can be easily enabled/disabled without affecting Jellyfin updates
2026-01-09 00:03:04 +01:00
mani
28157b02bc Simplify: just remove broken .git reference, let webpack use JELLYFIN_VERSION 2026-01-06 03:45:38 +01:00
mani
405bfbd290 Remove submodule .git reference before git init 2026-01-06 03:44:44 +01:00
mani
0e7fd16d1f Initialize git repo in Docker for webpack version detection
Create a git repo with tag so webpack git describe works
2026-01-06 03:43:32 +01:00
mani
012cfe768d Remove git metadata copy - test if webpack works without it
Webpack might use JELLYFIN_VERSION env var as fallback
2026-01-06 03:41:57 +01:00
mani
b37834ae7b Fix webpack git access in Docker build
- Copy .git/modules/jellyfin-web to Docker image so webpack can run git describe
- Add SSH agent forwarding (-A) to build_truenas.sh for git submodule cloning
2026-01-06 03:41:20 +01:00
Changhai Man
f203fa6015 dockerfile add install fonts for east asian fonts for subtitle rendering
modified:   docker/Dockerfile
2025-10-23 15:56:54 -04:00
Shadowghost
9effddde8f Use native arch to run server build 2025-09-28 07:48:09 +02:00
Shadowghost
b725dd43eb Fix Docker build 2025-09-27 13:06:11 +02:00
Shadowghost
9f93b886ee Upgrade Intel Compute Runtime to 25.35.35096.9 2025-09-27 07:43:11 +02:00
Joshua M. Boniface
01e8c4bdd5 Revert "Upgrade packages" 2025-09-26 22:16:40 -04:00
Shadowghost
1cc2e42a99 Upgrade packages 2025-09-25 13:26:20 +02:00
evan314159
58b4938c98 fix Dockerfile FROM as casing warnings (#84) 2025-09-20 07:23:28 -06:00
Nyanmisaka
50c398a503 Update Intel Compute Runtime (legacy) to 24.35.30872.36 (#79) 2025-08-22 19:00:10 -06:00
gnattu
d1d7e29459 grammar
Co-authored-by: Tim Eisele <Tim_Eisele@web.de>
2025-06-12 20:36:30 +08:00
gnattu
6fe7caf49d Use jemalloc by default on Docker image 2025-06-12 18:54:01 +08:00
Nyanmisaka
a3b1e6f876 Update Intel and Arm Mali OpenCL runtimes (#65) 2025-04-26 09:42:49 -06:00
Joshua M. Boniface
be9092b3c8 Fix ordering of CONFIG arg 2025-04-15 13:18:16 -04:00
Joshua M. Boniface
8e34413f4d Fix CONFIG env for Docker build 2025-04-15 13:07:21 -04:00
Joshua M. Boniface
34ba5153c4 Add support for Debug releases
Allows specifying --debug to build.py to build Debug builds of the
server, facilitating easier debugging. This is then called by default
for weekly builds.
2025-04-11 16:52:35 -04:00
Rich Lander
e00bc58af7 Simplify dotnet publish 2025-03-03 21:29:25 -08:00
nyanmisaka
df6c5f8f5d Bump Intel Compute Runtime to 24.48.31907.7
Use 24.35.30872.22 for legacy platforms.

Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-12-31 11:16:11 -05:00
Joshua M. Boniface
22f1a26ee7 Add safe.directory for jellyfin-web
Ensures that the `git` command to obtain the commit hash works properly.
2024-11-21 14:34:26 -05:00
nyanmisaka
aef8d0f6d1 Explicitly set the target platform of Docker builds
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-11-13 13:18:36 +08:00
Joshua M. Boniface
c35f012e85 Merge pull request #47 from agentsas/master
Ignore proxy settings during healthcheck
2024-11-09 10:08:14 -05:00
Joshua M. Boniface
73642f3cda Ensure git is installed in builders
Needed for Webpack to get the commit SHA1 hash.
2024-11-03 11:05:05 -05:00
Joshua M. Boniface
d568956d6c Update source label to packaging repo 2024-10-19 16:30:45 -04:00
agentsas
255124277d Ignore proxy settings during healthcheck for localhost 2024-10-06 21:00:10 +02:00
agentsas
c17d6e4f6f Ignore proxy settings during healthcheck 2024-10-06 20:51:38 +02:00
nyanmisaka
116d2fa9cd Switch to jellyfin-ffmpeg7
Signed-off-by: nyanmisaka <nst799610810@gmail.com>
2024-09-09 23:19:54 +08:00
Nyanmisaka
1155a8e142 Bump Intel Compute Runtime to 24.31.30508.7 (#38) 2024-09-07 18:02:26 -06:00
Joshua M. Boniface
7e8f016d63 Remove explicit --ffmpeg from Docker Entrypoint
The default is handled by the JELLYFIN_FFMPEG envvar anyways, and by
removing this, that envvar can then by used by containers to set the
path as required.
2024-06-20 15:56:05 -04:00
Shadowghost
bb13950759 Bump Intel Compute Runtime to 24.17.29377.6 2024-05-20 12:56:58 +02:00
Jürn Brodersen
16cd01b867 Add: org.opencontainers.image labels (#25) 2024-05-19 07:59:24 -06:00
Joshua M. Boniface
25a0eb4c45 Use master repo fallback instead of mirrors
Sometimes these fail as syncs are going on during builds, so just have
this builder use the master repo1 server.
2024-05-12 20:29:32 -04:00
Uruk
e581d5d38b Update gcc on noble and mali 2024-04-26 15:43:34 +02:00
Andrew Rabert
d5d9bb9761 Docker: Fix fontconfig cache
Log errors:
    Fontconfig error: No writable cache directories
    Fontconfig error: No writable cache directories
    Fontconfig error: No writable cache directories
    Fontconfig error: No writable cache directories
2024-04-24 14:05:11 -04:00
Nyanmisaka
12a974e634 Bump Intel Compute Runtime to 24.13.29138.7 (#15) 2024-04-21 10:56:02 -06:00
Shadowghost
d49f6b35c9 Bump Intel Compute Runtime to 24.09.28717.12 2024-03-28 19:06:54 +01:00
gnattu
998425a342 fix: don't set culture invariant mode (#9) 2024-03-27 06:23:31 -06:00
Joshua M. Boniface
97a0581ed2 Actually fix Mali config 2024-03-04 00:13:06 -05:00
Joshua M. Boniface
5d452e115c Switch to non-wayland MALI config 2024-03-03 23:28:42 -05:00
Joshua M. Boniface
51b9f34e3f Improve deb installs 2024-03-03 22:25:19 -05:00