DB(메타데이터)와 MinIO(바이트)를 함께 실제로 쓰는 PoC. 신규 런타임 의존성 없음. - src/files.js: files 테이블 + saveFile/list/get/rename/delete + getObjectStream - src/server.js: POST/GET/PATCH/DELETE /files, 정적 UI, 부팅 시 테이블 보장 · 업로드는 express.raw(멀티파트 파서 불필요), 다운로드는 S3 스트림 파이프 · 텍스트 charset=utf-8 + RFC5987 파일명으로 한글 깨짐 방지 - public/index.html: 드래그앤드롭 업로드 + 목록/열기/이름변경/삭제 UI - scripts/check-files.js(files:check): DB+S3 라운드트립 자가 검증 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sample — Node 앱 샘플 (podman 개발 + Coolify 배포)
사내 워크스페이스용 Node(ESM) 샘플. DB·MinIO 연결, podman 로컬개발, Coolify 자동배포가 미리 잡혀 있다.
이 폴더(~/projects/sample)는 읽기 전용 참조다. 직접 고치지 말고, 새 작업은 아래처럼 복사해서 시작한다.
새 프로젝트 시작
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)
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, bucketcoolify-user-data, 키는.project-env에 있음 - AI:
~/.env의LITELLM_KEY(update-litellm-key명령으로 입력) → Claude Code/Codex/Gemini 공용
자세한 작업 규약은 CLAUDE.md 참고.
Description
Languages
JavaScript
54.1%
HTML
43.8%
Dockerfile
2.1%