도메인 생성 공통 스크립트 기존 도메인 덮어씌우지않도록 수정
This commit is contained in:
@@ -119,19 +119,24 @@ runs:
|
||||
WS=$([ "$WEBSOCKETS" = "true" ] && echo true || echo false)
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# 2. 기존 프록시 호스트 확인 (멱등성: 2번째 실행 대응)
|
||||
# 2. 기존 프록시 호스트 확인 → 있으면 즉시 종료 (덮어쓰지 않음)
|
||||
# 이미 등록된 도메인은 기존 설정을 보존하기 위해 아무것도 건드리지 않습니다.
|
||||
# ---------------------------------------------------------------
|
||||
HOST_ID=$(api GET "/nginx/proxy-hosts" \
|
||||
| jq -r --arg d "$DOMAIN" \
|
||||
'map(select(.domain_names | index($d))) | .[0].id // empty')
|
||||
|
||||
CREATED=false
|
||||
if [ -n "$HOST_ID" ]; then
|
||||
echo "이미 존재하는 도메인입니다. 덮어쓰지 않고 종료합니다: ${DOMAIN} (host id=${HOST_ID})"
|
||||
echo "host-id=${HOST_ID}" >> "$GITHUB_OUTPUT"
|
||||
echo "created=false" >> "$GITHUB_OUTPUT"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# 3. HTTP 전용 프록시 호스트 먼저 생성 (SSL 없이)
|
||||
# 도메인이 80포트로 응답해야 Let's Encrypt HTTP-01 검증이 통과합니다.
|
||||
# ---------------------------------------------------------------
|
||||
if [ -z "$HOST_ID" ]; then
|
||||
echo "HTTP 프록시 호스트 생성 중: ${DOMAIN} -> ${FORWARD_SCHEME}://${FORWARD_HOST}:${FORWARD_PORT}"
|
||||
HTTP_PAYLOAD=$(jq -nc \
|
||||
--arg d "$DOMAIN" \
|
||||
@@ -160,10 +165,6 @@ runs:
|
||||
echo "프록시 호스트 생성 실패: ${DOMAIN}"
|
||||
exit 1
|
||||
fi
|
||||
CREATED=true
|
||||
else
|
||||
echo "기존 프록시 호스트 사용: ${DOMAIN} (host id=${HOST_ID})"
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------------
|
||||
# 4. Let's Encrypt 인증서 발급 (HTTP 호스트가 떠 있는 상태에서 검증)
|
||||
@@ -223,4 +224,4 @@ runs:
|
||||
|
||||
echo "도메인 생성/SSL 적용 완료: ${DOMAIN} (host id=${HOST_ID})"
|
||||
echo "host-id=${HOST_ID}" >> "$GITHUB_OUTPUT"
|
||||
echo "created=${CREATED}" >> "$GITHUB_OUTPUT"
|
||||
echo "created=true" >> "$GITHUB_OUTPUT"
|
||||
|
||||
Reference in New Issue
Block a user