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>
1.6 KiB
1.6 KiB
Gitea webhook — ythong/itms (적용 대기)
push 시 배포 서버 deploy_server(port 9999)로 알리는 webhook. 아직 생성하지 않음.
3대 함정 (GUARDiA 기지 교훈 — 반드시 준수)
- url: NAT 헤어핀 회피 위해
http://127.0.0.1:9999/(localhost) 로 지정. - secret: 배포 서버 deploy_server 의 검증 secret 과 일치시킬 것(불일치 시 403). 값은 서버 운영 시크릿 — 여기에 적지 말 것.
- ALLOWED_HOST_LIST: Gitea app.ini
[webhook] ALLOWED_HOST_LIST에 loopback 포함(없으면 localhost 웹훅 차단).
생성 (배포 대상 환경에서 실행; 자격증명·secret 은 env 로 주입)
# 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 = 블록 부재.)