Repository navigation
v1.2.0: Allowed and Blocked are now one Blocking section, and Docker gets an image
Allowed and Blocked are now one Blocking section, and Docker gets an image. Overview, Rules and Lists: what blocking is doing, your own rules and your lists, each in one place. It is a deliberate exception to "design only", written down with its limits: it calls only endpoints the server already has, with the stock console's own actions and wording, and Settings › Blocking is left exactly as it was. If Technitium runs in Docker, a small image now copies the console into a volume that the official server serves, and updating it restarts nothing: see Docker. There is a light theme now, and it follows your system unless you pick one. On the way, the Dashboard's chart learned to tell the time the way the stock console does.
🌗 Light theme
- Change Theme is back in the account menu, as in the stock console: Use System Theme (default), Light Theme and Dark Theme, applied the moment you click. Asked for by @scgf in #1, and by @armgenio in #2.
- It remembers what the stock console remembers. The choice is kept under the same browser key, so if you picked Light in the stock console you get Light here without doing anything, and the other way round. Follow the system and it changes when your system does, without a reload.
- The light palette is measured, not inverted. Every text colour reaches 4.5:1 on every surface it is drawn on, field borders and the focus ring reach 3:1, and the chart colours were checked against each other again on white, including for red-green colour blindness. Technitium's amber stays the fill; where amber is text on white it darkens so it can be read.
- Amber is not offered. The stock console's fourth theme is not drawn; a browser that has it stored gets Dark, and its choice is left as it was.
- The charts repaint when the theme changes, and series you switched off stay off.
✨ The Blocking section
- Overview. Total Queries and Blocked with a trend line under each and Blocked's share of the total, Block List Domains and Your Rules. Blocking's status, with Disable for the stock console's eight durations and, while paused, the time it comes back. Allowed against blocked over time as stacked bars, and a ring with the blocked share, for the Dashboard's five fixed periods and with its node selector and memory. Top Blocked Domains with Allow Domain and Top Domains with Block Domain, in a menu on each row, as on the stock Dashboard. And Recently Blocked: the last ten blocked queries, from the app that logs them.
- Rules. Every domain you blocked or allowed by hand in one table, filtered by All, Blocked or Allowed with their counts, searchable, and paged 50 at a time however many there are. Delete asks as the stock console asks. Tree switches to the domain tree you already know. Import, Export and Flush sit at the foot, each for Blocked or Allowed.
- Block or allow a domain. One field with Block and Allow, on Overview and on Rules. Enter blocks, as the stock console's form does.
- Lists. Each block list URL is a row: its readable name when it is in the Quick Add catalogue, an Enabled switch, its type and Remove. Add a block list or an allow list by URL or with Quick Add. Changes wait in a bar with Save and Discard, so even Quick Add › None can be undone, and Save sends only the list URLs, cleaned as Settings cleans them. Block List Domains, Allow List Domains and the next update come with Update Now, and the figures say they are updating until the server has finished.
- More lists in Quick Add. On Lists, Quick Add has a search field that filters by name or by the list's host, and after Technitium's catalogue it offers more lists chosen by this console, under More lists. Settings › Blocking offers Technitium's catalogue as before.
- Old addresses still land.
/allowed/and/blocked/open Rules filtered to that list, and the filter stays in the address, so it survives a reload. - Nothing hides for want of a permission. A panel you cannot view shows a padlock and the permission it needs; a control you cannot use is disabled and says why. The section appears for anyone who can view Blocked or Allowed.
🧰 Installer
ghcr.io/bygarcia/technitium-console, for amd64, arm64 and arm/v7, on Technitium 15.5 or later. It carries this release's tarball, byte for byte, checks it against its checksum again every time it runs, copies the console into the volume and exits. Pin:1.2.0, follow:1.2, or take:latest.- On a Docker host the one-line installer prints the exact steps for your containers, with their own container, service, file and volume names: in, and with
--uninstall, out. It used to print a command that did not work (sudo sh --dir …) and a layout that 15.5 no longer needs. - Installing into a container's own files is called out: they are gone the next time the container is recreated.
- A folder holding only your
json/*-custom.jsonlists counts as empty, so they can be in place before the first install. --dir /is refused. It used to fall back to the server's own web root and install there. A folder holding a DNS server's configuration (dns.config,zones/*.zone…) is refused too, whatever else is in it.- Stopping the installer stops it. A Ctrl-C or a
TERMin the middle of a run used to clean up its working files and carry on without them; now the run ends there, and the next one picks up from a clean slate. A run it refuses leaves nothing behind, not even an empty/var/lib/technitium-console.
🛠 Fixes
- The Dashboard's chart tells the time as the stock console does. The console never asked the server for UTC (
utc=true), so the hours on the axis were the server's clock and not yours, and shifted whenever the two sit in different time zones. It now asks for UTC and labels the hours in your local time, as the stock console does. - The Allowed and Blocked tree, now Rules › Tree, has no cluster node selector, which the stock console only has on Cache, and after a change it reads the tree back from the primary node, as the stock console does.
- No stray scrollbar beside the section tabs. Chromium on Linux drew one next to the tabs of Settings, Logs, Administration and DHCP.
- Drop-down lists show their options whole. A list is now as wide as its longest option, within the window, and scrolling it no longer closes it.
- Big figures stay inside their cards on the Dashboard. A Block List of millions of domains ran out of its card in Server. Server now has two columns while it sits beside Queries, so nine characters fit at full size, and any figure that is still too long for its card is drawn smaller instead of spilling out. Reported by @armgenio in #2.
🧪 Under the hood
- Overview, Rules and Lists are also tested against responses recorded from a real server, and the rules table against 10,000 rules.
CONVENTIONS.mdwrites the Blocking section down as a deliberate deviation, with its four limits and the two behaviours a maintainer would not guess.- Every image is checked on each of its three platforms to carry exactly the release's tarball before
latestand1.2move to it. - Every push to
developbuildsghcr.io/bygarcia/technitium-console:develop, the same way a release is built, for trying changes before they are released. It is not for production, and it never moveslatestor a version. - New issues start from a Bug report or Feature request form, which asks for the console and server versions and labels the issue.
- Everything in the repository is in English, and
npm run lint:languagenow reads every file, not onlysrc/. The notes from the design process, which were in Spanish, are no longer part of the repository.
Install or update: run the one-line installer from the README again. Which console goes with which server: CHANGELOG.
On Docker: docker compose pull technitium-console && docker compose up -d technitium-console, or pin ghcr.io/bygarcia/technitium-console:1.2.0. See Docker.
What's Changed
New Contributors
Full Changelog: v1.1.3...v1.2.0