From 43c07ef6a516b1346b4382b50613e16b97e2ce6a Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Sat, 6 Dec 2025 13:12:34 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20skill-calendar=2051124=20=EC=84=9C?= =?UTF-8?q?=EB=B2=84=20=EC=9E=90=EB=8F=99=20=EB=B0=B0=ED=8F=AC=20=EA=B5=AC?= =?UTF-8?q?=EC=84=B1=20=EA=B3=84=ED=9A=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Gitea Actions 워크플로우 생성 계획 - SSH 연결, 배포 스크립트, 헬스체크 단계 명시 - 기존 트러블슈팅 문서 참고 사항 포함 - 문서 작성 원칙 준수 (100줄 이하, 아키텍처/Phase 중심) --- ...1206_skill_calendar_자동배포_구성.md | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 journey/plans/251206_skill_calendar_자동배포_구성.md diff --git a/journey/plans/251206_skill_calendar_자동배포_구성.md b/journey/plans/251206_skill_calendar_자동배포_구성.md new file mode 100644 index 0000000..597b2ed --- /dev/null +++ b/journey/plans/251206_skill_calendar_자동배포_구성.md @@ -0,0 +1,75 @@ +# skill-calendar 51124 서버 자동 배포 구성 + +**날짜**: 2025-12-06 +**작성자**: admin +**관련 파일**: `skill-calendar/.gitea/workflows/deploy.yml` (생성 예정) + +--- + +## 목표 + +skill-calendar 서비스를 Gitea Actions를 통해 51124 서버에 자동 배포하도록 구성 + +## 배경 + +- 현재 상태: skill-calendar는 자동 배포 미설정 (AGENTS.md:29) +- 문제: `.github/workflows/deploy.yml` 존재하나 Gitea Actions는 `.gitea/workflows/` 경로만 인식 +- 참고: skill-rag-file, skill-slack, rb8001 등은 이미 자동 배포 구성 완료 + +## 아키텍처 + +### 서버 관계 +- **51123 서버**: Gitea Actions runner (self-hosted) +- **51124 서버**: 배포 대상 서버 (192.168.219.52, SSH 포트 51124) +- **배포 플로우**: 51123 runner → SSH(51124) → git pull → docker 재시작 + +### 필수 Secrets +- `SSH_PRIVATE_KEY_51124`: 51124 서버 SSH 키 +- `SSH_HOST_51124`: 192.168.219.52 +- `SSH_USER_51124`: admin + +## 구현 계획 + +### Phase 1: 워크플로우 파일 생성 +- 경로: `skill-calendar/.gitea/workflows/deploy.yml` +- 참고: `skill-rag-file/.gitea/workflows/deploy.yml`, `rb8001/.gitea/workflows/cicd.yml` + +### Phase 2: SSH 연결 설정 +- SSH 키 설정 (`~/.ssh/deploy_key`, chmod 600) +- known_hosts 추가 (`ssh-keyscan -p 51124`) +- 연결 테스트 (`ConnectTimeout=10`, `StrictHostKeyChecking=no`) + +### Phase 3: 배포 스크립트 +- 경로 이동: `/home/admin/ivada_project/skill-calendar` +- Git pull: `git pull origin main --rebase` +- .env 파일 확인 (없으면 exit 1) +- Docker 재시작: `docker compose down || true`, `docker compose up -d --build` + +### Phase 4: 헬스체크 +- 엔드포인트: `http://localhost:8512/health` +- 재시도: 최대 10회 (5초 간격) +- 실패 시: 컨테이너 로그 출력 후 exit 1 + +### Phase 5: 에러 처리 +- `set -e`로 에러 즉시 중단 +- 빌드 실패 시 로그 확인 (`docker compose logs --tail=50`) +- 컨테이너 상태 확인 (`docker ps | grep skill-calendar`) +- SSH 키 정리 (`rm -f ~/.ssh/deploy_key`) + +## 주의사항 + +- YAML 문법: heredoc 사용 시 따옴표 처리 주의 (참고: `250904_admin_skill-news_zombie_process_gitea_actions.md`) +- Actions 캐시: 워크플로우 수정 시 `/root/.cache/act/` 캐시 삭제 필요할 수 있음 +- 권한: skill-calendar는 logs 디렉토리만 사용하므로 추가 권한 설정 불필요 (rb8001과 달리) + +## 참고 문서 + +- `DOCS/journey/troubleshooting/250728_happybell80_nginx프록시및CI배포문제해결.md`: SSH 인증 실패 해결 +- `DOCS/journey/troubleshooting/250820_happybell80_skill-email_DB통합및Actions배포.md`: 경로 문제 해결 +- `DOCS/journey/troubleshooting/250929_actions_cache_problem.md`: Actions 캐시 문제 +- `DOCS/book/300_architecture/312_문서_작성_원칙.md`: 문서 작성 원칙 + +--- + +**구현 완료 시**: 이 문서를 `journey/troubleshooting/`으로 이동하고 구현 섹션 삭제 +