Retire prepare-zones.sh pipeline; zones/ is now the served form

Big migration: the source/prepared split is gone. Each zones/*.zone is
now an RFC-compliant zone file that CoreDNS reads directly. Editing a
record is just edit + bump SOA + commit. CoreDNS auto-reloads within
30s; HE pulls on its own 300s SOA-refresh cycle.

Why: groundwork for the coredns-rfc2136 plugin to edit zones in place
without juggling a source/prepared transformation step. Also reduces
the mental model from "edit source, run prep, push" to just "edit".

Changes:
- zones/*.zone: 84 files migrated from Vultr-export form to RFC-compliant
  form (SOA injected, Vultr NS replaced with HE NS, CNAME/MX/NS rdata
  dot-terminated, apex lines get explicit @ prefix). Diff is mechanical
  and byte-count is unchanged (~340K) -- pure formatting promotion.
- docker-compose.yml: bind ./zones:/zones:ro (was ./zones-prepared)
- Makefile: dropped 'prep' target. 'reload' is now a no-op explainer.
  'tls-up' no longer depends on prep. 'clean' no longer wipes prepared.
- scripts/prepare-zones.sh moved to scripts/archive/ (kept for reference).
- .gitignore: updated comment for zones-prepared/ (now legacy).

NOT in this commit (follow-ups):
- CLAUDE.md updates documenting the new workflow.
- scripts/bump-serials.sh helper for manual-edit SOA bumping.
- coredns-rfc2136 plugin refactor (Phase 2b in the plan).
This commit is contained in:
Ryan Malloy 2026-05-21 11:14:42 -06:00
parent a9256f8ba4
commit 6d72d65642
88 changed files with 2125 additions and 795 deletions

View file

@ -1,23 +1,39 @@
; Zone file for nielsen-inspections.com
; Generated by mcp-vultr
; Auto-prepared by scripts/prepare-zones.sh on 2026-05-21T11:12:50-06:00
; Source: zones/nielsen-inspections.com.zone
$ORIGIN nielsen-inspections.com.
$TTL 3600
@ 3600 IN SOA ns1.he.net. admin.nielsen-inspections.com. (
2026052102 ; serial — bump per change (SERIAL=YYYYMMDDNN make prep)
300 ; refresh (5 min) — slaves poll us this often;
; tightened from 3600 to nudge HE's internal
; puller→anycast replication
120 ; retry (2 min) — kept < refresh per RFC 1912
604800 ; expire (1 week)
60 ; minimum (1 min) — negative-cache TTL on public
; resolvers; shrinks the window when an old
; NXDOMAIN keeps showing after we add a name
)
@ 3600 IN NS ns1.he.net.
@ 3600 IN NS ns2.he.net.
@ 3600 IN NS ns3.he.net.
@ 3600 IN NS ns4.he.net.
@ 3600 IN NS ns5.he.net.
300 IN NS ns1.vultr.com
300 IN NS ns2.vultr.com
* 300 IN A 74.91.22.234
300 IN A 74.91.22.234
@ 300 IN A 74.91.22.234
new 300 IN A 74.91.22.232
74.91.22.232 300 IN A 74.91.22.232
l 300 IN A 127.0.0.1
*.l 300 IN A 127.0.0.1
supabase 300 IN CNAME supabase.supported.systems
quote 300 IN CNAME nielsen-inspections.inspect.systems
docs 300 IN CNAME nielsen-inspections.inspect.systems
docs-sandbox 300 IN CNAME nielsen-inspections.inspect.systems
300 IN MX 10 mail.supported.systems
supabase 300 IN CNAME supabase.supported.systems.
quote 300 IN CNAME nielsen-inspections.inspect.systems.
docs 300 IN CNAME nielsen-inspections.inspect.systems.
docs-sandbox 300 IN CNAME nielsen-inspections.inspect.systems.
@ 300 IN MX 10 mail.supported.systems.
nielsen-inspections.com_report._dmarc.mail 3600 IN TXT "v=DMARC1"
300 IN TXT "v=spf1 mx a:mail.supported.systems ~all"
@ 300 IN TXT "v=spf1 mx a:mail.supported.systems ~all"
dkim._domainkey 300 IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuGPt3zH0RxxDUW1Wg+3FOKIYNQy5vo/hvbPB/U6O7hh5K/SnQ2MDPfnL3B+Ur3kKmYFcSTdVMotr9Ds7wRJWFv49oK4f4VKxfoBD8Sh9GrJDNDM+g86h8M1v3cWKLdeRa+UczJDLRb9wwW8eRR17OQafqGupN0ZbsazbZwTrC5z/RZlLBtEMsIceWwHPhR+H3Bl9rH2t1RQSjbD2A9fM5EPXeVvzn9SwDpxgfMRfs7/k/prPASxW0/8Bun3k2BOzOjP/H4v509xTJOn/6S5eC2QJ47hw5XsjOu1j9Fy2YqUkgDpcrqLiS5K/7E+BSWURitfuxAamv+vkTfrbU3D0lQIDAQAB"
_acme-challenge.new 300 IN TXT "-hHWyBLh_3qyIy1gYFSifjgOAbmN2t3OU2I_232rVNU"
_acme-challenge.new 300 IN TXT "WQbACLatgQG_0Z3IrbcMMjzOleV5El5NUp8gTJuHd0A"
@ -42,9 +58,7 @@ _acme-challenge 300 IN TXT "_OarPKPxYMpsvT_VuAKVkJoxP1vQmqMMRESOwpPflbg"
_acme-challenge 300 IN TXT "06at-8AT6CKT6Cbn5JEfASqOyiqx2T-PfvYlg4O86Bo"
_acme-challenge 300 IN TXT "8YYbiZ4dEbfK0KKrVWl81ZCdamED1a9b_3we2JEl-rE"
_acme-challenge.files 300 IN TXT "nckNo7UBhAFgevwMvQ85niQIiXuU37FoLK3XVECZzfk"
; Explicit CNAMEs added to fix RFC 4592 empty-non-terminal cases
; (parent name has _acme-challenge children, so wildcard would skip it)
calendar 300 IN CNAME nielsen-inspections.com
cw 300 IN CNAME nielsen-inspections.com
files 300 IN CNAME nielsen-inspections.com
v2-calendar 300 IN CNAME nielsen-inspections.com
calendar 300 IN CNAME nielsen-inspections.com.
cw 300 IN CNAME nielsen-inspections.com.
files 300 IN CNAME nielsen-inspections.com.
v2-calendar 300 IN CNAME nielsen-inspections.com.