Repository navigation
Releases: bassem-elsodany/resolvr-dns-dashboard
Release list
Resolvr 1.3.2
A rejected request now says why, and a dropped session cookie is explained.
What's new
- The log says why a request was refused. A "Not authenticated" now writes a warning to the container log with the cause: no session cookie came with the request, a cookie came but its session is unknown or has expired, or a signed-in viewer tried an admin action. Tokens are never printed.
- The sign-in form explains a cookie the browser is not sending. If sign-in succeeds but the very next request is refused, the form says so and names the two usual causes (
COOKIE_SECURE=trueover plainhttp://, or opening Resolvr by a different host name than its backend) instead of leaving later pages to fail with "Not authenticated".
Related to #18.
Upgrading
Pull the new images and restart: docker compose pull && docker compose up -d. Your data and accounts are unchanged.
Images
ghcr.io/bassem-elsodany/resolvr-backend, ghcr.io/bassem-elsodany/resolvr-frontend and ghcr.io/bassem-elsodany/resolvr, for linux/amd64 and linux/arm64, tagged 1.3.2, 1.3, 1 and latest.
Resolvr 1.3.1
Choose how much Resolvr logs.
What's new
Logging settings (requested in #25)
LOG_LEVEL:silent,error,warn,info(default) ordebug.LOG_REQUESTS: setfalseto drop the one-line-per-request access log and keep the rest.LOG_FORMAT:text(default) orjson, one object per line, for log collectors.- The backend and the frontend container read the same
LOG_LEVELandLOG_REQUESTS, so one pair of settings quiets both. The Home Assistant add-on takes them as options. - The container healthcheck (
/healthz) is no longer logged unlessLOG_LEVEL=debug. - Sign-ins, sign-outs and failed sign-ins, user and connection changes, admin actions (who, what, which node, result) and failed Technitium calls are logged. Passwords, tokens and request bodies never are.
To quiet a deployment, set LOG_LEVEL=warn on the backend and frontend services. See the Logging section of the README.
Upgrading
Pull the new images and restart: docker compose pull && docker compose up -d. Your data and accounts are unchanged, and the default logging is the same as before apart from the healthcheck lines.
Images
ghcr.io/bassem-elsodany/resolvr-backend, ghcr.io/bassem-elsodany/resolvr-frontend and ghcr.io/bassem-elsodany/resolvr, for linux/amd64 and linux/arm64, tagged 1.3.1, 1.3, 1 and latest.
Resolvr 1.3.0
Resolvr now understands Technitium clusters.
What's new
Technitium cluster support (Technitium v14 and later; requested in #19)
When the server you connect to is part of a cluster, every panel gets a scope: the whole cluster (Technitium's aggregate statistics) or any single node. A standalone server looks exactly as before.
- Overview: a scope chip per panel, Compare nodes on Queries over time, and a Cluster nodes panel with each node's role, state and share of traffic.
- Clients and Query Logs: every node's query log merged by time, with a Node column, per-node counts, an unreachable-node banner and a merged CSV export.
- Cache and Zones: the nodes side by side, with what is missing or different on a node flagged, and actions that ask which node to apply to.
- Allowed and Blocked Zones: whether each node has caught up with Technitium's sync, with an Update now per node.
- DHCP, DNS Resolver, DNS Apps, Server Info and Sessions: cover every node, with a Node column or a side-by-side comparison.
Layout
- Charts keep a fixed height and a fluid width, and the list and table pages use the full window width.
- New screenshots, including a cluster section, in the README.
Upgrading
Pull the new images and restart: docker compose pull && docker compose up -d. Your data and accounts are unchanged. Nothing to configure: the cluster views appear on their own when your Technitium server is part of a cluster.
Images
ghcr.io/bassem-elsodany/resolvr-backend, ghcr.io/bassem-elsodany/resolvr-frontend and ghcr.io/bassem-elsodany/resolvr, for linux/amd64 and linux/arm64, tagged 1.3.0, 1.3, 1 and latest.
Resolvr 1.2.0
Saving a Technitium connection now tells you what actually went wrong.
What's new
Clearer connection errors
- A rejected token names the Technitium server that answered and says where to create an API token (Administration > Sessions > Create API Token), instead of only "Invalid token or session expired."
- A reply that is not Technitium's API response (an HTTPS-only port, a reverse proxy, a login wall) is shown with its HTTP status and text, instead of a JSON parser error.
- A server that cannot be reached shows the cause (connection refused, unknown host, TLS error), instead of "fetch failed".
- The reason is also written to the backend log (
docker logs), never including the token.
Fixes #18.
Upgrading
Pull the new images and restart: docker compose pull && docker compose up -d. Your data and accounts are unchanged.
Images
ghcr.io/bassem-elsodany/resolvr-backend, ghcr.io/bassem-elsodany/resolvr-frontend and ghcr.io/bassem-elsodany/resolvr, for linux/amd64 and linux/arm64, tagged 1.2.0, 1.2, 1 and latest.
Resolvr 1.1.0
Resolvr now runs as a Home Assistant add-on, and as a single container anywhere.
What's new
Home Assistant add-on
- Resolvr appears in the Home Assistant sidebar and uses your Home Assistant sign-in, so there is no separate login and no default accounts.
- The Technitium address and API token are set in the add-on's Configuration tab. The token is never sent to the browser.
- Install it from homelab-ha-addons: add that repository in Home Assistant, then install Resolvr.
Single-container image
ghcr.io/bassem-elsodany/resolvr(amd64 and arm64): the API also serves the web app, so Resolvr is one container instead of two. See Option 3 in the README. The existing two-container setup is unchanged.
Also
- The browser-tab and touch icons are now the Resolvr globe, replacing the Vite template's bolt.
- The app works under a path prefix (needed by Home Assistant's ingress); nothing changes for normal installs.
Upgrading
Pull the new images and restart: docker compose pull && docker compose up -d. Your data and accounts are unchanged.
Images
ghcr.io/bassem-elsodany/resolvr-backend, ghcr.io/bassem-elsodany/resolvr-frontend and ghcr.io/bassem-elsodany/resolvr, for linux/amd64 and linux/arm64, tagged 1.1.0, 1.1, 1 and latest.
Resolvr 1.1.0 release candidate 1
A release candidate for 1.1.0, to test the Home Assistant add-on before the stable release.
New
- Home Assistant add-on mode. Resolvr runs in the Home Assistant sidebar and uses your Home Assistant sign-in, so there is no separate login. The Technitium address and API token are set in the add-on's Configuration tab.
- A single-container image,
ghcr.io/bassem-elsodany/resolvr(amd64 and arm64): the API also serves the web app. See Option 3 in the README. - The browser-tab and touch icons are now the Resolvr globe instead of the Vite template's bolt.
The existing two-container setup is unchanged. This is a pre-release: latest still points at 1.0.0.
Resolvr 1.0.0
The first stable release of Resolvr, a self-hosted dashboard for Technitium DNS Server.
What's new since 0.1.0
Overview, in four tabs
- Stat tiles with sparklines and change against the previous period.
- Traffic: queries over time (stack allowed vs. blocked, drag to select a window and open it in Query Logs), query types, and a 7-day busy-hours heatmap.
- Resolution: where answers come from, response outcomes, upstream response time, and a flow diagram of how queries are resolved.
- Top lists and Infrastructure (DHCP scope usage, zones by type, cache size over time).
- Every chart is clickable and opens Query Logs filtered to what you clicked.
Clients page
- A client explorer: summary tiles, a traffic-share bar, a searchable and filterable list (heavy blocking, rate limited, new, quiet), and a detail panel with DHCP lease, activity, top and blocked domains, protocols and latest queries.
Blocked Zones, redesigned
- A status card with when the lists were last updated and when the next update is, an Update now button, and a history of the domain total after each refresh.
- Tabs for Feeds (grouped, with one save bar; section dividers are preserved), Your domains (searchable, paste-a-list, undo) and Check a domain (shows which feed blocked a name).
Also
- The app version is shown next to the name in the sidebar.
- The Live toggle remembers its state, page content is left-aligned, and the time-range and tab choices are kept in the URL.
- Fixed: both Docker Compose files failed validation on current Docker Compose (the README's first install option); CI now checks them.
Upgrading
Pull the new images and restart: docker compose pull && docker compose up -d. Your data and accounts are unchanged.
A few small things are remembered in your browser rather than on the server (the open tab, the block-list and cache history, and which clients you have seen), so they start fresh on a new browser. The Resolution, Clients and Query Logs pages need one of Technitium's query-logging apps installed on the server.
Images
ghcr.io/bassem-elsodany/resolvr-backend and ghcr.io/bassem-elsodany/resolvr-frontend, for linux/amd64 and linux/arm64, tagged 1.0.0, 1.0, 1 and latest.
v0.1.0
First tagged release of Resolvr.
Pinned Docker images are published to GHCR for linux/amd64 and linux/arm64:
ghcr.io/bassem-elsodany/resolvr-backend:0.1.0ghcr.io/bassem-elsodany/resolvr-frontend:0.1.0
Includes live query logs, clients, cache, zones, DHCP and blocking views, role-based access, host-to-IP mappings for admins, runtime BACKEND_URL for reverse-proxy setups, and favicon fixes. See the README for deployment options.
Pin a version rather than latest if you want stability: latest follows every merge to main.