- auth.js: realm/client role 추출 → roles·isAdmin 세션 저장 - config.js: ADMIN_ROLE + 도구 URL 8종 환경변수화 - sites.js: 개발4 + 인프라4(adminOnly) 재구성, toolsForUser(isAdmin) - .project-env.example: ADMIN_ROLE·도구 URL 항목 추가 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
37 lines
1.8 KiB
Plaintext
37 lines
1.8 KiB
Plaintext
# AI DEV 포털 설정 예시. 실제 값은 .project-env (git 제외) 또는 Kubero Env 에.
|
|
|
|
# --- 포털 ---
|
|
PORTAL_BRAND=AI DEV
|
|
PORT=3000
|
|
# 로컬: http://localhost:3000 / 배포: https://portal.bokdev.in
|
|
BASE_URL=http://localhost:3000
|
|
# 세션 서명 키 (배포 시 임의의 긴 문자열로 교체)
|
|
SESSION_SECRET=change-me-to-a-long-random-string
|
|
|
|
# --- DB (OpenEverest appdb, portal schema 전용 role) ---
|
|
# host 는 클러스터 내부 OpenEverest pgbouncer (워크스페이스/Kubero 양쪽 도달).
|
|
# 주의: pgbouncer 가 SSL 필수 → sslmode=require. node pg 최신은 require 를 verify-full 로 취급하므로
|
|
# 자체서명 인증서 통과를 위해 uselibpqcompat=true 동반 필요.
|
|
# search_path 는 portal_app role 기본값(ALTER ROLE ... SET search_path=portal)으로 고정돼 있어
|
|
# URL 의 options 파라미터는 불필요(pgbouncer 가 startup options 거부함).
|
|
DATABASE_URL=postgresql://portal_app:7e2950ce6ed0c5a1457ea5b5@postgresql-6ox-pgbouncer.everest.svc:5432/appdb?uselibpqcompat=true&sslmode=require
|
|
|
|
# --- Keycloak OIDC (realm bokdev, client portal) ---
|
|
OIDC_ISSUER=https://keycloak.bokdev.in/realms/bokdev
|
|
OIDC_CLIENT_ID=portal
|
|
OIDC_CLIENT_SECRET=REPLACE_WITH_PORTAL_CLIENT_SECRET
|
|
|
|
# --- 권한 ---
|
|
# 이 Keycloak 역할(realm role)을 가진 사용자에게만 인프라 도구(OpenEverest/MinIO/Keycloak/LiteLLM) 노출.
|
|
ADMIN_ROLE=admin
|
|
|
|
# --- 도구 URL (기본값 있음 · 도메인/폐쇄망 대응으로 덮어쓰기) ---
|
|
# CODER_URL=https://coder.bokdev.in/api/v2/users/oidc/callback
|
|
# GITEA_URL=https://gitea.bokdev.in/user/oauth2/keycloak
|
|
# KUBERO_URL=https://kubero.bokdev.in
|
|
# HARBOR_URL=https://harbor.bokdev.in
|
|
# OPENEVEREST_URL=https://openeverest.bokdev.in
|
|
# MINIO_URL=https://minioc.bokdev.in
|
|
# KEYCLOAK_URL=https://keycloak.bokdev.in/admin
|
|
# LITELLM_URL=https://litellm.bokdev.in
|