Changelog

Recent changes to KBHost.

v2026.08.11

  • DNS tool: the NTA 7516 check now requires the domain's own `v=NTA7516-1` declaration, the TXT record that tells other parties which certified service accepts its secure mail; the green checkmark only appears when that record is published and still within its validity period
  • DNS tool: the declaration also names the secure mail provider, so a domain is recognised even when its provider is not one this tool knows or its SPF record has been flattened into IP ranges
  • DNS tool: the NTA 7516 badge now has three states — green when everything is in place, orange when the mail security is fully configured and only the declaration is missing, and grey when more is missing
  • Much faster lookups: a domain whose IP had an unresponsive reverse-DNS zone made the page hang for ten seconds (twenty on the IP page), and the DKIM selector guesses were queried one after another. Reverse lookups are now time-bounded and the DKIM guesses run at the same time, taking a typical lookup from about two seconds to half a second

v2026.08.09

  • IP WHOIS: the result page now shows the reverse DNS (PTR) hostname of the IP, in its own table directly under the "IP WHOIS" heading; when the IP has no PTR record the table says so

v2026.08.07

  • Fix: code blocks were spaced inconsistently - the line above the first block in an article sat a full blank line away from it while every block below it sat tight against its line. A code block written inside a paragraph is now given its own place in the flow, so every block hugs the line that introduces it
  • Many more languages get a badge: Python, PHP, JSON, INI, Dockerfile, nginx, Apache, diff/patch and .reg files were added, and shell detection now covers git, FreeBSD/OPNsense (`pkg`, `sysrc`, `opnsense-code`), make, ssh/scp/rsync, openssl, cron, find and shell scripting itself - so build and terminal articles no longer show unlabelled blocks
  • Short snippets like a lone `sh` or `ls -la` are recognised instead of being left blank
  • Cross-platform command-line tools (`gh`, `winget`, `choco`, `scoop`, `az`, `aws`, `kubectl`, `helm`, `terraform`, `dotnet`) are recognised too: on their own they are labelled CMD, and they switch to Shell as soon as the block also shows a unix path or a shebang
  • Detection can be overridden per block with `<pre data-lang="nginx">` (or `class="language-nginx"`) for anything the guesser gets wrong
  • The Copy-link button now puts the file extension in the snippet URL, so a shared link downloads as `.sh` or `.ps1` rather than being guessed at again server-side

v2026.08.01

  • Articles can now be tagged: a comma-separated Tags field on the article form creates tags on the fly, and a new Tags admin page lists every tag with its article count for renaming or deleting
  • Search matches tags: typing a tag (or part of one) in the live-search box or on the search results page also finds the articles carrying that tag, ranked below direct title hits
  • The tags tables are created automatically on first use; `database/tags.sql` documents the schema for manual setup
  • Fix: a link (or other inline tag) whose HTML wrapped onto a second line in the editor rendered a stray line break after it
  • Admin: a formatting toolbar above the article HTML editor - bold, italic, links, headings, lists, code blocks, quotes and show/hide sections, with Ctrl+B / Ctrl+I / Ctrl+K shortcuts and working undo

v2026.07.22

  • DNS tool: NTA 7516 (Dutch secure e-mail standard) check, with an "NTA 7516" badge next to SPF/DMARC/DKIM — green when a domain passes every check, grey when it does not — and a details section showing MX, SPF, DKIM, DMARC, DNSSEC and secure-mail-provider results per domain
  • DNS tool: a domain only counts as NTA 7516 compliant when its mail runs through an accredited secure mail provider (ZorgMail/EZorg, Zivver, SecuMailer, Smartlockr) — the same provider has to be authorized in the SPF chain and sign with DKIM, so a half-finished rollout is reported as such; DNSSEC is verified live via DNS-over-HTTPS
  • DNS tool: the NTA check counts SPF DNS lookups through the whole include chain (RFC 7208), follows `redirect=` and accepts records that put a modifier after `-all`; DKIM detection now also tries the ZorgMail/Enovation healthcare selectors

v2026.07.02

  • Admin: added a cross-link button to jump between the KBHost and FileHost admin panels (the public-header cross-link is now driven by the same config, no hard-coded URLs)
  • Uploads: the upload folder now targets kbhost.nl, uploaded files can no longer be executed, and a failed upload reports whether the folder is missing vs. not writable
  • Fix: search-result snippets and long breadcrumb titles showed a literal "&hellip;" instead of an ellipsis (…)
  • Fix: pagination and the homepage/dashboard lists could error on stricter MySQL/MariaDB builds because list limits were sent as text — numeric query values are now bound as integers
  • Admin: adding a category whose slug is already taken now shows a friendly error instead of a 500 page (already the behaviour for downloads)
  • Faster pages: the admin dashboard no longer scans the uploads folder just to count files, category/article pages load the parent category in the same query, and front-end scripts now load deferred
  • Under the hood: shared admin-controller base removes repeated auth/layout/CSRF boilerplate; dead code removed
  • Category count badges now stay on the same line as the category name — in narrow columns (e.g. FileHost's multi-column layout) a wider badge could push the name onto a second line
  • Admin: fix the Delete button on the Categories page — it sat inside the drag-reorder form (invalid nested forms), so clicking it silently reloaded instead of deleting

v2026.07.01

  • FileHost: downloads catalog on filehost.nu, sharing this codebase — same look & feel, a search box over the downloads, its own host-scoped admin, and download links that redirect straight to the file
  • FileHost: download permalinks are now `/download/{slug}` (stable even if the download changes category), and each download can pick its own list icon (lightbulb, download, document, link, lock or login)
  • Admin: leaving the slug field blank now derives the slug from the name/title instead of saving an empty slug
  • FileHost admin: a drag-and-drop Order page to arrange downloads within each category (categories already reorder by dragging rows on the Categories page)
  • Header: leaner mobile layout — the tool buttons now collapse to three rows, with the No Sleep timer (and its label on the smallest screens) hidden to keep everything on one line

v2026.06.30

  • Search box now focuses automatically on the homepage
  • Added this changelog page
  • Mobile: header laid out in three rows, search text left-aligned

v2026.06.24

  • Diff viewer: wider line-number gutters for long line numbers

v2026.06.12

  • Admin uploads manager: copy link, delete, uploader IP
  • Article count badges link through to their category
  • Header redesigned with Lookup, Compare, Upload and FileHost buttons
  • File upload straight from the header
  • Faster page loads (asset cache-busting, homepage query fix)
  • Security hardening: CSRF protection, vote integrity, brute-force login limits

v2026.05.27

  • DNS tools: SPF and DMARC syntax validation
  • DKIM badge turns green for any valid record

v2026.04.16

  • DNS tools: filter out wildcard-domain noise

v2026.04.10

  • Initial release