c730cfaa45
Add flexible DNS management to Docker Watcher. By default, wildcard DNS is assumed (current behavior). When disabled, users can configure a Cloudflare DNS provider with API token and zone selection. DNS A records are automatically created/updated/deleted in sync with proxy consumers (deployed instances and standalone proxies). - Settings: wildcard_dns toggle, dns_provider, cloudflare credentials - Cloudflare client: Provider interface with EnsureRecord/DeleteRecord/ListRecords - DNS lifecycle hooks in deployer and proxy manager (best-effort) - Settings UI: DNS config section with provider picker, zone selector, test button - DNS Records page at /dns with filtering, sync status, reconciliation - Records visible in both wildcard and managed modes - Cleanup on provider change: removes old records when switching modes
2.2 KiB
2.2 KiB
Feature: Cloudflare DNS Management
Branch: feature/cloudflare-dns-management
Base branch: main
Created: 2026-04-02
Status: 🟡 In Progress
Strategy: Big Bang
Mode: Automated
Execution: Direct
Summary
Introduce flexible DNS management. By default, wildcard DNS is assumed (current behavior). When disabled, the user selects a DNS provider (Cloudflare initially) and provides API credentials. DNS A records are then automatically kept in sync with proxy consumers (deployed instances and standalone proxies). A dedicated DNS Records page provides visibility, filtering, and manual sync/reconciliation.
Build & Test Commands
- Build (Go):
go build ./cmd/server - Build (Frontend):
cd web && npm run build - Check (Frontend):
cd web && npm run check - Test (Go):
go test ./... - Dev server:
./scripts/dev-server.sh
Phases
- Phase 1: Settings model & API [domain: backend] → subplan
- Phase 2: Cloudflare DNS client [domain: backend] → subplan
- Phase 3: DNS lifecycle hooks [domain: backend] → subplan
- Phase 4: Settings UI — DNS configuration [domain: frontend] → subplan
- Phase 5: DNS Records page [domain: fullstack] → subplan
- Phase 6: DNS sync & reconciliation [domain: backend] → subplan
Phase Progress Log
| Phase | Domain | Status | Review | Build | Committed |
|---|---|---|---|---|---|
| Phase 1: Settings model & API | backend | ⬜ Not Started | ⬜ | ⬜ | ⬜ |
| Phase 2: Cloudflare DNS client | backend | ⬜ Not Started | ⬜ | ⬜ | ⬜ |
| Phase 3: DNS lifecycle hooks | backend | ⬜ Not Started | ⬜ | ⬜ | ⬜ |
| Phase 4: Settings UI — DNS config | frontend | ⬜ Not Started | ⬜ | ⬜ | ⬜ |
| Phase 5: DNS Records page | fullstack | ⬜ Not Started | ⬜ | ⬜ | ⬜ |
| Phase 6: DNS sync & reconciliation | backend | ⬜ Not Started | ⬜ | ⬜ | ⬜ |
Final Review
- Comprehensive code review
- Full build passes
- Full test suite passes
- Merged to
main