goethite
GitHub

Terminal UI

On this page

goethite tui is a terminal UI for a goethite node. It talks to the node's REST API, so it works the same on the machine running goethite or over SSH from anywhere that can reach the API. It refreshes every two seconds.

goethite tui

By default it connects to http://127.0.0.1:8053, the API's default address, which needs no token while no user account exists. Once one does, the TUI needs an admin token too: it has no sign-in of its own. For another node, give the API's address and an admin token:

export GOETHITE_TOKEN=gth_…
goethite tui --api https://dns.example.lan:8053
Option Environment Meaning
--api <URL> GOETHITE_API The API's address, http:// or https://
--token-file <PATH> GOETHITE_TOKEN The admin token, from a file or the environment
--ca-file <PATH> A PEM CA certificate, for an API with its own certificate

The token is never taken on the command line, where other users of the machine could see it in the process list. Without --ca-file, HTTPS certificates are checked against the bundled Mozilla roots.

Switch screens with Tab, ← →, or 1–6.

  1. Dashboard: the last 24 hours (queries, blocked, cached, forwarded, failed, average answer time), the top names, blocked names and clients, the filter's rule count, and whether each upstream is up (a Recursion panel instead when the node resolves from the root down). In a cluster, the counts are every node's together, and the header shows what this node does in the cluster, its leader, and how many members are up.
  2. Query log: the newest queries, with their client, type, answer and the rule that decided.
  3. Lists: the filter lists, whether each is on, its rule count, its last update, who manages it and any download or parse problem.
  4. Clients: the clients, their addresses and their groups.
  5. Groups: each group's filtering, safe search, lists, blocked services and clients.
  6. Leak tests: the DNS leak tests of the last hour, from any device: how many of their lookups reached goethite, over which protocols and from where, with a Selected test pane below (verdict, client, group, filtering and the last lookups). t tests this machine's own DNS.

Every answer carries a text label (BLOCKED, SAFE SEARCH, CACHED, FORWARDED, LOCAL, REJECTED, FAILED), so nothing depends on color alone.

Key Where Does
Tab, ← →, 1–6 everywhere Switch screens
↑ ↓, k j tables Move the selection
p everywhere Pause filtering for 10 minutes
P everywhere Resume filtering
R, F5 everywhere Refresh now
/ query log Filter by name; Enter applies, Esc cancels
b query log Show blocked queries only, or everything
Space, e lists Turn the selected list on or off
r lists Download the lists now
t leak tests Test this machine's DNS
q, Esc, Ctrl+C everywhere Quit

Every change the TUI makes goes through the API, so it lands in the audit log like any other.