KNJ Panel · Live Build Log
Latest Updates
current: v0.16.59Every feature as it ships, most recent first. This is the same information behind the roadmap's status pills, kept here in full so nothing gets trimmed.
Controller Panel
-
Database Search & Replace — find and swap a value across every table in a database, right from the account panel. Built for the gap Restore from cPanel Backup surfaces: a migrated site's database can still have its old domain baked into a settings table (a WordPress siteurl, for example). Runs as your own database user, never as root. Values stored in PHP's own serialized format are unpacked, changed, and repacked correctly rather than string-replaced in place, which would otherwise silently corrupt them.
-
Restore from cPanel Backup, now in the client panel too — an account owner can import a real cPanel backup straight into their own existing account: files are only ever added (nothing already on the site gets overwritten), and a fresh database is created alongside whatever they already have. The controller-side version still creates a whole new account instead. Either way, email accounts, SSL certificates, and cron jobs found in the archive are listed for manual recreation rather than guessed at.
-
Restore a cPanel Account — upload a real cPanel backup and it becomes a working account here: website files and MySQL databases are restored automatically, with fresh database credentials rather than reused old ones. The domain comes from the archive itself and gets a fresh DNS zone on this server, not the archive's own DNS records. Email accounts, SSL certificates, and cron jobs found in the archive are listed for manual recreation instead of guessed at.
-
BoxTrapper — approving a held sender now releases everything of theirs already sitting in Pending straight into your Inbox, instead of only affecting mail from that point forward. Replying to someone via KNJ Webmail also approves them automatically, so a conversation you've already started never gets held again.
-
PHP Extension toggling moved to the same background-job pattern as Perl Modules and PHP PEAR Packages — closes out the same rare edge case for extensions that install their own command-line tools or documentation the first time they're enabled on a given server.
-
File and Directory Restoration — browse a completed backup's file tree and restore any single file or folder in place, without touching anything else on disk. A full account restore was already real; this closes the gap for "I just need this one file back."
-
Update reliability — self-updating a real install now keeps every system-level config file it manages in sync, not just the update mechanism itself. Perl Modules and PHP PEAR Packages installs also moved to the same background-job pattern already used elsewhere in the panel, closing out a rare edge case for modules that install their own command-line tools.
-
Backup User Selection — a new admin page under Backups listing every account with a checkbox controlling whether it's included in the automated scheduled backup run. On-demand backup of any single account, for either admin or owner, was never affected either way and still works exactly as before.
-
PHP PEAR Packages — a curated set of real, verified PEAR packages (Mail, DB, Auth_SASL, and more) an account can install for their own PHP scripts, one click, no admin needed. Same self-service pattern as Perl Modules.
-
Self-service Perl Modules — the same curated set of common CGI modules the Controller side already installs from, now reachable directly from the account panel's Software group, no admin needed.
-
MariaDB version upgrades — a guided major-version database upgrade, offering only real, currently-supported LTS releases as targets, never a rolling or release-candidate build and never a downgrade. A mandatory pre-upgrade snapshot (a crash-consistent copy of the database directory plus a full logical dump) gives a real way back before any upgrade runs, with a live terminal-style log the whole way through.
-
Statistics Software Configuration — real AWStats, not a reimplementation. A global toggle turns it on server-wide, then every account gets a new AWStats page under Metrics with a month picker and an Update Now button. Full browser, OS, search-engine, and referrer breakdowns on top of what Traffic & Visitors already shows.
-
Server-level Cron Jobs — schedule one-off sysadmin tasks (log rotation tweaks, cleanup scripts) that don't belong to any single hosting account, from a new page under System. Same real-crontab approach as the existing per-account Cron Jobs feature, so nothing here ever needs a terminal to set up.
-
A Feature Manager page, plus a real Perl module installer — Feature Manager edits which of 26 account-side capabilities each hosting package grants, all from one screen instead of opening every package individually; the same setting is also still editable from a single package's own edit form, both write to the same place. Twenty of those capabilities (things like Directory Privacy, Deploy from Git, IP Blocker, and Error Pages) were only cosmetically toggleable until now — the underlying page was still reachable directly even with the feature switched off for a package, so every one of them now genuinely blocks the page itself, not just its sidebar link. The Perl module installer sits alongside the existing PHP extension manager: a curated set of commonly needed modules (database drivers, HTTP clients, JSON/XML parsing) with live installed-state detection and one-click install.
-
Database Access Hosts — a server-wide view of every database user across every account and the remote hosts each is allowed to connect from, with a direct grant/revoke control, without needing to go through the account owner.
-
SSL Storage Manager — a full repository of every certificate this server actually has on disk, independent of which site (if any) is currently using it, so a certificate left behind after a domain was removed or a replacement never gets cleaned up is now visible and removable. Distinct from the existing SSL/TLS page, which only shows a site's current certificate.
-
A real web page template editor for the default and suspended-account placeholder pages, with a live preview and one-click restore to the built-in default — previously only editable by hand on the server. An outbound port-25 lockdown, off by default: every process on the server except the mail server's own delivery agent can be blocked from opening a direct connection to a remote mail server, closing the exact path a compromised account's script would use to send spam straight out, bypassing this server's own queue and DKIM signing entirely. And Security Questions — an unfamiliar-IP Controller login can now be interrupted with an extra security question, on top of any two-factor authentication already set up, with each admin or reseller choosing their own question and answer.
-
A quick-filter search box now sits above General at the very top of the sidebar in both the Controller and My Account areas — type and the nav narrows in place as you go, no page reload, with non-matching items and empty sections simply disappearing rather than greying out. Press / from anywhere on the page to jump straight into it, Enter goes to the first match, Escape clears it.
-
A full re-audit of the admin feature set against our own running code rather than trusted from notes — found two items that had been filed away as "not needed" months ago on the mistaken assumption they were still blocked by something that had since shipped. Both fixed, plus four real gaps built: Parked Domains gets an admin-side list across every account's addon domains; Spam Scanner Tuning controls the spam scanner's own process limits; Database Configuration exposes a deliberately small, safe slice of server-wide database tuning, not everything; and a new Security Policies page rolls up every login-protection feature in one place, plus a genuinely new one — requiring two-factor authentication for every Administrator and Reseller, not just leaving it optional. One item was deliberately redesigned rather than built as originally scoped: a full command-line terminal would mean opening root access directly from the browser, which runs against the unprivileged-app design this panel has held to since day one. Built Diagnostics instead — real-time server status checks (uptime, disk, memory, open ports, service health) through the same tightly-controlled path every other admin action already uses, with no new door opened.
-
Webhooks, closing out Everything else — subscribe an endpoint to real account events (created, suspended, unsuspended, terminated) or SSL issuance failure, and every delivery is a signed POST you can verify. Also found and fixed a real gap while wiring the SSL event: the existing "notify on SSL issues" setting was being saved but never actually triggered an email — it does now, and DNS resolver configuration, admin notification routing, and remote reboot all turned out to already be shipped and just weren't marked Live.
-
Traffic & visitor statistics — a new Traffic page for any account, reachable from its row on List Accounts: requests, unique visitors, bandwidth, and a response-status breakdown for a chosen month, plus top pages and top referrers. Built on the same access-log parsing already powering bandwidth tracking. Also found and corrected while going through this section: Server-wide settings and Timezone configuration were already fully shipped on the Server Settings page and just hadn't been marked Live on the roadmap.
-
Live resource monitoring, closing out Backup & Server Status — a real server-wide process list, sorted by CPU usage, with a per-process Kill button for a genuinely runaway script, plus a full disk usage breakdown across every real filesystem on the box. Killing anything the panel or hosted sites depend on (nginx, PHP-FPM, MariaDB, SSH, BIND) is refused outright, live-verified by actually trying it against the running server and confirming it stayed up.
-
The Packages & Resellers section, closed out — a reseller now gets a real detail page (usage totals across their accounts, their own login independently suspendable without touching accounts they manage), per-package feature control (toggle FTP, WebDAV, App Installer, Cron, Backups, and API Tokens per hosting package), bulk account reassignment between resellers, and an 8-permission checklist governing exactly what a reseller can do. Account migration/transfer rounds it out — one-click export of a completed backup to a portable archive, and an admin-only import that creates and restores a fresh account from one, verified end to end with a real disposable account: files and its database round-tripped byte-for-byte through a full export → delete → import cycle.
-
OS package management — search the server's apt package index right from the panel and install a package on demand, the same access as a terminal but without needing one. Runs queued with a live terminal-style log, and closes out the last item in the Software & PHP section.
-
The Databases section, closed out — a visual database browser lists every database on the server, not just ones the panel created, and lets an admin drill into a table's rows or run arbitrary SQL directly (the same root-equivalent access a real WHM operator already gets from phpMyAdmin). Database Maintenance Tools adds a live server status view, the real process list with a per-process Kill button, a slow query log toggle, and one-click repair/optimize for any database.
-
The SSL/TLS section, closed out — CSR generation lets an admin generate a fresh private key and CSR for any hosted site, entirely in-process via openssl, never touching disk outside the request. Certificate inventory turns the existing per-site SSL list into a genuine one: every certificate now flags itself once inside 30 days of expiry, and the panel's own certificate appears alongside every hosted site's rather than living only on its own separate page. And TLS policy configuration adds a server-wide choice between Modern (TLS 1.3 only) and Intermediate (TLS 1.2+1.3, matching Mozilla's own well-known presets exactly) — one setting, applied to every certificate on the server at once, verified live with real TLS handshakes on both settings before shipping.
-
API Tokens, closing out the Security section — token abilities now match what WHMCS's own cPanel integration calls for hosting automation (create, suspend, unsuspend, terminate, change package, reset password), each independently scoped rather than one broad read/write pair, so a billing integration token minted only to suspend on non-payment can never also terminate or create accounts. Account-level tokens (DNS read/write) ship alongside it, and both now have a real API for a token to actually call — this is also the foundation a future billing system will automate against.
-
Access Control and a central Password Policy, two items in the Security section — per-service IP allow/deny lists let Panel Login, SSH, FTP, Mail, and DNS each be switched from open-to-everyone to allow-listed at the firewall level, independent of and in addition to the existing fail2ban brute-force protection. Password strength policy replaces the fixed minimum length enforced per-form with one central, admin-configurable policy (length, mixed case, numbers, symbols, and an opt-in check against known data breaches) that now governs every password set anywhere on the server.
-
The Accounts section, closed out — the four genuinely new items shipped together, alongside marking two already-built ones (Edit Account, Package upgrade/downgrade) correctly on the roadmap for the first time. Bulk account removal adds select-all/per-row checkboxes to List Accounts, mirroring KNJ Webmail's own bulk-select pattern — each account is still deprovisioned through its own background job, just triggered together. Admin password reset gives an admin the same auto-generate-or-set-explicitly choice already offered at account creation, for resetting an existing owner's login. Access log downloads brings the account panel's own Raw Logs page to the admin side — the same privileged log-read action, just reachable per-account from List Accounts. And broadcast messaging sends one email to every account owner on the server, queued rather than sent inline so a large account list can't hold up the request that triggers it.
-
Service Configuration, closed out — the five remaining items in that section all shipped together: mail relay & filtering configuration now covers both sender and recipient blocklists, wired into the same restriction chain the rest of mail security already builds so nothing can independently reopen the server as a relay. WebDAV access mounts a hosting account's files over real nginx WebDAV, not a separate daemon, scoped to a whole site or a single subdirectory. Log rotation is now admin-configurable (frequency, retention, compression), with a 32-day retention floor enforced server-side since bandwidth reporting rebuilds each month from the same rotated logs. Service certificates gets a read-only page making explicit what was already true — the panel issues one certificate and every TLS-speaking service reuses it. And the Service Manager can now start, stop, and restart individual services from the UI, with every control running as a background job rather than inline with the request that triggered it, and stopping a service the panel itself depends on blocked outright.
-
Panel Updates — a real one-click Update Now button, with the same live terminal-style log as System Updates so you can watch the process happen. The SSH command is still shown alongside it for anyone who'd rather run it themselves. Backed by a new dedicated release pipeline that builds and ships every version.
-
Licensing — a fresh install now requests a 30-day trial automatically from our own separate licence server, tied to the server itself so wiping and reinstalling can't grant a second one. A persistent banner counts down the days remaining; once a trial or licence lapses, the Controller and My Account areas lock to a new Licence page (under Servers) until a real key is activated — existing sites, mail, and DNS are never touched, only the panel's own management UI.
-
Panel login security — a new fail2ban jail bans an IP after 5 failed panel logins in 10 minutes, the same real network-level protection SSH already had. Opt-in Two-Factor Authentication for every role, from a new My Profile page: an authenticator app (QR code setup), recovery codes, or a one-time code emailed on request as a third fallback if both of those are unavailable.
-
A real backup engine — full account backups (files, every database, all mailboxes, plus a DNS zone and FTP config snapshot) written locally, scheduled per the existing daily/weekly/monthly settings or triggered on demand. Restore is real, not a stub — available to both the admin and the account owner, and regenerates the account's files, databases, and mail from exactly what was captured at backup time. Live-verified against a real disposable test account: files and a database deliberately corrupted after backup, then restored, confirmed byte-for-byte back to the original with correct ownership.
-
FTP Settings — server-wide vsftpd tuning (connection limits, idle session timeout, upload umask, passive port range, welcome banner). Service Status now also reports vsftpd's live state alongside the other daemons.
-
FTP account support — vsftpd, with SQL-backed authentication using the same architecture as mail (a read-only MySQL user queried directly by PAM, no separate virtual-user database to keep in sync). Every FTP session runs as the account's own real system user, so uploads are ownership- and quota-consistent automatically. Live-verified over real TLS: upload, chroot containment, and a scoped sub-account correctly jailed to just its own subdirectory.
-
Security Scan — a new self-service server health check at the top of the Security nav group. Checks the server's own firewall, SSH's effective configuration (not just what a config file says), fail2ban, unexpected public ports, database exposure, and automatic security updates, with a plain-language recommendation for anything that isn't a clean pass and an overall 0-100 score. Read-only, and distinct from our own internal code security audits.
-
Disk quota is now a real, kernel-enforced ext4 quota — a write past an account's limit fails at the filesystem level, not something the app polices after the fact. Bandwidth has no OS equivalent, so it's tracked by parsing Nginx access logs (self-correcting, re-derived from scratch every refresh rather than a running total) and an account over its limit is auto-suspended. Both refresh every 15 minutes via the app's first scheduled job. List Accounts and the account-side Disk & Bandwidth page both show live usage against the package limit.
-
Branded default and suspended-account placeholder pages — self-contained static pages with the real KNJ logo, shown on a freshly created domain and on a suspended one. Live-verified end to end on real DNS/SSL, including catching and fixing a bug in the provisioning script that was silently breaking every action.
-
Modify an Account (edit owner, package, reseller after creation) and Suspend/Unsuspend Account — websites go down to a suspended page while mail and DNS keep working, ready for a future billing system to trigger automatically. Server Settings: upstream DNS resolver configuration, server contacts (update/SSL-failure notification emails), and a graceful reboot button. Account SSL page can now generate a certificate signing request and private key in-browser. KNJ Webmail v0.7.1 — bulk CSV contact import.
-
Track DNS (live dig lookup in the panel), Server Settings (timezone via timedatectl + OS hostname via hostnamectl, linked from the post-install Server Setup flow), Raw Log Download (per-domain nginx access and error logs on the account side).
-
KNJ Webmail v0.7.0 — contacts, with autocomplete on compose and one-click save from any message. Verified against the same real external Gmail inbox.
-
KNJ Webmail v0.6.0 — rich (HTML) compose with a sanitized editor and real multipart/alternative sending. Verified against the same real external Gmail inbox.
-
KNJ Webmail v0.5.0 — multi-select bulk move/delete. Verified against the same real external Gmail inbox.
-
KNJ Webmail v0.4.0 — a Settings page for autoresponder and Outlook-style mail filing rules, sortable columns. Verified against the same real external Gmail inbox.
-
KNJ Webmail v0.3.0 — create your own folders and drag messages onto them to file. Verified against the same real external Gmail inbox.
-
KNJ Webmail v0.2.0 — real folders (Inbox/Sent/Drafts/Trash/Spam) with unread counts, delete-to-Trash, attachments, in-folder search, pagination, and drafts. Verified against the same real external Gmail inbox, both directions.
-
KNJ Webmail v0.1.0 — our own from-scratch webmail client, built into the panel and styled to match it, selectable alongside Roundcube. Verified against the same real external Gmail inbox, both directions.
-
Webmail — real Roundcube, wired to the existing Dovecot/Postfix, own DB and PHP-FPM pool, verified against a real external inbox. Create Account can now set a password explicitly instead of only auto-generating one.
-
Server info & stats bar (hostname, load, RAM/disk) on every Controller page; panel version tracking with an update-available ticker; a System Updates page for pending OS packages with a live terminal-style log.
-
Fixed orphaned mail storage left behind when an account or domain is removed.
-
Addon domains, per-zone DNSSEC, DNS clustering (master-side), inline bulk-save zone editing, restore-default-records recovery, outbound mail relay, editable mail server config, mail queue/delivery/statistics tooling, filter incoming email by domain/country, greylisting, spam filtering, autoresponders, email deliverability checker.
-
MultiPHP Manager (install/switch versions, per-account INI overrides, extensions, ionCube), SPF/DKIM/DMARC automation, DNS zone templates, nameserver diagnostic report, DNS cleanup tool, domain forwarding.
Client Panel
-
An email deliverability checker for your own domains — SPF, DKIM, DMARC, and reverse-DNS status for every domain on your account, with a one-click repair for anything misconfigured. The same check the Controller side has had for a while now, reachable from My Account too.
-
A real home screen for My Account — account status, primary domain, disk usage, and bandwidth up top with real numbers pulled straight from your account, your username, home directory, and server information underneath, and every section from the sidebar laid out as its own card with every feature inside it listed underneath, each with a plain-language description of what it does and its own icon from a new icon set built specifically for the panel. The sidebar itself also gained a quick-filter search box above General, so finding one feature among the dozens doesn't mean scanning the whole list — press / from anywhere to jump into it.
-
The App Installer, now a real catalog — Drupal, Nextcloud, MediaWiki, and phpBB join WordPress, each installed through its own official CLI installer (not a reimplementation), running in the background with a live install log rather than blocking the page for two-plus minutes. Confirmed a real gap along the way: phpBB's historical download host had gone stale years behind current releases, so its install now builds from the current source instead.
-
phpMyAdmin — the real, industry-standard database tool, built into every account and always on, exactly like cPanel's own phpMyAdmin link. A permanent fixture, never something a hosting package can hide. Signs you straight in as one of your own database users — you never type a database password into a login form.
-
The Preferences section, closed out — Team Access lets you invite other people to help manage your account. They get their own login, scoped to exactly the areas you grant (Files, Domains, Email, Databases, Metrics, Security, Software, Advanced, Preferences) — never your password, and nothing here can grant access to manage other people's access, that stays yours alone.
-
The Advanced section, closed out — a DNS Lookup tool runs a live dig query against any hostname, the same tool the Controller area has had for a while now finally reachable from the account side. Also fixed: the Password & two-factor roadmap row claimed self-service password change was missing — it wasn't, it's been on the My Profile page the whole time, right next to two-factor setup.
-
The Security section, closed out — SSL/TLS management now covers every domain on the account, not just the primary one: a bulk certificate-status table across every domain, with a click-through to manage any single one's issuance, retry, CSR generation, or custom certificate install. CSR generation itself already existed, it just wasn't reachable for an addon domain until now.
-
The Metrics section, closed out — an Error Log viewer shows the last 200 lines of a domain's Nginx error log, newest first. Bandwidth usage now breaks down per domain on the Disk & Bandwidth page, not just an account-wide total. And a new Traffic & Visitors page (requests, unique visitors, response codes, top pages, top referrers, with a domain + month selector) covers both the roadmap's "Visitor summary" and "Traffic statistics dashboard" rows at once, since they were always the same underlying data. Also fixed along the way: Raw access log download had actually shipped back on 2026-07-29 as part of Raw Logs, but the roadmap row was never updated to say so.
-
The Databases section, closed out — a guided Quick Setup wizard (database, user, and a full-access grant in one step), a visual database browser (browse tables and rows, and run queries as your own database user — never an elevated one), and Remote Database Access (allow a specific IP address to connect directly to your own databases).
-
The Files section, closed out — WebDAV access (already live, roadmap just hadn't caught up), Deploy from Git (link a repository, push a webhook to redeploy automatically, or trigger it manually with a live terminal-style log), and Image tools (thumbnail generation, in-place resizing, and format conversion between jpg/png/gif/webp, built directly into File Manager).
-
The Domains section, closed out — Dynamic DNS (a long, unguessable update URL per host, for a router or device with a changing IP — no login required to update it), Quick Site Publisher (a simple title/tagline/contact starter page for any domain that doesn't have a real site up yet), and WordPress management (check for and apply core/plugin/theme updates, or clone a working copy to a staging path with internal links rewritten automatically).
-
The Email section, closed out — nine new features in one pass: Mailbox Storage (real disk usage per mailbox), Bulk address import (CSV forwarders), Delivery Tracking (your own domains' delivery activity, never anyone else's), Mail Filters (manage any mailbox's filing rules directly, plus a "global" option that fans one rule out to every mailbox at once), Spam Scoring (an optional stricter per-account threshold layered on the server-wide filter), Greylisting opt-out (skip the first-attempt delay for your own domains), Mailing Lists (one address, many members), Mail Encryption (a personal S/MIME certificate to import into your own mail client), and a Challenge-Response gate (unrecognized senders held until you approve them, never landing in Inbox unreviewed). Calendars & contacts sync stays Planned — it genuinely depends on a sync service that doesn't exist yet, not something worth half-building. Also fixed along the way: mail filing rules silently landing back in Inbox instead of their intended folder, because the target folder was never auto-created.
-
API Tokens — a new page under Security. Create a scoped token (read or write access to your DNS zone) for your own scripts to call, without ever sharing your actual login.
-
Licensing — if the server's licence ever lapses, My Account locks to a status page the same way the Controller does, with the same guarantee behind it: your own site, mail, and DNS keep running regardless — this only ever affects panel access itself, never what you've already built.
-
Cron Jobs — a new page under Advanced. Schedule recurring commands using cPanel-style presets (Every Minute, Every 5 Minutes, Once Per Hour, and more) or set the schedule manually — jobs run as your own account, with output emailed to a Cron Email address you control.
-
Two-Factor Authentication — a new My Profile page (top of the sidebar) to turn on 2FA for your own login: an authenticator app, recovery codes, or an emailed code if you lose access to both.
-
Backups — a new page under Files. Back up your account on demand, download any piece of a backup (files, a specific database, mail), or restore your whole account from a previous backup.
-
FTP Accounts — a new page under Files. Every account gets one FTP login automatically (full access to your home directory); create additional scoped logins jailed to a specific subdirectory to hand out upload access without sharing everything.
-
Disk Usage renamed Disk & Bandwidth — now shows real quota-enforced disk usage and this month's bandwidth against the package limit, both with a live progress bar, alongside the existing folder-by-folder breakdown.
-
KNJ Webmail — a second webmail client option, built into the panel and matching its styling, selectable from the Email Accounts page alongside Roundcube.
-
Custom MIME type mappings per domain.
-
Disk usage breakdown, directory password protection, leech protection (auto-blocks a shared/leaked directory login), IP blocking, hotlink protection, catch-all address, website compression, directory listing style, custom error pages, contact information & account preferences.
-
Multiple domains per account, autoresponders.