podman 로컬개발 + Coolify(Dockerfile) 배포용 베이스. - Express 서버: /healthz, /db, /s3 연결 확인 - src/config.js 단일 진입점 → src/db.js(pg), src/s3.js(MinIO) - scripts/check-db.js, check-minio.js 연결 점검 - Dockerfile / compose.yaml / .dockerignore, 비밀값은 env 파일(gitignore)에서만 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
33 lines
1.5 KiB
Markdown
33 lines
1.5 KiB
Markdown
# sample — Node 앱 샘플 (podman 개발 + Coolify 배포)
|
|
|
|
사내 워크스페이스용 Node(ESM) 샘플. DB·MinIO 연결, podman 로컬개발, Coolify 자동배포가 미리 잡혀 있다.
|
|
이 폴더(`~/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 버킷 연결 확인
|
|
|
|
## 컨테이너로 실행 (podman)
|
|
```bash
|
|
podman build -t sample .
|
|
podman run --rm -p 3000:3000 --env-file .project-env sample
|
|
# 또는: podman compose up --build
|
|
```
|
|
|
|
## 배포 (Coolify)
|
|
Gitea에 push → Coolify가 `Dockerfile`로 자동 빌드/배포. Coolify Env에 `DATABASE_URL`, `S3_*` 입력.
|
|
|
|
## 연결정보
|
|
- **DB**: 프로젝트 `.project-env` 의 `DATABASE_URL` (본인 schema 격리, 폴더 cd 시 자동 export)
|
|
- **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` 참고.
|