https://github.com/fabriziosalmi/dnscontrol-actions
Automate DNS updates and rollbacks across multiple providers using DNSControl and GitHub Actions
https://github.com/fabriziosalmi/dnscontrol-actions
aws-route53 cloudflare configuration-management dns dns-automation dns-backup dns-management dns-manager dns-rollback dnscontrol github-action github-actions multi-provider powerdns
Last synced: 27 days ago
JSON representation
Automate DNS updates and rollbacks across multiple providers using DNSControl and GitHub Actions
- Host: GitHub
- URL: https://github.com/fabriziosalmi/dnscontrol-actions
- Owner: fabriziosalmi
- License: mit
- Created: 2023-09-08T09:38:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-13T19:15:02.000Z (about 1 month ago)
- Last Synced: 2025-03-13T20:27:40.811Z (about 1 month ago)
- Topics: aws-route53, cloudflare, configuration-management, dns, dns-automation, dns-backup, dns-management, dns-manager, dns-rollback, dnscontrol, github-action, github-actions, multi-provider, powerdns
- Language: JavaScript
- Homepage:
- Size: 41 KB
- Stars: 15
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- jimsghstars - fabriziosalmi/dnscontrol-actions - Automate DNS updates and rollbacks across multiple providers using DNSControl and GitHub Actions (JavaScript)
README
# DNSControl Actions
Easily update, push, and rollback your DNS configuration using [DNSControl](https://github.com/StackExchange/dnscontrol) and [GitHub Actions](https://github.com/features/actions)
[](https://github.com/fabriziosalmi/dnscontrol-actions/actions/workflows/update.yml) [](https://github.com/fabriziosalmi/dnscontrol-actions/actions/workflows/rollback-latest.yml)
## Features
- **DNS configuration CD/CI** using DNSControl and GitHub Actions.
- **Preview DNS changes** upon each update to dnsconfig.js.
- **Manual push** configuration for safer DNS updates.
- Option to **rollback to a previous DNS configuration** in case of errors.
- Support for **multiple DNS providers** for enhanced **redundancy**.
- Optional: send notification via Apprise on rollback## How to Use
#### Initialization
- Clone or fork this repository
- If You forked it set repository visibility to **private**#### Setup Credentials:
- Refer to creds.json for example configurations of popular DNS providers.
- Populate the appropriate fields with your credentials.
- For security, use repository action secrets for sensitive information (e.g., `CLOUDFLARE_API_USER` and `CLOUDFLARE_API_TOKEN`).
- Remember to give workflows read/write permissions (https://github.com/user/repo/settings/actions)#### Configure DNS:
- Edit and save your DNS settings in dnsconfig.js.
- This will automatically trigger the "Update DNS" action.#### Push Configuration:
- After the update action has successfully executed, you can manually trigger the "Push Configuration" action to propagate DNS updates.#### Rollback (if needed):
- If there are issues with the DNS update, manually trigger the "Rollback" action to restore the previous configuration.## Advanced Configuration
- Multi-provider Redundancy: Define multiple DNS providers in dnsconfig.js to achieve redundancy across providers. Example: Using both Cloudflare and AWS.
- Note: When using Cloudflare's proxying feature in combination with another DNS provider, ensure you handle the logic behind these proxies.