Portal's nginx is the actual entry point (original NPM proxies the whole
domain to the portal LXC). App paths need to be proxied here, not in the
stack NPM. Same pattern as /api/auth/ which already works.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
An un-routed app path falls back to serving the portal, which would otherwise
load the whole shell inside itself endlessly. Detect self-embedding and show a
'not available yet' placeholder instead.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>