From e21d622ba905567e86609bbd168e579fc63c0582 Mon Sep 17 00:00:00 2001 From: 2620227 Date: Tue, 7 Jul 2026 09:46:26 +0900 Subject: [PATCH] =?UTF-8?q?feat(sites):=20Coolify=20Keycloak=20SSO=20?= =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=EC=8B=9C=EC=9E=91=20URL(/auth/ke?= =?UTF-8?q?ycloak/redirect)=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit callback 이 /auth/keycloak/callback 이라 Socialite 시작 경로는 /auth/keycloak/redirect. 포털 SSO 세션이 있으면 폼 없이 통과. COOLIFY_URL 로 덮어쓰기 가능. Co-Authored-By: Claude Opus 4.8 --- src/config.js | 2 +- src/sites.js | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/config.js b/src/config.js index e1ca88f..cb5c4e4 100644 --- a/src/config.js +++ b/src/config.js @@ -26,7 +26,7 @@ export const config = { coder: process.env.CODER_URL || "https://coder.bokdev.in/api/v2/users/oidc/callback", gitea: process.env.GITEA_URL || "https://gitea.bokdev.in/user/oauth2/keycloak", kubero: process.env.KUBERO_URL || "https://kubero.bokdev.in", - coolify: process.env.COOLIFY_URL || "https://coolify.bokdev.in", + coolify: process.env.COOLIFY_URL || "https://coolify.bokdev.in/auth/keycloak/redirect", harbor: process.env.HARBOR_URL || "https://harbor.bokdev.in", openeverest: process.env.OPENEVEREST_URL || "https://openeverest.bokdev.in", minio: process.env.MINIO_URL || "https://minioc.bokdev.in", diff --git a/src/sites.js b/src/sites.js index f0f33c3..14394ed 100644 --- a/src/sites.js +++ b/src/sites.js @@ -5,6 +5,7 @@ // 포털 로그인 후 이 링크를 누르면 바로 들어간다. // - Coder: /api/v2/users/oidc/callback (code 없으면 keycloak authorize 로 307) // - Gitea: /user/oauth2/keycloak (auth source 명=keycloak, 307 로 keycloak authorize) +// - Coolify: /auth/keycloak/redirect (Laravel Socialite, keycloak authorize 로 302) // SSO 미지원(Kubero/Harbor 등)은 기본 URL 유지. // // adminOnly: true 인 항목은 관리자(role=admin)에게만 렌더(숨김, disabled 아님). @@ -17,8 +18,9 @@ export const sites = [ { key: "gitea", name: "Gitea", desc: "Git 저장소", url: config.tools.gitea, icon: "🍵", sso: true }, // Kubero: Keycloak SSO 로 로그인 가능(단, 랜딩에서 "OAuth 로 로그인"을 한 번 더 눌러야 함). { key: "kubero", name: "Kubero", desc: "배포 (PaaS)", url: config.tools.kubero, icon: "🚀", sso: true }, - // Coolify: Kubero 와 같은 배포 PaaS. SSO 자동 로그인 엔드포인트 미확인이라 기본 URL 유지. - { key: "coolify", name: "Coolify", desc: "배포 (PaaS)", url: config.tools.coolify, icon: "⛵" }, + // Coolify: Kubero 와 같은 배포 PaaS. Keycloak SSO 지원 → + // /auth/keycloak/redirect (로그인 시작, code 없으면 keycloak authorize 로 302). callback 은 /auth/keycloak/callback. + { key: "coolify", name: "Coolify", desc: "배포 (PaaS)", url: config.tools.coolify, icon: "⛵", sso: true }, // --- 인프라/운영 (관리자 전용) --- { key: "harbor", name: "Harbor", desc: "컨테이너 레지스트리", url: config.tools.harbor, icon: "📦", adminOnly: true }, { key: "openeverest", name: "OpenEverest", desc: "DB 콘솔", url: config.tools.openeverest, icon: "🗄️", adminOnly: true },