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 "…" 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