선언형 구성 파일을 계획하고 적용해 클라우드 및 서비스 리소스를 생성·변경·버전 관리하는 IaC CLI입니다.
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
공식 안내에 따라 패키지 또는 소스에서 DNSControl을 설치합니다
- 2
대화형 설정 마법사를 실행해 creds.json과 dnsconfig.js를 만듭니다
dnscontrol init - 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 통계는 매일 갱신됩니다.
관련 프로젝트
Meshery는 여러 클러스터와 클라우드에서 Kubernetes 인프라와 애플리케이션을 설계, 배포, 운영할 수 있는 오픈소스 클라우드 네이티브 관리자입니다.
VPS나 전용 서버에서 웹 앱 배포, 데이터베이스·Docker 컨테이너·DNS·백업·보안을 관리하는 셀프 호스팅 서버 제어판입니다.
Git 저장소에 정의된 상태로 Kubernetes 애플리케이션을 동기화하는 선언형 GitOps 지속적 배포 도구입니다.
자체 Git 저장소에 플래그를 저장하고 코드와 함께 배포하는 Git 기반 기능 플래그 플랫폼입니다.
기존 CI 파이프라인에서 Terraform과 OpenTofu를 실행하고, pull request 댓글로 plan과 apply를 수행하는 오픈소스 IaC 오케스트레이션 도구입니다.