Repolode
DNSControl

DNSControl/dnscontrol

DNSのInfrastructure as Code。JavaScriptベースの設定でDNSレコードを定義し、複数のプロバイダーに反映できます。

スター
3,979
フォーク
550
未解決の Issue
32
最終コミット
昨日

これは何?

DNSControlはDNSレコードをコードとして管理します。JavaScript互換の設定ファイルでゾーンとレコードを記述すると、DNSControlがその望ましい状態と各プロバイダーの現在の状態を比較し、差分をプレビューしてからプロバイダーのAPI経由で適用します。

Amazon Route 53、Cloudflare、Gandi、Google Cloud DNSのほか、ISC BINDやPowerDNSなどのセルフホスト型を含む、約77のDNSプロバイダーとレジストラ向けプラグインを備えています。1つの設定から複数のプロバイダーに同じレコードを反映できるため、プロバイダーの切り替えや新しいプロバイダーのテストをより低リスクで行えます。Linux、macOS、Windowsで動作し、新しいプロバイダーをプラグインとして追加できる設計です。

Goで開発されており、通常はコマンドライン、Dockerコンテナ、またはGitHub Actionから実行します。DNSの変更をプルリクエストでレビューし、CIで反映できます。

主な機能

  • 01JavaScript互換の設定ファイルでDNSゾーンとレコードを記述できます。
  • 02変更を適用する前に、稼働中のプロバイダーとの差分をプレビューできます。
  • 031つの設定から複数のDNSプロバイダーに同じレコードを同期できます。
  • 04プラグインを通じて約77のDNSプロバイダーとレジストラに対応しています。
  • 05変数とマクロを使って、IPアドレス、SPF、MXの設定を複数のドメインで再利用できます。
  • 06Linux、macOS、Windowsで動作し、Dockerイメージも利用できます。

ユースケース

  • Gitとプルリクエストでのレビューを通じて、多数のドメインのDNSレコードを管理する。
  • テスト中に両方のプロバイダーを同期したまま、DNSゾーンを別のプロバイダーへ移行する。
  • 公式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のInfrastructure as Code。JavaScriptベースの設定でDNSレコードを定義し、複数のプロバイダーに反映できます。 DNSControlはDNSレコードをコードとして管理します。JavaScript互換の設定ファイルでゾーンとレコードを記述すると、DNSControlがその望ましい状態と各プロバイダーの現在の状態を比較し、差分をプレビューしてからプロバイダーのAPI経由で適用します。
dnscontrol は無料で使えますか?ライセンスは?
dnscontrol は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
dnscontrol は今もメンテナンスされていますか?
活発にメンテナンス中。dnscontrol の最終コミットは 2026年10月21日 です。
dnscontrol は何に使えますか?
Gitとプルリクエストでのレビューを通じて、多数のドメインのDNSレコードを管理する。 テスト中に両方のプロバイダーを同期したまま、DNSゾーンを別のプロバイダーへ移行する。 公式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 の数値は毎日更新されます。

関連プロジェクト