From f1ac82255aa394e087693a07d5904f30b5742833 Mon Sep 17 00:00:00 2001 From: dtoro Date: Mon, 13 Jul 2026 23:14:40 +0200 Subject: [PATCH] Add OIDC desktop callback, app logo, rename to Oikos - Server: /oidc-callback HTML page exchanges Authentik code for token, displays it for user to copy into the desktop app's Token tab - oidc.ts: desktop mode uses apiUrl+/oidc-callback as redirect URI, encodes PKCE verifier in state parameter - Config.svelte: add Server URL field to OIDC tab for desktop UX - Caddy: add /oidc-callback to enroll bypass (no Authentik gate) - App: favicon.png as system tray icon, window title 'Oikos' - web/index.html: title 'Oikos' --- cmd/desktop/icon.png | Bin 0 -> 84522 bytes cmd/desktop/main.go | 11 ++- compose/caddy/Caddyfile.oikos | 2 +- internal/httpapi/server.go | 149 ++++++++++++++++++++++++++++++++++ web/index.html | 2 +- web/src/lib/oidc.ts | 18 +++- 6 files changed, 174 insertions(+), 8 deletions(-) create mode 100644 cmd/desktop/icon.png diff --git a/cmd/desktop/icon.png b/cmd/desktop/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f00b11fe00b9efea84671b7976346cec35fae25f GIT binary patch literal 84522 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 + + + + +Oikos — Connect Desktop App + + + +
+

Connect Desktop App

+
+

Exchanging authorization code...

+
+
+ +
+ + +`) +} + // ListenAndServe runs the API server with graceful shutdown on ctx cancel // (SG4): stop accepting, drain in-flight for up to 30s, then exit. func ListenAndServe(ctx context.Context, pool *db.Pool, cfg config.Config) error { diff --git a/web/index.html b/web/index.html index bbb63c0..bc4d789 100644 --- a/web/index.html +++ b/web/index.html @@ -3,7 +3,7 @@ - Oikos — Control Room + Oikos diff --git a/web/src/lib/oidc.ts b/web/src/lib/oidc.ts index 87633ed..68d7f51 100644 --- a/web/src/lib/oidc.ts +++ b/web/src/lib/oidc.ts @@ -1,4 +1,4 @@ -import { apiBase } from './config' +import { apiBase, getConfig } from './config' interface OIDCConfig { issuer: string @@ -77,7 +77,19 @@ export async function startLogin(): Promise { sessionStorage.setItem(PKCE_KEY, codeVerifier) sessionStorage.setItem(STATE_KEY, oidcState) - const redirectURI = (location.origin + location.pathname).replace(/\/$/, '') + const isDesktop = getConfig().isDesktop === true + + let redirectURI: string + let stateParam: string + + if (isDesktop) { + const c = getConfig() + redirectURI = (c.apiUrl || location.origin).replace(/\/$/, '') + '/oidc-callback' + stateParam = oidcState + '.' + codeVerifier + } else { + redirectURI = (location.origin + location.pathname).replace(/\/$/, '') + stateParam = oidcState + } const params = new URLSearchParams({ response_type: 'code', @@ -85,7 +97,7 @@ export async function startLogin(): Promise { redirect_uri: redirectURI, code_challenge: codeChallenge, code_challenge_method: 'S256', - state: oidcState, + state: stateParam, scope: 'openid profile email' })