Install ReUI (MCP, skill, @reui registry, Tailwind v4, shadcn base-nova) and move the shared UI onto it: Button, Tag, Check, Input/Textarea, Segmented, Alert, Panel, Dialog, Tooltip, Menu and Select (Popover), Toast (sonner), the Table frame (DataGrid), the Dashboard KPI strip, the shnt Ops palette, Geist and the type scale. Design only: behaviour, texts and roles are unchanged. Tests that asserted the old DOM were updated; the tests now format numbers in English wherever they run. docs/reui-migration-plan.md records the plan and its decisions. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
71 lines
3.9 KiB
Markdown
71 lines
3.9 KiB
Markdown
# Product
|
|
|
|
## Purpose
|
|
|
|
An alternative administration console for [Technitium DNS Server](https://github.com/TechnitiumSoftware/DnsServer):
|
|
the same API, the same behaviour and the same texts, with the interface rebuilt.
|
|
|
|
It exists because the server is excellent and its console is the part people meet first. Rebuilding
|
|
it is a contained problem: the API is documented and stable, and the console is a static bundle the
|
|
server serves from a folder, so it can be replaced without touching anything that resolves.
|
|
|
|
## The rule the whole thing is built on
|
|
|
|
> **Design only. Zero functionality.** Any behavioural difference from the stock console is a bug,
|
|
> **even when it looks like an improvement.**
|
|
|
|
Same controls, same steps, same wording, same validation order. A feature that was missing is still
|
|
missing. A confirmation that asked twice still asks twice. A literal upstream writes in lower case
|
|
stays in lower case.
|
|
|
|
This is not modesty, it is the only reason it is safe to put a third-party interface in front of
|
|
infrastructure: you are changing how the console looks, not what your DNS server does. It is also
|
|
what makes the project reviewable: every question of the form "should it do X?" has an answer that
|
|
is not an opinion.
|
|
|
|
## What this project owns
|
|
|
|
- The **interface**: layout, typography, colour, states, keyboard and screen-reader behaviour, and
|
|
how the same object is drawn on every screen.
|
|
- **Real URLs.** Thirty-two of them, one per destination, so a section can be bookmarked and the
|
|
back button walks the console instead of leaving it.
|
|
- **Responsiveness.** The console works at 390 px. The stock one overflows horizontally in twelve of
|
|
its sections; this one does not overflow in any.
|
|
- **The installer.** On Technitium 15.5+ with systemd, `install.sh` gives the console its own folder
|
|
and manages a reversible service drop-in. The first install and uninstall restart once to change
|
|
folders; updates do not. Other installs use the server's web root without restarting. Custom
|
|
lists survive every path in and out.
|
|
|
|
## What it refuses to become
|
|
|
|
- **A second way to configure DNS.** No setting, endpoint, step or validation that the stock console
|
|
does not have. If you want the server to do something new, that is a change to the server.
|
|
- **A server.** There is no backend here, no database, no account, and nothing is stored beyond the
|
|
session token the DNS server issues.
|
|
- **A telemetry surface.** Nothing is reported anywhere. The only host this console talks to is the
|
|
DNS server it is installed on. Once a day it asks that server to look up whether a newer console
|
|
is out (README, *Keeping it up to date*); the request carries nothing about you or your server.
|
|
- **A fork of the server.** The
|
|
[pull request](https://github.com/TechnitiumSoftware/DnsServer/pull/2128) that proposed merging it
|
|
was closed, and that was the right call: the maintainer is not a frontend developer and could not
|
|
carry the stack. It ships as an alternative console instead, which is what he suggested.
|
|
|
|
## Left for later, on purpose
|
|
|
|
- **Windows.** The installer is Linux only. Windows installs are laid out differently and have their
|
|
own installer.
|
|
- **The Amber theme.** `Change Theme` offers System, Light and Dark; the stock console's fourth,
|
|
Amber, is not drawn. A browser that has it stored gets Dark.
|
|
- **Translations.** Every literal is upstream's, in English, and translating them would be the first
|
|
behavioural difference.
|
|
|
|
## How "the same" is checked
|
|
|
|
Parity is measured, not asserted. `dev/` brings up **two instances of the official Technitium image
|
|
side by side** (one serving this console, one untouched) and compares them: the controls on each
|
|
screen, the state the server is left in after real actions, the sortable columns, the help texts,
|
|
the dialogs one by one.
|
|
|
|
The tools live in the repository and fail with a non-zero exit code, which is the only reason to
|
|
trust them. Each one was proved by breaking something on purpose and watching it complain.
|