{ "_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. 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.lan", "ip": "10.0.0.116", "comment": "wildcard fallback for any *.apricot.lan without an exact entry below" }, { "name": ".atlilith.local", "ip": "10.0.0.116", "comment": "wildcard for *.atlilith.local TLD" }, { "name": ".black.lan", "ip": "10.0.0.11", "comment": "wildcard for *.black.lan" }, { "name": "admin.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "platform admin" }, { "name": "atlilith.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "Lilith main site" }, { "name": "home.atlilith.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "Lilith home" }, { "name": "home.trustedmeet.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "TrustedMeet home" }, { "name": "i.atlilith.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "Lilith images" }, { "name": "lilithcam.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "LilithCam" }, { "name": "lilithfan.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "LilithFan" }, { "name": "lilithstage.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "LilithStage" }, { "name": "live.atlilith.apricot.lan", "ip": "10.0.0.116", "comment": "Lilith live" }, { "name": "models.apricot.lan", "ip": "10.0.0.116", "comment": "model registry" }, { "name": "models.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "model registry" }, { "name": "my.atlilith.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "Lilith user app" }, { "name": "my.quinn.apricot.lan", "ip": "10.0.0.116", "comment": "Quinn personal" }, { "name": "my.trustedmeet.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "TrustedMeet user app" }, { "name": "npm.apricot.lan", "ip": "10.0.0.116", "comment": "Verdaccio npm registry UI" }, { "name": "quinn.apricot.lan", "ip": "10.0.0.116", "comment": "Quinn main app" }, { "name": "spoiledbabes.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "SpoiledBabes" }, { "name": "status.lilith.apricot.lan", "ip": "10.0.0.116", "comment": "status dashboard" }, { "name": "trustedmeet.lilith.apricot.lan", "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" } ] }