v1.11.1 – Bootstrap DNS & Custom DoH Paths
This release introduces configurable bootstrap DNS servers to resolve upstream hostnames for encrypted transports (DoT, DoH, DoQ) and custom URL paths for DoH servers. The legacy dns_resolver_server option is removed in favour of the new [bootstrap] section.
✨ Added
- Bootstrap DNS servers – Specify a list of DNS servers (IP:port) in
[bootstrap]to resolve upstream hostnames. If all bootstrap servers fail, the system resolver is used as fallback.
[bootstrap]
servers = 1.1.1.1:53, 8.8.8.8:53
timeout = 2.0
retries = 2
- Custom DoH path – Each upstream in
[upstreams.<name>]can now define apath(e.g.,/dns-query,/x/dns-query,/custom). The default remains/dns-query. - New tests – 9 unit/integration tests covering bootstrap resolution, fallback, caching, and custom DoH paths (total suite: 142 tests).
🛠️ Changed
- Removed
dns_resolver_serverfrom[upstream]section. Migrate existing configurations to the[bootstrap]section. DNSResolver._resolve_upstream_ipnow uses bootstrap servers if configured, then falls back to the system resolver.- DoH forwarding methods (
_forward_https,_forward_https1/2/3) accept apathparameter and use it in the HTTP request. - Connection pooling keys for HTTP/2 and HTTP/3 include the path, allowing separate pools for different paths on the same host.
🧪 Testing
- 142 tests passing (unit + integration).
- New bootstrap tests:
test_bootstrap_resolves_hostnametest_bootstrap_fallback_to_next_servertest_bootstrap_fallback_to_system_resolvertest_bootstrap_cachetest_bootstrap_no_servers_fallback_to_system
- New custom path tests:
test_custom_path_https1/2/3test_custom_path_default_when_missingtest_custom_path_in_upstream_list
📦 Upgrading
- Update existing installation:
./installer.sh --update
Then edit/opt/phantomd/config/phantomd.conf:- Remove any
dns_resolver_server = ...line from[upstream]. - Add a
[bootstrap]section (example above). - If using multi‑upstream DoH, add
path = /your/pathunder each[upstreams.<name>].
- Remove any
- Fresh install:
./installer.sh– the installer will create a defaultphantomd.confwith the new bootstrap section. - Restart service:
systemctl restart phantomd
Full Changelog: v1.10.1...v1.11.0