Asking Instead of Guessing
Our repair steps suppress error output by convention, which keeps them quiet but meant we had been inferring failures from side effects. For this investigation we added a…
Read more →Notes from building KNJ Panel, in the order it actually happened.
blog /blɒɡ/ noun — 1. A web log. 2. Here: a build log. What we built, what broke, and what we learned.
Our repair steps suppress error output by convention, which keeps them quiet but meant we had been inferring failures from side effects. For this investigation we added a…
Read more →A follow-up repair did not run on a test server. The cause was a mismatch with the convention used elsewhere in the same script: other repair steps tolerate…
Read more →Our diagnostics ruled out several common explanations for a directory that would not accept an ownership change, without pointing to a new one. At that stage we chose…
Read more →The diagnostics showed that the preconditions for our repair were all satisfied, and that one of the two directories it touches had been updated while the other had…
Read more →A repair we had added did not appear to take effect on a test mail server, even when re-run. Rather than ship another blind change, we extended the…
Read more →The first real use of the new diagnostics page paid off immediately: webmail’s log directory had the package’s default ownership rather than the one the setup intended, so…
Read more →Phase 142’s key fix was real: the key length was confirmed, corrected and released, and the self-repair step ran successfully against the Mail Only satellite. Reloading the webmail…
Read more →Straight on from Phase 141: with the routing fixed, “Open Webmail” on a Mail Only satellite stopped returning an access error and started returning a server error. The…
Read more →During readiness testing on a multi-server stack, opening webmail for an account whose mail runs on a linked Mail Only server returned a 403. The webmail application was…
Read more →Same bug family as the mail-DNS fix from earlier that day, found while checking that fix live on a split mail and web install: the Email Deliverability page’s…
Read more →Two related pieces of DNS work, both triggered by watching a freshly created Mail Only satellite take over mail for a domain and asking what a proper hosting-panel…
Read more →Linking up a Mail Only server and DNS Only servers alongside a Main install surfaced something that had been missing since Mail Only first shipped: it never got…
Read more →Linking a Mail Only server and switching the active mail server has always resynced every existing mailbox’s routing and auth data immediately. What it never did, and never…
Read more →A small one: the static “nothing here yet” page nginx serves for any domain pointed at a server with no matching hosting account was still showing a generic…
Read more →A batch of real usage reports from a test install, all fixed in one sitting rather than piecemeal: nine separate issues spanning account creation, dashboards, safety guardrails and…
Read more →A different kind of audit from the fifteen before it. Every earlier one reviewed new code written since the previous pass. This one went back and checked the…
Read more →Phase 131 built the plumbing: the admin alert service, six new health-alert events, and webhook formats to carry them anywhere. What it did not build was one place…
Read more →The last item of the parallel build alongside Phase 131: the File Manager could list, download, upload, rename and delete files, but never let anyone see or change…
Read more →Audit #15 (Phase 130) closed out with the panel clean. Before the next release, one gap kept surfacing across almost every health-adjacent feature: detection without delivery. WAF health…
Read more →The first audit run explicitly as a readiness check ahead of a release, rather than only a post-feature diff. Scope widened past the usual code review to include…
Read more →