Files
DenozordecandClaude Sonnet 5.5 f3531c64f9 Move the console onto ReUI PRO
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 <[email protected]>
2026-10-27 00:06:06 +07:00
..
2026-10-27 00:06:06 +07:00
2026-10-27 00:06:06 +07:00
2026-10-27 00:06:06 +07:00
2026-10-27 00:06:06 +07:00
2026-10-27 00:06:06 +07:00

Update check

How the console learns that a newer release exists. The DNS server serves the console with default-src 'self' and no connect-src, so the browser cannot ask GitHub. It can ask its own server to resolve a name with DNS Client, and DNS Client takes a DNS-over-HTTPS URL as the server.

This folder is that DNS-over-HTTPS server, a Cloudflare Pages Function at https://technitium-console.pages.dev/dns-query. It knows one name, latest.technitium-console.pages.dev, and answers its TXT with:

v=1 latest=1.4.0 server=15.5

latest is the latest release on GitHub, the one install.sh installs. server is the oldest Technitium DNS Server it is made for: technitiumServerMinimum in that tag's package.json. A release is announced only once the Docker image latest is that release, so that pulling gets it. The format is frozen: consoles already installed read only this one, and ignore keys they do not know.

It reads GitHub at most once an hour and keeps the last good answer for up to a month, in case GitHub is down. That copy lives in Cloudflare's cache, one per Cloudflare location, and can be evicted sooner. It needs no secrets.

Deploying

A Cloudflare Pages project connected to this repository:

  • Production branch: main
  • Root directory: update-check
  • Build command: none
  • Build output directory: public

Running it locally

node --experimental-strip-types dev/update-check-serve.mjs

It listens on port 8853. To have it answer a fixed record instead of reading GitHub, set UPDATE_CHECK_FAKE='v=1 latest=9.9.9 server=15.5'. The harness's DNS server reaches it at the Docker network's gateway, as http://<gateway>:8853/dns-query.