diff --git a/.claude/HISTORY.md b/.claude/HISTORY.md index 346b56e9..aa58f810 100644 --- a/.claude/HISTORY.md +++ b/.claude/HISTORY.md @@ -3816,3 +3816,13 @@ git checkout HEAD -- index.html - Layer 2: mitmproxy WAF (request inspection, CVE detection) - All 13 MetaBlogizer sites verified working with dual WAF - **CrowdSec MCP:** Added crowdsec-local-mcp for AI-generated WAF rules + +47. **Nextcloud Apps 403 Fix - try_files Directory Match (2026-02-27)** + - **Problem:** `/apps/spreed/` and `/apps/dashboard/` returning 403 Forbidden + - **Root Cause:** nginx `try_files $uri $uri/ /index.php$request_uri;` checks `$uri/` + - `/apps/spreed/` exists as a real directory in filesystem + - nginx finds directory, tries to serve index, no index file → 403 + - **Fix:** Changed to `try_files $uri /index.php$request_uri;` + - Removed `$uri/` directory check from try_files + - All non-file requests now route directly to PHP front controller + - **Result:** Talk (/apps/spreed/) returns 303 redirect, Dashboard returns 401 (auth required) diff --git a/package/secubox/luci-app-domoticz/htdocs/luci-static/resources/view/domoticz/overview.js b/package/secubox/luci-app-domoticz/htdocs/luci-static/resources/view/domoticz/overview.js index aff9ec1d..b6dc09a6 100644 --- a/package/secubox/luci-app-domoticz/htdocs/luci-static/resources/view/domoticz/overview.js +++ b/package/secubox/luci-app-domoticz/htdocs/luci-static/resources/view/domoticz/overview.js @@ -449,6 +449,8 @@ return view.extend({ }); }; - return KissTheme.wrap([m.render()], 'admin/services/domoticz'); + return m.render().then(function(formEl) { + return KissTheme.wrap([formEl], 'admin/services/domoticz'); + }); } }); diff --git a/package/secubox/luci-app-localai/htdocs/luci-static/resources/view/localai/settings.js b/package/secubox/luci-app-localai/htdocs/luci-static/resources/view/localai/settings.js index 5e47ae28..037380e8 100644 --- a/package/secubox/luci-app-localai/htdocs/luci-static/resources/view/localai/settings.js +++ b/package/secubox/luci-app-localai/htdocs/luci-static/resources/view/localai/settings.js @@ -87,6 +87,8 @@ return view.extend({ o.default = 'vulkan'; o.depends('enabled', '1'); - return KissTheme.wrap([m.render()], 'admin/services/localai/settings'); + return m.render().then(function(formEl) { + return KissTheme.wrap([formEl], 'admin/services/localai/settings'); + }); } }); diff --git a/package/secubox/luci-app-metablogizer/htdocs/luci-static/resources/view/metablogizer/settings.js b/package/secubox/luci-app-metablogizer/htdocs/luci-static/resources/view/metablogizer/settings.js index cf48dd12..61dc6c76 100644 --- a/package/secubox/luci-app-metablogizer/htdocs/luci-static/resources/view/metablogizer/settings.js +++ b/package/secubox/luci-app-metablogizer/htdocs/luci-static/resources/view/metablogizer/settings.js @@ -68,6 +68,8 @@ return view.extend({ ''; }; - return KissTheme.wrap([m.render()], 'admin/services/metablogizer/settings'); + return m.render().then(function(formEl) { + return KissTheme.wrap([formEl], 'admin/services/metablogizer/settings'); + }); } }); diff --git a/package/secubox/luci-app-simplex/htdocs/luci-static/resources/view/simplex/overview.js b/package/secubox/luci-app-simplex/htdocs/luci-static/resources/view/simplex/overview.js index 77675ecc..6bd53595 100644 --- a/package/secubox/luci-app-simplex/htdocs/luci-static/resources/view/simplex/overview.js +++ b/package/secubox/luci-app-simplex/htdocs/luci-static/resources/view/simplex/overview.js @@ -454,6 +454,8 @@ return view.extend({ ''; }; - return KissTheme.wrap([m.render()], 'admin/services/simplex'); + return m.render().then(function(formEl) { + return KissTheme.wrap([formEl], 'admin/services/simplex'); + }); } });