DNS Intro
DNS Documentation
This section contains product documentation for TitaniumGuard DNS.
For authoritative zone setup, see DNS Zone Hosting.
For policy syntax and examples, see DNS Rule Engine Policy.
Run with Docker
The DNS image is published as:
ghcr.io/titaniumguardlabs/source/dns:latest
The DNS process accepts an optional config file path as its first positional argument.
If omitted, it defaults to config.json inside the container.
1. Create a local config file
Example ./dns-config.json:
{
"listen_addr": "0.0.0.0:8080",
"resolvers": ["1.1.1.1", "8.8.8.8"],
"zones": []
}
2. Run container and mount config
Publish both UDP and TCP for DNS queries:
docker run --rm \
-p 8080:8080/udp \
-p 8080:8080/tcp \
-v "$PWD/dns-config.json:/etc/titaniumguard/dns-config.json:ro" \
ghcr.io/titaniumguardlabs/source/dns:latest \
/etc/titaniumguard/dns-config.json
3. Query it
dig @127.0.0.1 -p 8080 example.com
dig @127.0.0.1 -p 8080 example.com +tcp
If UDP queries time out but TCP works, check that -p <host>:<container>/udp is present.