itsm_ysm/deploy/gitea-webhook.md
itms-merge-dev 08e634c3a5 ci(itms): CI/CD 배포 아티팩트 추가 (적용 대기·산출물 준비형)
zioinfo.co.kr 피저빌리티 게이트 결과 ITMS 실기동(Tier2)은 이 환경 불가
(런타임 DB MariaDB/Oracle 도달 불가 + JDK17 부재 + Boot2.6.2 Java21 미지원)
→ 서버 미변경, 배포 대상 환경에서 적용할 준비된 산출물만 생성.

- deploy/deploy_server_itms_block.py: deploy_server.py 에 붙일 itms 블록
  (Tier1 빌드+커밋별 아카이브; Tier2 재기동은 주석 처리, 기존 블록 불변, 자격증명 env 주입)
- deploy/build.sh: common 선행 → 5모듈 bootWar (JDK17)
- deploy/systemd/itms-{auth,api,front,batch,datatrans}.service: 4포트 WAR+데몬 유닛 템플릿
- deploy/env/itms.env.example: SPRING_PROFILES_ACTIVE 등 (실 시크릿 미포함)
- deploy/gitea-webhook.md: webhook 3대 함정(url·secret·ALLOWED_HOST_LIST) 반영 생성 가이드(미실행)
- deploy/README.md: 특수성·적용 절차·피저빌리티 근거

보안: AES 암호문·DB 접속정보·NCP 키·Gitea 비번 하드코딩 0(env 주입). 기존 단일-jar 배포 무영향.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 21:08:59 +09:00

32 lines
1.6 KiB
Markdown

# Gitea webhook — ythong/itms (적용 대기)
push 시 배포 서버 deploy_server(port 9999)로 알리는 webhook. **아직 생성하지 않음.**
## 3대 함정 (GUARDiA 기지 교훈 — 반드시 준수)
1. **url**: NAT 헤어핀 회피 위해 `http://127.0.0.1:9999/`(localhost) 로 지정.
2. **secret**: 배포 서버 deploy_server 의 검증 secret 과 **일치**시킬 것(불일치 시 403). 값은 서버 운영 시크릿 — 여기에 적지 말 것.
3. **ALLOWED_HOST_LIST**: Gitea app.ini `[webhook] ALLOWED_HOST_LIST` 에 loopback 포함(없으면 localhost 웹훅 차단).
## 생성 (배포 대상 환경에서 실행; 자격증명·secret 은 env 로 주입)
```bash
# GITEA_TOKEN, DEPLOY_SECRET 를 환경변수로 주입(하드코딩 금지)
curl -s -X POST "https://git.zioinfo.co.kr/api/v1/repos/ythong/itms/hooks" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"type": "gitea",
"active": true,
"events": ["push"],
"config": {
"url": "http://127.0.0.1:9999/",
"content_type": "json",
"secret": "'"${DEPLOY_SECRET}"'"
}
}'
```
- branch 필터가 필요하면 deploy_server 측에서 `ref == refs/heads/main` 확인(현행 deploy_server 는 repo 이름으로 분기).
- 생성 후 Gitea UI 의 "Test Delivery" 로 발화 → deploy_server 로그에서 `repo=itms` 수신 확인.
## deploy_server 반영
`deploy_server_itms_block.py` 를 배포 서버 `deploy_server.py``_deploy()` elif 체인에 병합 → 서버 사본 반영 → deploy 서비스 재시작. (교훈: 서버 사본 미반영/미재시작 시 웹훅 로그 '완료'여도 1ms no-op = 블록 부재.)