Added
- Cloudflare DNS Provider: Public DNS management via Cloudflare API (#24)
- API token authentication (scoped tokens supported)
- Zone ID or zone name lookup
- A and CNAME record support
- Proxied/unproxied records with
PROXIEDsetting - Rate limiting awareness
- Webhook Provider: Generic webhook for custom DNS integrations (#26)
- Configurable endpoints for create/delete operations
- Authentication via custom headers
- Retry logic with configurable backoff
- Enables integration with any DNS provider via HTTP API
- TXT Record Ownership Tracking (#37): Prevents orphan cleanup from deleting manually-created DNS records
- Creates
_dnsweaver.{hostname}TXT records withheritage=dnsweavervalue - Only deletes records during orphan cleanup if ownership TXT record exists
- Configurable via
DNSWEAVER_OWNERSHIP_TRACKING(default: true) - All providers now support TXT records for ownership markers
- Creates
- Ownership State Recovery (#40): Recover ownership state from DNS on startup
- Scans all providers for
_dnsweaver.*TXT records at startup - Repopulates known hostnames so orphan cleanup works after restarts
- No manual intervention needed—dnsweaver remembers what it manages
- Scans all providers for
- Orphan Cleanup Configuration: New
DNSWEAVER_CLEANUP_ORPHANSsetting (default: true) - Domain Exclusion:
DNSWEAVER_<PROVIDER>_EXCLUDE_DOMAINSfor excluding domains from a provider
Fixed
- Cloudflare: Return ErrConflict for duplicate records (error codes 81053, 81058)
- Cloudflare: Don't proxy TXT records (fixes error 9004)
- Technitium: Add required
domainparameter when listing zone records - Reconciler: Silence warnings when ownership TXT record already exists (expected case)
Installation
Docker Hub
docker pull maxamill/dnsweaver:v0.2.0GitHub Container Registry
docker pull ghcr.io/maxfield-allison/dnsweaver:v0.2.0📖 Full Documentation | 📋 Changelog