diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..06c6399 --- /dev/null +++ b/Readme.md @@ -0,0 +1,40 @@ +# Dnscontrol-Sync + +This images is designed to synchronise changes between Nameserver-Providers (like PowerDNS or Cloudflare-DNS). + +It uses [dnscontrol](https://github.com/StackExchange/dnscontrol) to pull & push these changes +and DNS-NOTIFY for event-driven updates. + +--- + +## Current state + +At the moment, this program can only pull changes from PowerDns and will push it to any other provider specified for that domain in `dnsconfig.js` (from dnscontrol). + +Furthermore there is an option to auto-rename a zone (e.g. public-zone has suffix .public), because e.g. PowerDns does not support "views". + +It is very likely the software will make mistakes when multiple change-events were executed when the first one was not finished yet. +It's planned to have a queue for that. + +--- + +## How it works + +PowerDns has this program as "slave" and will send a DNS-NOTIFY when zone-information has changed. +We will then use dnscontrol to pull the whole zone into a dnscontrol-formatted JavaScript-file, +modify it to match our needs and push it using the configured dnscontrol config. + +### In Short + +1. DNS-NOTIFY by PowerDns +2. dnscontrol get-zones PowerDns +3. Modify generated file +4. dnscontrol push + +--- + +## Which Providers are supported + +Check out the dnscontrol-documentation for further information about providers, setup and compatability of special records and settings: + +https://stackexchange.github.io/dnscontrol/provider-list \ No newline at end of file