diff --git a/data/wg-mesh-hosts.json b/data/wg-mesh-hosts.json index d910ff2..e35e69a 100644 --- a/data/wg-mesh-hosts.json +++ b/data/wg-mesh-hosts.json @@ -1,23 +1,37 @@ { "_purpose": "Source of truth for DNS records served to the wg1 mesh by apricot's dnsmasq (instance bound to 10.9.0.2:53). Consumed by bin/wg-dns-sync.", "_consumers": ["bin/wg-dns-sync"], - "_dnsmasq_address_syntax": "Leading dot in 'name' = wildcard match for the domain and any subdomain. No leading dot = exact match only.", + "_dnsmasq_address_syntax": "Leading dot in 'name' = wildcard match for the domain and any subdomain. No leading dot = exact match only. Exact-match entries are needed to override the more-specific wildcards in /etc/dnsmasq.d/lilith-local.conf which return 127.0.0.1 for apricot's loopback Traefik (split-horizon).", "listen_address": "127.0.0.1,10.9.0.2", "records": [ - { - "name": ".apricot.local", - "ip": "10.0.0.116", - "comment": "apricot's primary LAN IP (eno2). Covers apricot.local plus all *.apricot.local subdomains used by lilith-platform nginx vhosts." - }, - { - "name": ".atlilith.local", - "ip": "10.0.0.116", - "comment": "atlilith.local TLD also served by apricot's lilith-dev-nginx (api, imajin, minio, search, stream-api)." - }, - { - "name": ".black.local", - "ip": "10.0.0.11", - "comment": "black's LAN IP (forge.black.local). Covers black.local and all subdomains." - } + { "name": ".apricot.local", "ip": "10.0.0.116", "comment": "wildcard fallback for any *.apricot.local without an exact entry below" }, + { "name": ".atlilith.local", "ip": "10.0.0.116", "comment": "wildcard for *.atlilith.local TLD" }, + { "name": ".black.local", "ip": "10.0.0.11", "comment": "wildcard for *.black.local" }, + + { "name": "admin.lilith.apricot.local", "ip": "10.0.0.116", "comment": "platform admin" }, + { "name": "atlilith.lilith.apricot.local", "ip": "10.0.0.116", "comment": "Lilith main site" }, + { "name": "home.atlilith.lilith.apricot.local", "ip": "10.0.0.116", "comment": "Lilith home" }, + { "name": "home.trustedmeet.lilith.apricot.local", "ip": "10.0.0.116", "comment": "TrustedMeet home" }, + { "name": "i.atlilith.lilith.apricot.local", "ip": "10.0.0.116", "comment": "Lilith images" }, + { "name": "lilithcam.lilith.apricot.local", "ip": "10.0.0.116", "comment": "LilithCam" }, + { "name": "lilithfan.lilith.apricot.local", "ip": "10.0.0.116", "comment": "LilithFan" }, + { "name": "lilithstage.lilith.apricot.local", "ip": "10.0.0.116", "comment": "LilithStage" }, + { "name": "live.atlilith.apricot.local", "ip": "10.0.0.116", "comment": "Lilith live" }, + { "name": "models.apricot.local", "ip": "10.0.0.116", "comment": "model registry" }, + { "name": "models.lilith.apricot.local", "ip": "10.0.0.116", "comment": "model registry" }, + { "name": "my.atlilith.lilith.apricot.local", "ip": "10.0.0.116", "comment": "Lilith user app" }, + { "name": "my.quinn.apricot.local", "ip": "10.0.0.116", "comment": "Quinn personal" }, + { "name": "my.trustedmeet.lilith.apricot.local", "ip": "10.0.0.116", "comment": "TrustedMeet user app" }, + { "name": "npm.apricot.local", "ip": "10.0.0.116", "comment": "Verdaccio npm registry UI" }, + { "name": "quinn.apricot.local", "ip": "10.0.0.116", "comment": "Quinn main app" }, + { "name": "spoiledbabes.lilith.apricot.local", "ip": "10.0.0.116", "comment": "SpoiledBabes" }, + { "name": "status.lilith.apricot.local", "ip": "10.0.0.116", "comment": "status dashboard" }, + { "name": "trustedmeet.lilith.apricot.local", "ip": "10.0.0.116", "comment": "TrustedMeet main" }, + + { "name": "api.atlilith.local", "ip": "10.0.0.116", "comment": "platform API" }, + { "name": "imajin.atlilith.local", "ip": "10.0.0.116", "comment": "image generation API" }, + { "name": "minio.atlilith.local", "ip": "10.0.0.116", "comment": "MinIO console" }, + { "name": "search.atlilith.local", "ip": "10.0.0.116", "comment": "search backend" }, + { "name": "stream-api.atlilith.local", "ip": "10.0.0.116", "comment": "stream API" } ] }