explaingit

hemsby/tdns-stats

23JavaScriptAudience · ops devopsComplexity · 2/5Setup · moderate

TLDR

A self-hosted browser dashboard for monitoring one or more Technitium DNS servers, showing a live query feed, per-server statistics, top domains, and cache metrics that update automatically without page refreshes.

Mindmap

mindmap
  root((tdns-stats))
    Monitoring
      Live query feed
      Server statistics
      Cache hit rate
    Multi server
      Cluster aggregate view
      Individual server tabs
    Deployment
      Node.js process
      Docker container
      Systemd service
    Config
      YAML server list
      API tokens
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Monitor your home or office Technitium DNS server from a browser dashboard showing live query traffic, top queried domains, and cache hit rates.

USE CASE 2

Set up a cluster view that shows aggregate stats across multiple Technitium DNS servers alongside individual server tabs.

USE CASE 3

Run the dashboard as a systemd service on Linux so it starts automatically on boot and can be updated from the browser when new releases are available.

Tech stack

JavaScriptNode.jsDockerYAMLServer-Sent Events

Getting it running

Difficulty · moderate Time to first run · 30min

The live query feed requires installing an additional query log app on each Technitium server, without it, real-time feed and response time metrics are unavailable.

No license information was mentioned in the explanation.

In plain English

tdns-stats is a self-hosted web dashboard for monitoring Technitium DNS Server, a free DNS server application people run on their own machines to control how domain name lookups work on their network. If you run one or more Technitium DNS servers, this dashboard gives you a browser-based view of what they are doing in near real time. The dashboard shows a live feed of DNS queries as they come in, statistics for each server individually and for clusters of servers, lists of the most frequently queried domains and most active clients, and performance metrics like cache hit rate and response time. Updates are pushed to the browser automatically using a technology called Server-Sent Events, so the page stays current without you needing to refresh it. You connect the dashboard to your Technitium servers by editing a YAML configuration file with each server's address and API token. The token is created in the Technitium web interface under Administration. Multiple servers can be added, and if they are configured as a cluster, the dashboard automatically adds a combined view showing aggregate stats across all nodes alongside the individual server tabs. The project can be run three ways: as a Node.js process started from the command line, as a Docker container, or as a background service managed by the operating system (systemd on Linux). There is also a built-in update checker: a version number appears in the corner of the interface, and clicking it checks for newer releases on GitHub. If an update is available, you can apply it from the browser and the service restarts automatically. The live query feed requires an additional query log app to be installed on each Technitium server (SQLite, MySQL, PostgreSQL, or SQL Server options are supported). Without it, the per-server statistics and top lists still work, but the real-time feed and response time metrics are unavailable. The interface supports light, dark, and system-matched themes.

Copy-paste prompts

Prompt 1
I have a Technitium DNS server at 192.168.1.1. Help me configure the tdns-stats YAML file to connect to it, create an API token in the Technitium admin panel, and start the dashboard with Docker.
Prompt 2
How do I add a second Technitium DNS server to tdns-stats and configure them as a cluster so I get aggregate stats across both servers in a combined view?
Prompt 3
I want to enable the live query feed in tdns-stats. Which query log app do I need to install on my Technitium server, and should I use the SQLite or PostgreSQL backend for a small home network setup?
Open on GitHub → Explain another repo

← hemsby on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.