mirror of
https://github.com/bunkerity/bunkerweb-templates.git
synced 2026-04-24 20:05:49 +03:00
[PR #7] [MERGED] Align Jellyfin reverse proxy config with official docs (ModSec, rate limit, CSP, Permissions-Policy) #9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/bunkerity/bunkerweb-templates/pull/7
Author: @TheophileDiot
Created: 2/20/2026
Status: ✅ Merged
Merged: 2/20/2026
Merged by: @TheophileDiot
Base:
main← Head:dev📝 Commits (2)
d99fe7f[#6] fix: Update ModSecurity rules to prevent false positives for specific Jellyfin API requests13ec18bfix: Correct MAX_CLIENT_SIZE format and update LIMIT_REQ_RATE in Jellyfin template📊 Changes
2 files changed (+10 additions, -6 deletions)
View changed files
📝
templates/jellyfin/configs/modsec-crs/jellyfin_false_positives.conf(+6 -2)📝
templates/jellyfin/template.json(+4 -4)📄 Description
Summary
This PR aligns the Jellyfin reverse proxy configuration with the official Jellyfin reverse proxy documentation and resolves several frontend-related false positives and policy conflicts.
The changes refine ModSecurity exclusions, relax rate limiting, and update security headers (CSP and Permissions-Policy) to match recommended upstream behavior.
Changes
1. ModSecurity (CRS) False Positive Handling
File:
templates/jellyfin/configs/modsec-crs/jellyfin_false_positives.confUpdates:
Removed:
ctl:ruleRemoveById=949110Retained:
ctl:ruleRemoveById=930130for/web/config.jsonAdded:
SecRulefor/web/node_modules.history.bundle.jsctl:ruleRemoveById=930130Rationale:
930130continues to trigger false positives for specific Jellyfin web assets and must remain suppressed for those paths.949110is no longer required and was removed to avoid unnecessary rule suppression.This keeps ModSecurity exceptions minimal while maintaining compatibility with Jellyfin’s web client.
2. Request Rate Adjustment
File:
templates/jellyfin/template.jsonIncreased:
"LIMIT_REQ_RATE"from"10r/s"→"15r/s"Rationale:
The previous rate was overly aggressive during normal UI usage (dashboard loads, metadata fetches, websocket-related activity).
Increasing to 15r/s reduces unintended throttling while maintaining protective rate limiting.
3. Content Security Policy Update
File:
templates/jellyfin/template.jsonRemoved:
frame-ancestors 'self'fromCONTENT_SECURITY_POLICYRationale:
The
frame-ancestorsdirective can conflict with deployments where framing policies are enforced upstream (e.g., at a global reverse proxy or ingress layer).Removing it avoids duplicate or conflicting header definitions and aligns with the Jellyfin reverse proxy guidance, where header management may be centralized.
4. Permissions-Policy Update
File:
templates/jellyfin/template.jsonUpdate:
PERMISSIONS_POLICYto align with Jellyfin’s documented reverse proxy recommendations.Rationale:
This ensures secure defaults without deviating from upstream-recommended behavior.
Overall Rationale
These changes were made to:
No breaking changes are expected.
Closes #6
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.