- 제목에 (계획) 명시, 현재 상태(수동 배포) 명확히 표시 - 권한 문장 수정: DB 연결(51123 PostgreSQL) 고려 사항 추가 - 구현 체크리스트 추가: 문서/코드 동기화 강제 - 문서 작성 원칙 준수
3.4 KiB
3.4 KiB
skill-calendar 51124 서버 자동 배포 구성 (계획)
날짜: 2025-12-06
작성자: admin
관련 파일: skill-calendar/.gitea/workflows/deploy.yml (생성 예정)
현재 상태
skill-calendar는 여전히 수동 배포 상태이며, 이 문서는 자동 배포를 위한 계획 초안입니다.
목표
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.52SSH_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/캐시 삭제 필요할 수 있음 - DB 연결: skill-calendar는 51123 PostgreSQL(main_db)에 연결하므로 DB 네트워크/권한 설정도 함께 고려해야 함 (
docker-compose.yml:14)
구현 체크리스트
실제 구현 시 다음 항목을 확인하고 이 문서에 업데이트:
.gitea/workflows/deploy.yml파일 생성 완료- Gitea Secrets 설정 확인 (
SSH_PRIVATE_KEY_51124,SSH_HOST_51124,SSH_USER_51124) - Actions runner 설정 확인 (self-hosted)
- 첫 배포 성공 로그 확인
- 헬스체크 정상 작동 확인
참고 문서
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/으로 이동하고 구현 섹션 삭제