diff --git a/docs/new-index.md b/docs/new-index.md index 1e4e9f242..51a553a34 100644 --- a/docs/new-index.md +++ b/docs/new-index.md @@ -55,14 +55,14 @@ layout: default
- +

Maintain your DNS data as a high-level DS, with macros, and variables for easier updates.

-
+

Super extensible! Plug-in architecture makes adding new DNS providers and Registrars easy!

@@ -72,16 +72,16 @@ layout: default
- +
-

Eliminate vendor lock-in. Switch between DNS providers easily.

+

Eliminate vendor lock-in. Switch DNS providers easily, any time, with full fidelity.

-
+
-

Reduce points of failure: Easily maintain dual DNS providers.

+

Reduce points of failure: Easily maintain dual DNS providers and easily drop one that is down.

@@ -89,14 +89,14 @@ layout: default
- +

Supports 10+ DNS Providers including BIND, AWS Route 53, Google DNS, and name.com

-
+

Apply CI/CD principles to DNS: Unit-tests, system-tests, automated deployment.

@@ -106,16 +106,16 @@ layout: default
- +
-

All the benefits of Git (or any VCS) for your DNS zone data.

+

All the benefits of Git (or any VCS) for your DNS zone data. View history. Accept PRs.

-
+
-

Optimize DNS with SPF optimizer (coming soon!)

+

Optimize DNS with SPF optimizer. Detect too many lookups. Flatten includes.

@@ -123,14 +123,14 @@ layout: default
- +

Runs on Linux, Windows, Mac, or any operating system supported by Go.

-
+

Enable/disable Cloudflare proxying (the "orange cloud" button) directly from your DNSControl files.

@@ -140,14 +140,14 @@ layout: default
- +

Assign an IP address to a constant and use the variable name throughout the configuration. Need to change the IP address globally? Just change the variable and "recompile."

-
+

Keep similar domains in sync with transforms, macros, and variables.

@@ -157,3 +157,5 @@ layout: default
+ +

Icons made by Freepik from www.flaticon.com

diff --git a/docs/new-toc.md b/docs/new-toc.md new file mode 100644 index 000000000..7ae6f0279 --- /dev/null +++ b/docs/new-toc.md @@ -0,0 +1,101 @@ +--- +layout: default +--- + +
+
+
+ +
+
+
+
+

+ Getting Started +

+

+ Information for new users and the curious. +

+ + +
+
+

+ Reference +

+

+ Language resources and procedures. +

+ + +
+
+

+ Advanced Topics +

+

+ Take advantage of DNSControl's unique features. +

+ +
+
+
+
+

+ Developer Info +

+

+ It is easy to add features and new providers to DNSControl. The code is very modular and easy to modify. There are extensive integration tests that make it easy to boldly make changes with confidence that you'll know if anything is broken. Our mailing list is friendly. Afraid to make your first PR? We'll gladly mentor you through the process. Many major code contributions have come from first-time Go users! +

+ +
+
+
diff --git a/docs/public/attachment.svg b/docs/public/attachment.svg new file mode 100644 index 000000000..b09cc6136 --- /dev/null +++ b/docs/public/attachment.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/biology.svg b/docs/public/biology.svg new file mode 100644 index 000000000..8ef920c23 --- /dev/null +++ b/docs/public/biology.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/cancel.svg b/docs/public/cancel.svg new file mode 100644 index 000000000..7fea285c7 --- /dev/null +++ b/docs/public/cancel.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/cloud-computing.svg b/docs/public/cloud-computing.svg new file mode 100644 index 000000000..cf1b1fc25 --- /dev/null +++ b/docs/public/cloud-computing.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/compass.svg b/docs/public/compass.svg new file mode 100644 index 000000000..354ce268d --- /dev/null +++ b/docs/public/compass.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/document.svg b/docs/public/document.svg new file mode 100644 index 000000000..f5046fef8 --- /dev/null +++ b/docs/public/document.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/group.svg b/docs/public/group.svg new file mode 100644 index 000000000..03ac4414d --- /dev/null +++ b/docs/public/group.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/layers.svg b/docs/public/layers.svg new file mode 100644 index 000000000..23f6f7fd4 --- /dev/null +++ b/docs/public/layers.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/light-bulb.svg b/docs/public/light-bulb.svg new file mode 100644 index 000000000..42f869a36 --- /dev/null +++ b/docs/public/light-bulb.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/mail.svg b/docs/public/mail.svg new file mode 100644 index 000000000..53c2fbdac --- /dev/null +++ b/docs/public/mail.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/share.svg b/docs/public/share.svg new file mode 100644 index 000000000..c67063cfc --- /dev/null +++ b/docs/public/share.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/public/speech-bubble.svg b/docs/public/speech-bubble.svg new file mode 100644 index 000000000..d361631b5 --- /dev/null +++ b/docs/public/speech-bubble.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/spf.md b/docs/spf.md index a0916b7cf..05865faef 100644 --- a/docs/spf.md +++ b/docs/spf.md @@ -25,6 +25,41 @@ changed the contents of the SPF records? We figured that DNSControl could do a better job. +# For the impatient + +## Step 1: Define your SPF like this + + var SPF_LIST_NORMAL = [ + 'v=spf1', + 'ip4:198.252.206.0/24', // comment + 'ip4:192.111.0.0/24', // comment + 'include:_spf.google.com', // comment + 'include:mailgun.org', // comment + 'include:spf-basic.fogcreek.com', // comment + '~all' + ].join(" "); + // Change these to the ones that should be flattened: + var SPF_NORMAL = [ // VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV + TXT("@", SPF_LIST_NORMAL, {flatten: "spf-basic.fogcreek.com,mailgun.org", split: "_spf%d"}), + TXT("_rawspf", SPF_LIST_NORMAL) // keep unmodified availible for other tools + ] + +## Step 2: For a domain that needs that SPF record, include `SPF_NORMAL` as if it is a record. + + D('example.com', ... + SPF_NORMAL, + ... + ) + +## Step 3: Push the changes + +`dnscontrol preview` and `dnscontrol push` work as you'd expect. However now +your SPF record will be optimized for you. + +You might want to check out the web-based SPF tool described below. + + + ## Better comments Here's how we define our SPF record: @@ -142,11 +177,18 @@ FILL IN THE SEQUENCE OF COMMANDS TO MAINTAIN THE CACHE. # Interactive mode -FILL IN INFO ABOUT THE INTERACTIVE MDOE. +To help you decide what to flatten, load `docs/flattener/index.html` +into your web browser and you will be able to play with your SPF +records. We suggest you flatten only the minimum required to reach +10 or fewer lookups. + +This tool runs entirely in your browser. + +Start interactive mode: [interactive SPF tool](flattener/index.html) # Future We'd like to add other optimizations such as: * De-dup -* Remove overlapping CIDR blocks \ No newline at end of file +* Remove overlapping CIDR blocks