Repolode
DNSControl

DNSControl/dnscontrol

DNS를 코드로 관리하세요. JavaScript 기반 설정으로 DNS 레코드를 정의하고 여러 provider에 반영할 수 있습니다.

스타
3,979
포크
550
열린 이슈
32
마지막 커밋
어제

어떤 프로젝트인가요?

DNSControl은 DNS 레코드를 코드로 관리합니다. JavaScript 호환 설정 파일에 zone과 레코드를 정의하면, DNSControl이 원하는 상태와 각 provider의 현재 상태를 비교한 뒤 차이를 미리 확인하고 provider API를 통해 적용합니다.

Amazon Route 53, Cloudflare, Gandi, Google Cloud DNS와 ISC BIND, PowerDNS 같은 자체 호스팅 옵션을 포함해 약 77개의 DNS provider 및 registrar용 플러그인을 제공합니다. 하나의 설정으로 여러 provider에 같은 레코드를 한 번에 반영할 수 있어 provider를 변경하거나 새 provider를 테스트할 때 위험을 줄일 수 있습니다. Linux, macOS, Windows에서 실행되며, 플러그인으로 새 provider를 추가할 수 있도록 설계되어 있습니다.

이 프로젝트는 Go로 작성되었으며, 일반적으로 명령줄이나 Docker 컨테이너에서 실행하거나 GitHub Action을 통해 사용합니다. 따라서 DNS 변경 사항을 pull request에서 검토하고 CI로 배포할 수 있습니다.

핵심 기능

  • 01JavaScript 호환 설정 파일에 DNS zone과 레코드를 정의합니다.
  • 02push로 적용하기 전에 실제 provider를 대상으로 변경 사항을 미리 확인합니다.
  • 03하나의 설정으로 여러 DNS provider에 같은 레코드를 동기화합니다.
  • 04플러그인을 통해 약 77개의 DNS provider 및 registrar를 지원합니다.
  • 05여러 도메인에서 IP, SPF 및 MX 설정을 재사용할 수 있도록 변수와 매크로를 제공합니다.
  • 06Linux, macOS, Windows에서 실행되며 Docker 이미지로도 제공됩니다.

활용 사례

  • Git과 pull request 검토를 통해 여러 도메인의 DNS 레코드를 관리합니다.
  • 테스트 기간 동안 두 provider를 동기화하면서 한 DNS provider에서 다른 provider로 zone을 이전합니다.
  • 공식 GitHub Action을 사용해 CI/CD 파이프라인에서 DNS 변경을 자동화합니다.
  • 자체 호스팅 BIND 또는 PowerDNS 서버의 DNS 레코드를 버전 관리합니다.

빠른 시작

  1. 1

    공식 안내에 따라 패키지 또는 소스에서 DNSControl을 설치합니다

  2. 2

    대화형 설정 마법사를 실행해 creds.json과 dnsconfig.js를 만듭니다

    dnscontrol init
  3. 3

    또는 Docker 컨테이너를 사용해 설치 없이 실행합니다

    docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview

사용 전 알아둘 점

  • v5.0 이후 REV()는 RFC2317에서 RFC4183으로 전환됩니다. 이는 호환성을 깨뜨리는 변경입니다.
  • NAMEDOTCOM, OPENSRS, SOFTLAYER 프로바이더에는 현재 관리자가 없습니다.

토픽

자주 묻는 질문

dnscontrol은(는) 무엇인가요?
DNS를 코드로 관리하세요. JavaScript 기반 설정으로 DNS 레코드를 정의하고 여러 provider에 반영할 수 있습니다. DNSControl은 DNS 레코드를 코드로 관리합니다. JavaScript 호환 설정 파일에 zone과 레코드를 정의하면, DNSControl이 원하는 상태와 각 provider의 현재 상태를 비교한 뒤 차이를 미리 확인하고 provider API를 통해 적용합니다.
dnscontrol은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
dnscontrol은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
dnscontrol은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. dnscontrol의 마지막 커밋은 2026년 10월 21일입니다.
dnscontrol은(는) 어디에 사용할 수 있나요?
Git과 pull request 검토를 통해 여러 도메인의 DNS 레코드를 관리합니다. 테스트 기간 동안 두 provider를 동기화하면서 한 DNS provider에서 다른 provider로 zone을 이전합니다. 공식 GitHub Action을 사용해 CI/CD 파이프라인에서 DNS 변경을 자동화합니다. 자체 호스팅 BIND 또는 PowerDNS 서버의 DNS 레코드를 버전 관리합니다.
dnscontrol는 어떻게 설치하나요?
공식 안내에 따라 패키지 또는 소스에서 DNSControl을 설치합니다 대화형 설정 마법사를 실행해 creds.json과 dnsconfig.js를 만듭니다: dnscontrol init 또는 Docker 컨테이너를 사용해 설치 없이 실행합니다: docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol preview
dnscontrol은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/DNSControl/dnscontrol

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트