# sample — Node 앱 샘플 (로컬 node 실행 + Kubero 배포) 사내 워크스페이스용 Node(ESM) 샘플. DB·MinIO 연결, 로컬 개발, Kubero 자동배포가 미리 잡혀 있다. 이 폴더(`~/projects/sample`)는 **읽기 전용 참조**다. 직접 고치지 말고, 새 작업은 아래처럼 복사해서 시작한다. ## 새 프로젝트 시작 ```bash new-project myapp # sample 을 ~/projects/myapp 으로 복사 + .project-env(DB/S3) 자동생성 cd ~/projects/myapp # 들어오면 셸이 .project-env 를 자동 export ($DATABASE_URL 등 사용 가능) npm install npm run dev # http://localhost:3000 ``` - `GET /healthz` — 헬스체크 - `GET /db` — Postgres 연결 확인 (직원 전용 schema) - `GET /s3` — MinIO 버킷 연결 확인 ## 배포와 동일한 방식으로 로컬 검증 (컨테이너 불필요) ```bash npm start # = node index.js (Kubero 의 run 커맨드와 동일) ``` Kubero 는 buildpack 으로 빌드하므로 **로컬에서 컨테이너 이미지를 빌드할 필요가 없다.** `npm start` 로 떠서 엔드포인트가 정상이면 Kubero 배포도 거의 그대로 된다. ## 배포 (Kubero) Gitea에 push → Kubero(https://kubero.bokdev.in)가 **NodeJS buildpack**으로 자동 빌드/배포 (build=`npm install`, run=`node index.js`). Kubero 앱의 Env에 `DATABASE_URL`, `S3_*`, `PORT` 입력. 앱 주소는 `https://<앱이름>.apps.bokdev.in`. ## 연결정보 - **DB**: 프로젝트 `.project-env` 의 `DATABASE_URL` (본인 schema 격리, 폴더 cd 시 자동 export). 클러스터 내부 OpenEverest(`postgresql-6ox`)의 `appdb`. - **MinIO(S3)**: endpoint `https://minio.bokdev.in`, bucket `coolify-user-data`, 키는 `.project-env`에 있음 - **AI**: `~/.env` 의 `LITELLM_KEY`(`update-litellm-key` 명령으로 입력) → Claude Code/Codex/Gemini 공용 자세한 작업 규약은 `CLAUDE.md` 참고.