DOCS/journey/plans/251206_skill_calendar_자동배포_구성.md
Claude-51124 43c07ef6a5 docs: skill-calendar 51124 서버 자동 배포 구성 계획
- Gitea Actions 워크플로우 생성 계획
- SSH 연결, 배포 스크립트, 헬스체크 단계 명시
- 기존 트러블슈팅 문서 참고 사항 포함
- 문서 작성 원칙 준수 (100줄 이하, 아키텍처/Phase 중심)
2025-12-06 13:12:34 +09:00

2.9 KiB

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/으로 이동하고 구현 섹션 삭제