feat(runtime): publish images from dedicated origin

This commit is contained in:
2026-08-08 09:31:07 +00:00
parent b61efccd01
commit 4cdf585bc2
4 changed files with 20 additions and 4 deletions
+11 -2
View File
@@ -58,10 +58,19 @@ webhook 누락 시 `docker compose exec runtime pnpm sync:image`로 현재 이
branch의 fast-forward를 요청할 때만 사용합니다. 두 파일은 runtime에 read-only로
mount되며 원문은 환경 변수나 브라우저 bundle에 들어가지 않습니다.
`IMAGE_PUBLIC_URL`의 기본값은 `https://sam-image.hided.net`입니다. runtime은
이를 Gateway·game frontend의 공개 이미지 origin과 사용자 아이콘 URL에 함께
주입합니다. 정적 게임 이미지는 `/game`, 공용 아이콘은 `/icons`, Core2026
사용자 아이콘은 서버 발급 경로 `users/core2026/<파일>``/icons` base 아래에
붙여 읽습니다. 업로드 권한값은
URL query나 `VITE_*`가 아니라 `IMAGE_UPLOAD_CORE2026_SECRET_FILE`이 가리키는
mode 0600 secret 파일에만 둡니다.
## 데이터와 복구 경계
- PostgreSQL, Redis, Core clone/worktree, PM2 상태, Caddy 인증서와 user icon은
named volume 또는 `data/image`에 보존됩니다.
- PostgreSQL, Redis, Core clone/worktree, PM2 상태 Caddy 인증서는 named
volume에 보존됩니다. 새 user icon은 외부 이미지 서비스가 보존하며 runtime의
user icon volume은 기존 설치 호환용입니다.
- `/image/*`는 앱 artifact가 아니며 `data/image/`의 별도 운영 자산을 제공합니다.
- 일반 `docker compose down`은 volume을 보존합니다. `down --volumes`는 DB와
release 상태를 삭제하는 파괴적 명령이므로 backup 없이 실행하지 않습니다.