Dashboard¶
DNSao includes a built-in web dashboard on server.webPort, which defaults to 8044.
http://DNSAO_IP:8044
Pages¶
| Page | Path | Purpose |
|---|---|---|
| Home | / |
Query totals, cache behavior, average response time, and query timeline |
| Queries | /query |
Searchable query history with client, domain, type, answer, source, and elapsed time |
| Upstream | /upstream |
Per-upstream query counts, share, min/avg/max latency, last seen, and hourly usage |
| VM Stats | /vm |
JVM heap, GC, and thread health for the running DNSao process |
Authentication¶
The dashboard is open by default. Set server.authPass to require login for dashboard pages and JSON API endpoints.
server:
webPort: 8044
authPass: "change-this-password"
Important security details:
- Dashboard authentication is sent over HTTP unless you put DNSao behind an HTTPS reverse proxy.
- Use
authPassonly on trusted networks or behind HTTPS. - The DNS-over-HTTPS endpoint
/dns-queryremains public even when dashboard authentication is enabled.
Data Retention¶
DNSao persists dashboard metrics and query history to SQLite by default. Configure server.statsDbPath for a stable location:
server:
statsDbPath: "/etc/dnsao/stats.db"
The parent directory must already exist and be writable by the DNSao process.
For ephemeral deployments, set server.useMemoryStorage: true to keep stats in memory only.
APIs¶
The dashboard uses JSON endpoints under /api/* plus legacy stats/query endpoints. When server.authPass is set, these endpoints require authentication.
Useful endpoints include:
/stats/queries/api/upstream-stats/api/vm-stats/api/state
The DNS-over-HTTPS endpoint is:
/dns-query