Files
ai-dev-portal/.project-env.example
Hyemin Lee 8be3a532cb feat(auth): Keycloak role 기반 관리자 판별과 도구 카탈로그 개편
- 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>
2026-06-29 17:12:03 +09:00

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