AI DEV portal 초기 커밋
Express+EJS+Postgres 사내 개발 포털. - Keycloak OIDC(사번 로그인), GitHub 감성 UI - 사이트 모음 + 프로젝트 공유/코멘트/스타 - DB: OpenEverest appdb portal schema (portal_app role) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
35
README.md
Normal file
35
README.md
Normal file
@@ -0,0 +1,35 @@
|
||||
# AI DEV — 사내 개발 포털
|
||||
|
||||
직원이 한 곳에서 **사내 개발 사이트로 이동**하고, **만든 프로젝트를 공유·코멘트**하는 포털.
|
||||
GitHub 감성 UI. Keycloak SSO(사번 로그인). Node(Express+EJS) + Postgres.
|
||||
|
||||
> 브랜드명 `AI DEV` 는 `PORTAL_BRAND` 환경변수로 바꿀 수 있습니다.
|
||||
|
||||
## 기능
|
||||
- **Keycloak OIDC 로그인** (realm `bokdev`, client `portal`, 사번 = preferred_username)
|
||||
- **개발 사이트 모음** — 개발 핵심(Coder/Gitea/Kubero/Harbor) + AI·데이터(LiteLLM/Chat/OpenEverest/MinIO). 목록은 `src/sites.js`.
|
||||
- **프로젝트 공유** — repo/앱 URL·설명·태그
|
||||
- **코멘트 / 스타**
|
||||
|
||||
## 로컬 실행
|
||||
```bash
|
||||
cp .project-env.example .project-env # 값 채우기 (OIDC_CLIENT_SECRET 등)
|
||||
set -a; . ./.project-env; set +a
|
||||
npm install
|
||||
npm run db:init # schema.sql 적용 (최초 1회)
|
||||
npm run dev # http://localhost:3000
|
||||
```
|
||||
- 로컬에서 OIDC 콜백을 받으려면 Keycloak `portal` client redirect 에
|
||||
`http://localhost:3000/auth/callback` 이 등록돼 있어야 합니다(이미 등록됨).
|
||||
|
||||
## 배포 (Kubero)
|
||||
- NodeJS buildpack (`npm install` → `node index.js`). Dockerfile 불필요.
|
||||
- Kubero Env: `BASE_URL=https://portal.bokdev.in`, `DATABASE_URL`, `OIDC_*`, `SESSION_SECRET`, `PORTAL_BRAND`.
|
||||
- 도메인: `portal.bokdev.in` (게이트웨이/라우트 별도 구성 필요) 또는 `<app>.apps.bokdev.in`.
|
||||
- 배포 도메인이 정해지면 Keycloak `portal` client redirect 에 `https://<도메인>/auth/callback` 추가.
|
||||
|
||||
## 연결 정보
|
||||
- **DB**: OpenEverest `postgresql-6ox` 의 `appdb`, schema `portal`, role `portal_app`.
|
||||
- **Issuer**: `https://keycloak.bokdev.in/realms/bokdev`
|
||||
|
||||
자세한 작업 규약은 `CLAUDE.md`.
|
||||
Reference in New Issue
Block a user