Build 042
Latest 2026-05-08Fixed
- Record drawer: “Discard changes?” dialog no longer appears after a successful Save or Delete on a record — the dirty-check now only runs when the user actually dismisses the drawer (Cancel, X, or overlay click)
BackendSide DNS Manager
Full release history and version notes for BackendSide DNS Manager – self-hosted, web-based authoritative DNS management for BIND 9.
Build numbers are continuous across all packages; the version stays at 0.1.0 until the first tagged release. Format follows Keep a Changelog.
Fixed
Changed
.rpm now installs cleanly on RHEL 8, 9, and 10 (and AlmaLinux / Rocky equivalents) — the package payload was switched to gzip compression because RHEL 8's package manager cannot read the newer zstd formatbackendside-dns-manager-0.1.0-041.x86_64.rpmAdded
logrotate so the shipped log rotation rules actually run on a default systemChanged
try-restart so the new binary takes over without manual intervention — same behaviour on .deb and .rpmCSK instead of KSK/ZSK — matches what rndc dnssec -status reportsFixed
events list — a webhook subscribed to zone.created only fires on zone-create; previously every webhook fired on every event regardless of the selectionFixed
0 issue "letsencrypt.org") instead of wrapping the whole value in quotes, which previously broke issue, iodef, and issuewild recordsFixed
; (semicolons) are no longer truncated at the first semicolon by the zone-file parser[email protected] are now correctly converted to RFC 1035 SOA RNAME format on disk and back to email form in the UI/API — they no longer get mangled on save@ as the name (a common zone-file shorthand for the apex) are now accepted — fixes the www CNAME @ record silently being dropped from the basic-web and full-stack templatesAdded
ns1.example.com. for example.com), the matching ns1 A record is added automatically using the configured server IP — applies on zone create, zone update, and record create/updateFixed
ns1.<domain> — the on-disk SOA is re-read and preserved across subsequent record writesFixed
ns1.example.com. into the relative ns1.example.com, which BIND then expanded back into ns1.example.com.example.com. and refused to load the zone — affects NS, CNAME, PTR, MX, and SRVAdded
/etc/named on RHEL, /etc/bind on Ubuntu), service name (named vs bind9), package manager (dnf vs apt-get), and ownership (named:named vs bind:bind); SELinux contexts are restored automatically on RHEL.rpm package available alongside .debAdded
make rpm target with rpm spec, plus AlmaLinux BIND install/setup scripts — first .rpm built on AlmaLinux 10.1Fixed
null and crashed the page render — empty lists are now sent as []Added
code field (ZONE_NOT_FOUND, ZONE_ALREADY_EXISTS, RECORD_NOT_FOUND, BIND_RELOAD_FAILED, DNSSEC_ALREADY_ENABLED, etc.) alongside the existing human messageChanged
Added
dig against any name server (default: the local BIND) without leaving the dashboard — type whitelist covers A/AAAA/MX/TXT/NS/CNAME/SOA/PTR/CAA/SRV/ANYAdded
X-Webhook-Signature HMAC-SHA256 header signed with the webhook secret; per-webhook “Test” button sends a synchronous ping; table shows last-triggered timestampAdded
named-checkzone, imports it, and reloads BINDAdded
.deb now installs an /etc/logrotate.d/ config (daily, 14 rotations, gzip, copytruncate) and creates /var/log/backendside-dns-managerLOG_FORMAT=json switches all logger output to one JSON line per record ({"time","level","msg"})Fixed
Added
Added
.zone file with named-checkzone, classifies them as New / Conflict / Invalid, and imports the ones you select in a single reload/etc/backendside-dns-manager/audit.log — new System → Audit Log page lets you scan the most recent 50 / 100 / 200 / 500 / 1000 entries with user, IP, action, and targetAdded
named.conf.options (recursion, query log, version-hide, zone name checking, custom directives) — changes are validated with named-checkconf before applying and trigger an automatic reloadempty, basic-web, mail-services, full-stack) selectable when creating a zone, plus an API for managing custom templatesAdded
/auth/login and /api/*), admin login IP whitelist (CIDRs), API key IP whitelist (CIDRs), port firewall (managed iptables chain, IPv4 + IPv6, flushed on graceful shutdown), and a self-lockout guard that warns before you apply rules that would block your current sessionAPI_KEY from config.env keeps working as a fallbackAdded
dnssec-policy "default"; inline-signing yes;) — per-zone “DNSSEC” tab on Zone Detail with enable / disable toggle, keys table (tag, algorithm, role, dates), DS records copy-paste ready for your registrar, live rndc dnssec -status output polling every 4 seconds while waiting for keys to appear, and a “Signed” chip on the zones list and zone headerAdded
Added
Changed
Fixed
zones.conf lock prevent overlapping writes from racing each otherzones.conf is rebuilt before the zone file is removed, then BIND is reloaded — previously the three steps could race and leave the include file pointing at a missing filezones.conf fails after the zone file was written, the orphaned file is removed instead of left on diskAdded
Added
/etc/resolv.conf, temporarily points at 1.1.1.1 and 8.8.8.8 for the duration of the install, then restores the original (preserving the symlink-vs-file shape) — no more manual resolv.conf editing to get past the installAdded
Added
/records) — search and filter every record across every zone in one tableFixed
Changed
Added
/login on 401, full setup wizard flow wired upAdded
index.html to a Vite + React + TypeScript build, embedded in the binary — initial bundle: 149 KB JS + 25 KB CSSAdded
warning field when the underlying rndc reload reports a problem, so the UI can surface it instead of silently succeedingFixed
99 per day — the YYYYMMDDNN counter rolls into the next day correctlyJWT_SECRET=changeme is rejected at startup so a default secret can't slip into productionRemoved
index.html; dead internal/config/ and migrations/ packages deletedChanged
-manager suffix.deb after a series of encoding fixes from PowerShell touching files on Windows)Fixed
confirm() dialogs with the project's ConfirmDialog modalFixed
bind9.service vs named.service)Fixed
EnvironmentFile path was .env, corrected to config.envAdded
.tar.gz of all zone files and BIND configAdded
Fixed
Added
SETUP_COMPLETE ordering (set only after admin creation)Added
#0a1027 sidebar, coral #ff5a1f accent, Inter typeface, split-pane logindpkg postinst outputInitial Features
X-API-Key for programmatic clients, Authorization: Bearer for the web UIzones.conf management, service controlpostinst generating the API key and JWT secret on install.buildnumber), printed on startup and during install0.2.0
1.0.0
BackendSide DNS Manager
View Product & DownloadBuilds
API Reference
REST API Documentation →