feat: Web Push 비활성 운영 설정을 준비한다

VAPID private key를 Compose secret으로 주입하고 Web Push를 기본 비활성으로 전달한다. 활성화 입력과 Compose 모델 검증, 운영 README를 함께 추가한다.
This commit is contained in:
2026-08-23 13:16:21 +00:00
parent 0c2b9632eb
commit 663e66b8f9
10 changed files with 129 additions and 2 deletions
+14
View File
@@ -110,6 +110,20 @@ mount되며 원문은 환경 변수나 브라우저 bundle에 들어가지 않
URL query나 `VITE_*`가 아니라 `IMAGE_UPLOAD_CORE2026_SECRET_FILE`이 가리키는
mode 0600 secret 파일에만 둡니다.
## Web Push 활성화 경계
Gateway의 Android, iPhone과 Windows 브라우저 알림 기반은 포함하지만 기본값은
`WEB_PUSH_ENABLED=false`입니다. 이 상태에서는 구독 버튼과 전송 worker가
비활성이고, 알림 이벤트를 나중에 소급 전송할 backlog도 만들지 않습니다.
활성화할 때만 VAPID key pair를 생성하여 공개키는
`WEB_PUSH_VAPID_PUBLIC_KEY`, private key는 Git에서 제외한
`WEB_PUSH_VAPID_PRIVATE_KEY_FILE`에 각각 넣고, 운영 연락처를
`WEB_PUSH_VAPID_SUBJECT``mailto:` 또는 HTTPS URL로 설정합니다. private key는
runtime의 `/run/secrets/web_push_vapid_private_key`에 Compose secret으로만
mount됩니다. 설정 후 `./scripts/check.sh`가 키 파일의 존재와 activation 필드를
검증한 다음 runtime을 재생성해야 하며, 실제 활성화와 배포는 별도 운영 작업입니다.
## 데이터와 복구 경계
- PostgreSQL, Redis, Core clone/worktree, PM2 상태와 Caddy 인증서는 named