Hidden-primary DNS for ~91 zones: CoreDNS + custom rfc2136 plugin for self-hosted ACME DNS-01. Source of truth for zones/, Corefile, deploy configs.
Find a file
Ryan Malloy f8363e5ea7 zones: add explicit CNAME-to-apex for RFC 4592 empty-non-terminals
Wildcards in DNS only synthesize for names that don't already exist
in the zone tree. A `_acme-challenge.<sub>` TXT record makes <sub>
an "empty non-terminal" — exists in the tree (as a parent node) but
has no records of its own. Per RFC 4592 §2.2.3, wildcards skip these,
so RFC-compliant resolvers (HE, BIND) return NODATA for <sub> even
when the zone has `* CNAME @`.

Fix: for each <sub> that's an empty non-terminal in a zone with a
wildcard, add an explicit `<sub> CNAME @` so the resolution outcome
matches what the wildcard would have produced. Zero-knowledge — no
need to identify the specific service IP per name.

30 records added across 14 zones:
  acrazy.org (langfuse.dootie)
  context.bet (studio)
  copper-springs.online (docs.butler.dev)
  demostar.io (cw.cw, doom, meet)
  home-inspector.store (api, dashboard, mailpit)
  inspect.pics (admin)
  log.doctor (app, docs)
  malloys.us (cp, cp-sandbox, mary)
  nielsen-inspections.com (calendar, cw, files, v2-calendar)
  qubeseptic.com (api.dispatch, dispatch, leads, mail.dispatch,
                  rentcache.dispatch)
  ryanmalloy.com (c4ai)
  sidejob.pro (api)
  upc.llc (catalog, minio.or, or, s3)

CoreDNS (lenient) was returning the wildcard CNAME for these names
anyway; HE (strict RFC-compliant) was returning empty. After this
change, both behave identically.
2026-05-18 18:34:51 -06:00
caddy coredns: production Let's Encrypt cert via Caddy sidecar (DNS-01 + Vultr) 2026-05-14 01:34:57 -06:00
scripts coredns: tighten SOA timers to nudge HE's internal sync 2026-05-18 18:25:16 -06:00
zones zones: add explicit CNAME-to-apex for RFC 4592 empty-non-terminals 2026-05-18 18:34:51 -06:00
.env coredns: rename endpoint dns.l.supported.systems -> dns.supported.systems 2026-05-16 15:24:27 -06:00
.gitignore coredns: production Let's Encrypt cert via Caddy sidecar (DNS-01 + Vultr) 2026-05-14 01:34:57 -06:00
Corefile coredns: script-based NOTIFY to ns1.he.net on every prep 2026-05-18 16:57:54 -06:00
docker-compose.yml coredns: fix silently-broken healthcheck (distroless image has no wget) 2026-05-16 14:01:22 -06:00
Makefile coredns: script-based NOTIFY to ns1.he.net on every prep 2026-05-18 16:57:54 -06:00