D:
DNS Deploy API
dclub infrastructure

배포 API

서비스를 먼저 확인하고, 계획이 통과된 경우에만 DNS·Nginx·HTTPS를 적용합니다.

권장 호출 순서

공개 웹은 계획만 생성합니다. 실제 적용·삭제는 192.168.45.x 내부 AI/API가 계획별 1회성 자격을 발급받아 수행합니다. 현재는 23번 Primary 검증만 배포 성공 조건이며 73번 Secondary는 선택사항입니다.

GET/api/policy
GET/api/health?host=admin.dclub.kr
POST/api/deploy/plan
POST/api/internal/token
POST/api/deploy/apply
POST/api/deploy/remove

호스트 상태·파일 위치 확인

AI가 도메인의 마지막 점검 결과, 대상 서버, Nginx 실제 설정 파일 경로를 한 번에 확인합니다. 파일 내용은 반환하지 않습니다.

curl -sS 'https://dns2.dclub.kr/api/health?host=admin.dclub.kr'

호스트 클릭 진단

DNS 현황 화면에서 RUNNING·HTTP 502·HTTP 503 배지를 클릭하면 읽기 전용 진단을 실행합니다. Nginx 경로, listen, proxy_pass, 대상 서버를 확인하며 설정을 변경하지 않습니다.

curl -sS 'https://dns2.dclub.kr/api/diagnose?host=admin.dclub.kr'

1. 계획 생성

health, DNS 이름 중복, HTTPS 인증서를 확인합니다. 이 단계에서는 시스템을 변경하지 않습니다.

curl -sS -X POST https://dns2.dclub.kr/api/deploy/plan \
  -H 'content-type: application/json' \
  -d '{
    "zone": "dclub.kr",
    "subdomain": "my-service",
    "server": "25",
    "port": 30001,
    "health": "/health",
    "tls": true
  }'

2. 내부 AI가 1회성 적용 자격 받기

이 요청은 192.168.45.x 내부망에서만 성공합니다. 발급된 자격은 해당 계획·발급 IP에 묶이고 5분 후 만료되며 한 번만 사용할 수 있습니다. 자격값은 로그·채팅·Git에 기록하지 마세요.

curl -sS -X POST https://dns2.dclub.kr/api/internal/token \
  -H 'content-type: application/json' \
  -d '{"planId":"plan_발급값"}'

3. 내부 AI가 실제 적용

바로 앞 단계의 응답에서 받은 capability만 사용합니다. 공개 인터넷에서는 이 요청이 거부됩니다.

curl -sS -X POST https://dns2.dclub.kr/api/deploy/apply \
  -H 'content-type: application/json' \
  -H "x-deploy-capability: ${DEPLOY_CAPABILITY}" \
  -d '{"planId":"plan_발급값"}'

4. 테스트 도메인 삭제

적용 완료된 같은 계획만 삭제할 수 있습니다. 먼저 /api/internal/tokenaction=remove를 넣어 새 1회성 자격을 받고, 백업·DNS·Nginx 검증을 포함한 삭제를 실행합니다.

curl -sS -X POST https://dns2.dclub.kr/api/internal/token \
  -H 'content-type: application/json' \
  -d '{"planId":"plan_발급값","action":"remove"}'

curl -sS -X POST https://dns2.dclub.kr/api/deploy/remove \
  -H 'content-type: application/json' \
  -H "x-deploy-capability: ${REMOVE_CAPABILITY}" \
  -d '{"planId":"plan_발급값"}'

보안 규칙

공개 웹은 점검 전용입니다.
실제 적용은 내부 192.168.45.x에서 발급한 계획별 1회성 자격만 허용합니다. 기존 관리자 토큰도 내부망에서만 사용할 수 있습니다. 배포 대상 서버는 등록된 23·25·253만 허용되며, 서비스가 먼저 HTTP 2xx health를 반환해야 합니다. A·AAAA·CNAME·TXT·MX·SRV·CAA·NS·HTTPS·SVCB 중 하나라도 기존 레코드가 있으면 거부합니다.