feat: single-domain path-based routing (no subdomains required)
Move SPA assets from /assets/ to /_app/ (Vite assetsDir config) so Traefik can route /assets/* to Logto without conflict. All services on one hostname with path-based routing: - /oidc/*, /interaction/*, /assets/* → Logto - /server/* → server-ui (prefix stripped) - /api/* → cameleer-saas - /* (catch-all) → cameleer-saas SPA Customer needs only 1 DNS record. Server gets OIDC_JWK_SET_URI for Docker-internal JWK fetch (standard Spring split config). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -162,7 +162,7 @@ export function Layout() {
|
||||
<Sidebar.FooterLink
|
||||
icon={<ObsIcon />}
|
||||
label="View Dashboard"
|
||||
onClick={() => window.open(`${window.location.protocol}//server.${window.location.hostname}`, '_blank', 'noopener')}
|
||||
onClick={() => window.open('/server/', '_blank', 'noopener')}
|
||||
/>
|
||||
|
||||
{/* User info + logout */}
|
||||
|
||||
@@ -22,7 +22,7 @@ export async function fetchConfig(): Promise<AppConfig> {
|
||||
|
||||
// Fallback to env vars (Vite dev mode)
|
||||
cached = {
|
||||
logtoEndpoint: import.meta.env.VITE_LOGTO_ENDPOINT || `${window.location.protocol}//auth.${window.location.hostname}`,
|
||||
logtoEndpoint: import.meta.env.VITE_LOGTO_ENDPOINT || window.location.origin,
|
||||
logtoClientId: import.meta.env.VITE_LOGTO_CLIENT_ID || '',
|
||||
logtoResource: import.meta.env.VITE_LOGTO_RESOURCE || '',
|
||||
scopes: [
|
||||
|
||||
Reference in New Issue
Block a user