Easily update, push, and rollback your DNS configuration using DNSControl and GitHub Actions
- 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
- Clone or fork this repository
- If You forked it set repository visibility to private
- 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
andCLOUDFLARE_API_TOKEN
). - Remember to give workflows read/write permissions (https://github.com/user/repo/settings/actions)
- Edit and save your DNS settings in dnsconfig.js.
- This will automatically trigger the "Update DNS" action.
- After the update action has successfully executed, you can manually trigger the "Push Configuration" action to propagate DNS updates.
- If there are issues with the DNS update, manually trigger the "Rollback" action to restore the previous 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.