27 Commits

Author SHA1 Message Date
b6de35ff69 supported.systems: add explicit webmail CNAME → mail.supported.systems
Same pattern as autoconfig/autodiscover/imap/smtp/pop — webmail was
being caught by the wildcard (* 60 IN A 108.61.23.129) and resolving
to the docker host. Explicit CNAME points it at the mail server FQDN
where the webmail UI actually runs.
2026-05-20 15:54:17 -06:00
85ec79f14b supportedsystems.net: add git A 64.177.112.188
New git server under the .net naming convention, paralleling
git.supported.systems (66.42.70.188) which stays as the old box.
2026-05-20 15:41:05 -06:00
f5c774f13e supported.systems: add explicit autodiscover/imap/smtp/pop CNAMEs
These 4 mail-discovery hostnames were silently caught by the wildcard
(* 60 IN A 108.61.23.129), resolving to the docker host instead of
the mail server. CNAMEs to mail.supported.systems make their resolution
explicit and follow the mail server's A record automatically.
2026-05-20 15:24:55 -06:00
49d370dae6 supported.systems: move mail to 155.138.160.10 + add old-mailu temp record
Mail server migration cutover. mail.supported.systems flips inbound mail
for all 20 MX-referring zones to the new server. old-mailu.supported.systems
preserves a name pointing at the old IP (66.42.75.247) during the
migration window for IMAP drain, mailbox sync, and parallel verification.
2026-05-20 15:21:45 -06:00
6d6d412144 zones: repoint 6 CNAMEs from docker-2.supported.systems → docker-2.supportedsystems.net
Decouples the 6 dependent services (dignity.ink:kayla, septic.report:permits,
supported.systems:{docs, *.docs, mcbluetooth, s120}) from the legacy host
record. Services now follow the new-canonical .supportedsystems.net naming
and resolve directly to the new docker host.
2026-05-20 14:48:42 -06:00
ca4ddf712a supportedsystems.net: add docker-1 AAAA 2001:19f0:0:39a2:5400:6ff:fe2d:a42
Dual-stack symmetry with docker-2.
2026-05-20 14:12:36 -06:00
1928e15a61 zones: repoint 4 apex records 149.28.126.25 → 64.177.113.31 (docker-2 migration)
Bulk swap of the old docker-2 host IP to the new one across 4 zones.
docker-2.supported.systems intentionally preserved at the old IP — 6
CNAMEs depend on the FQDN; the old box keeps its identity until
decommissioned.
2026-05-20 14:11:53 -06:00
9bb87a0339 supportedsystems.net: add docker-2 A 64.177.113.31 + AAAA
New host record for the docker-2 replacement, with dual-stack from day
one. IPv6 is the EUI-64 SLAAC address from Vultr's /64 allocation.
2026-05-20 14:11:53 -06:00
9720451115 ryanmalloy.com: drop stale _acme-challenge.timelinize.l TXT records
These were leftover from a past cert renewal — timelinize.l isn't an
active service. Their presence made timelinize.l an empty non-terminal
that suppressed *.l wildcard synthesis at HE per RFC 4592 §2.2.3.
2026-05-20 14:11:53 -06:00
8379e59f55 zones: repoint 24 records 108.61.229.209 → 108.61.23.129 (docker-1 migration)
Bulk swap of the old docker host IP to the new one across 13 zones.
docker-1.supported.systems intentionally preserved at the old IP — the
hostname stays tied to the old box until decommissioned.
2026-05-20 11:43:44 -06:00
07e4813ad3 supportedsystems.net: add docker-1 A 108.61.23.129
New host replacing 108.61.229.209. Wildcard CNAME on the zone is
suppressed by RFC 4592 in favor of this explicit owner record.
2026-05-20 11:38:52 -06:00
1039838ff5 zones: retire 7 obsolete domains during docker-1 migration
cubeseptic.com, flonhoney.com, hydrushydroponics.com,
idahogreendreams.com, qube-construction.com, qube-septic.com,
qubeseptic.com — all were hosted on 108.61.229.209 (docker-1, old)
and are being decommissioned, not migrated to the replacement host.
2026-05-20 11:38:52 -06:00
fc2ea0f2fc homestar.ink: add photos.mock-reso.demo A 144.202.24.151 2026-05-20 00:25:08 -06:00
4dad8f899a homestar.ink: demo records (demo, app.demo, help.demo, mock-api.demo, *.demo) -> 144.202.24.151 2026-05-20 00:10:22 -06:00
48aa6184b6 homestar.ink: move all 108.61.229.209 records to 104.238.162.49 (homestar-1.kpgidaho.com) 2026-05-19 23:42:19 -06:00
66837afd56 supported.systems: route langfuse/grafana/siglip/*.siglip/staging.siglip to dell01 too 2026-05-18 21:42:34 -06:00
c597a21aad supported.systems: gpu/*.gpu -> 154.27.180.210, remove all AAAA 2026-05-18 21:40:56 -06:00
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
c19df5d0a5 homestar.ink: add auth, mcp, rentcache A 108.61.229.209 (fix empty-non-terminals) 2026-05-18 18:31:12 -06:00
f6111c2cbd homestar.ink: explicit A for mock-api.demo (workaround for RFC 4592 empty-non-terminal) 2026-05-18 17:29:05 -06:00
e31f83b6ae homestar.ink: add *.demo wildcard A 108.61.229.209 2026-05-18 16:41:22 -06:00
b0dace3933 homestar.ink: add help, demo, app.demo, help.demo A records 2026-05-18 13:56:51 -06:00
6cd3087cd5 homestar.ink: add app A 108.61.229.209 2026-05-18 11:38:04 -06:00
c26ef5a5a0 homestar.ink: add api + mock-api A 108.61.229.209 2026-05-17 04:05:26 -06:00
5afdb05667 zones: replace all A 100.79.95.190 with CNAME rpm-bullet.mer.idahomuellers.net
27 records across 15 zones converted from direct A records pointing at
the Tailscale endpoint (100.79.95.190) to CNAMEs pointing at the
Tailscale-named alias. Now if the underlying Tailscale node's IP
changes, only the rpm-bullet record needs updating instead of
chasing 27 zones.

Affected zones (all *.l labels + a handful of dev / dev.mary names):
  acrazy.org      copper-springs.online   demostar.io      flonhoney.com
  homestar.ink    kg7q.cc                 malloys.us       ourjob.site
  qubeseptic.com  ryanmalloy.com          septic.report    sidejob.pro
  supported.systems  warehack.ing         zmesh.systems

No CNAME collisions: none of the converted names had other records
(MX/TXT/SRV/CAA/AAAA) at the same exact name. _acme-challenge.<sub>.l
records sit at distinct subdomains and continue to resolve independently
(verified: TXT lookups for known _acme-challenge.l.* names still return
the original values).

Also fixed prepare-zones.sh: added `|| true` after the serial-detection
grep so a zero-match (first run of a new day) doesn't trip `set -e`
and abort the whole prep.
2026-05-17 03:29:34 -06:00
ada5c872e3 homestar.ink: add photos.mock-reso A 108.61.229.209 2026-05-16 22:01:45 -06:00
10867ee319 coredns: docker compose stack with Vultr zone import
- Auto plugin loads zones-prepared/*.zone (regex zone-name extraction)
- scripts/prepare-zones.sh transforms raw Vultr exports:
  * synthesizes SOA (omitted by Vultr; CoreDNS requires it)
  * prepends @ to leading-TAB apex lines to disambiguate owner inheritance
  * dot-terminates NS/MX/CNAME rdata so $ORIGIN doesn't double-suffix
- DNS_PORT defaults to 1053 (5353=avahi, 53=libvirt dnsmasq on this host)
- Forwards non-authoritative queries to 1.1.1.1/1.0.0.1/9.9.9.9
- Makefile targets: prep, up, down, reload, test, logs
- 91 zones loaded
2026-05-12 01:51:09 -06:00