Decap CMS와 R2 이미지 업로드 설정 가이드
GitHub OAuth, Cloudflare Worker, R2 버킷을 연동하는 방법을 단계별로 설명합니다.
Decap CMS에서 이미지를 GitHub 대신 Cloudflare R2에 저장하는 것이 이 프로젝트의 핵심 설계입니다.
왜 R2인가?
Git 저장소에 이미지를 커밋하면:
- 저장소 크기가 빠르게 증가합니다
- 빌드 시간이 길어집니다
- Git LFS 없이는 대용량 파일 관리가 어렵습니다
R2를 사용하면 이미지는 CDN URL로 서빙되고, Git에는 마크다운만 남습니다.
아키텍처
Decap CMS (/admin)
├── GitHub backend → 마크다운·메타데이터 커밋
├── OAuth Worker → GitHub 인증
└── R2 Upload Worker → 이미지 업로드
└── R2 bucket → 공개 URL 반환
설정 순서
- Cloudflare R2 버킷 생성 및 공개 도메인 연결
- R2 Upload Worker 배포 (
workers/r2-upload.js) - OAuth Gateway Worker 배포 (
workers/oauth-gateway.js) public/admin/config.yml에서 GitHub repo·branch·OAuth URL 설정- Cloudflare Pages에 사이트 배포
자세한 내용은 프로젝트 루트의 README.md를 참고하세요.
마크다운에 이미지 삽입
CMS 미디어 라이브러리에서 이미지를 업로드하면 R2 공개 URL이 자동으로 본문에 삽입됩니다:

이 URL은 빌드 시 그대로 HTML에 렌더링됩니다.