dyns 0.3.0

DNS discovery and resolver support for DHTTP applications
Documentation
# ddns DNS-over-HTTP/3 server configuration
# All fields are optional; the values shown below are the built-in defaults.

# Bind patterns to listen on. Dual-stack service is expressed explicitly.
binds = ["0.0.0.0:4433", "[::]:4433"]

# TLS server name (SNI).
server_name = "dns.genmeta.net"

# Paths to the server TLS certificate and private key (PEM format).
cert = "~/Downloads/ssl/dns.genmeta.net/dns.genmeta.net.pem"
key = "~/Downloads/ssl/dns.genmeta.net/dns.genmeta.net.key"

# Root CA that signed the client certificates (PEM format).
root_cert = "~/Downloads/ssl/root.crt"

# Whether to require a valid DNS record signature on Standard domains.
require_signature = true

# Default TTL (seconds) for published records.
ttl_secs = 30

# Redis URL for persistent storage.
# If omitted, records are kept in memory only (lost on restart).
# redis = "redis://127.0.0.1/"

# ---------------------------------------------------------------------------
# Domain policy rules
#
# Policies are matched in order; the first matching rule wins.
# Domains not listed here use the built-in "standard" policy.
#
# Policies:
#   standard   — one record per host; client cert SAN must match the target
#                host; signature check controlled by require_signature above;
#                each publish overwrites the previous record.
#
#   open_multi — any authenticated node may publish; no signature check;
#                records are appended (not overwritten), each with its own
#                individual TTL; lookup returns newest-first, use ?limit=N
#                to cap the number of returned records.
# ---------------------------------------------------------------------------

[[domain_policies]]
host = "nat.genmeta.net"
policy = "open_multi"


# Static bootstrap STUN endpoints returned even before any node publishes.
# Ordering keeps the main :20002 endpoints ahead of the auxiliary :20003 endpoints.
[[seed_records]]
host = "nat.genmeta.net"
endpoints = []

# Add more rules as needed, e.g.:
# [[domain_policies]]
# host   = "relay.genmeta.net"
# policy = "open_multi"