Skip to content

History / Installing on Linux

Revisions

  • The Installing on Linux page walks the first domain in the Control Deck, with curl kept as the alternative, says what the Deck reaches by the census of 17 September 2026 - 25 views, 382 of the 388 properties the desktop program writes - and gives the regression suite's measure for the tree of 16 September, 1,606 tests against a Linux server with 1,326 passing, run as two CI halves from the 17th.

    @chrisholloway5 chrisholloway5 committed Sep 17, 2026
  • Two pages that still called the file the settings store, and six figures in the tree's pages settled against the code The stalled-mail guide and the Control Panel pages table were written when hMailServer.ini was where a setting lived, and neither was in the sets the writers of the last commit covered. Both keep what is true of 6.3.3 and say what the tree after it does, in the wording the repository's own copy of the guide took at 5e7555a99: the keys are stored in the database from schema 6042, changed in the Control Panel, over PUT /api/v1/settings/ini/{name}, with hmctl ini set or Settings.SetIniSetting, still copied into [Settings], and an edit to the file is reported as HM5804 and put back at the next start. The pages table gets one paragraph for every cell that says INI, checked against IniFeatureStore.cs as it now is - reads over COM with the file as the fallback when there is no session, writes over COM only, and a Control Panel without a session says so instead of writing a line the server would undo - and the seven cells that named the file carry the release beside it. Six doubts the checkers left were settled by reading the code at 00bec4412, and four of them were wrong on the page. The Deck's Reports view does draw two bar charts, as SVG, for traffic and storage, and the page now says which. A report is not "at most three grouped queries": the four sections counted from the trace are one each, mailboxes one, storage two and volume six, one per metric, with the trace query capped at 100,000 grouped rows as the page said. The Deck harness figure is written as current - 458 checks at 00bec4412 - with the 336 and 292 kept as the history they were, since both were reproduced by running the harness from the languages commit and its parent. The X-hMailServer-External stamp is shown by the webmail as a warning line above the message, and the page now gives the words and the badge that stands beside it whether or not the domain stamps; the first-contact line is named too. docs/Syslog.md does hold rsyslog configurations for all three transports, and that bullet stands. The settings reference's arithmetic for the keys outside the bootstrap sections was two counts side by side, one of them wrong: there are 21 [LDAP] keys in LdapSettings.cpp, not 20, and the sentence is now one set of numbers, 242 + 4 + 21, with a note that the baseline file holds none of the 25 because it lists only what IniFileSettings reads. The Linux page's proof table still said the schema was built at 6031 without saying when that was true; one sentence after the table gives the schema each release shipped and the tree's 6045. Line endings are each page's own: four are CRLF, the Linux page is LF, and the edit was made on bytes.

    @chrisholloway5 chrisholloway5 committed Sep 15, 2026
  • The wiki describes the tree after 6.3.3 as it lands on master: the settings store, the audit trail and alerts, what a domain does to a message, remote-domain policy, a backup that carries everything, and the rest of three batches Twenty-seven pages, each written from the code at 3233b0cc4 and then checked sentence by sentence against it by a second reader: 166 claims verified, 23 corrected before this commit. Everything the tree holds that no release has is labelled as in the tree after 6.3.3 and not yet released, and the next release is called that rather than given a number. The changes page carries the four schema steps 6042 to 6045 in section 2, the second and third batches in section 4e beside the first, the gate for 3233b0cc4 (2,410 tests, 2,402 passed, none failed, 8 skipped; the Linux figures are a placeholder until that run lands), and in section 5 the changes an upgrade makes with no switch - above all that the database is the settings store, that an edit to [Settings] in hMailServer.ini is undone at the next start and reported as HM5804, what to do instead, and that the password pepper stays in the file and out of every backup, so a restore onto new hardware needs it brought along. Fourteen pages that told a reader to edit the file now say how the same setting is changed once the store lands, and what an edit to the file does then; the settings reference says the table of INI keys is closed. The feature pages cover the backup that carries every per-account store, the audit trail and alerts with what each does not yet record or raise, syslog export, per-domain reports, remote-domain policy and mandatory TLS, SPF as RFC 7208, hmctl's configuration document, the tours, and the REST routes counted at the commit rather than guessed at. The checking found things the tree itself gets wrong, which are recorded for the next batch rather than papered over here: hmctl's configuration document has an empty ini section because it reads a route that answers names only; the packaged Linux ini's RestApiPort=0 is adopted into the store at first start, so the packaging README's edit-the-file way of turning the REST listener on no longer works; the OpenAPI text for the ini routes and the note the server writes into hMailServer.ini still describe the file as the store; and five repository documents say what their wiki copies said before this commit.

    @chrisholloway5 chrisholloway5 committed Sep 15, 2026
  • Running in a Container: the image, the variables the entrypoint writes, reaching the API, a Compose first start, volumes and ports, upgrading, backups, auto-ban from the host, and how the image is proven; linked from the sidebar, the index and the Linux page, labelled as published with 6.3.2

    @chrisholloway5 chrisholloway5 committed Sep 11, 2026
  • Auto-ban below the server, documented: the three settings on the capabilities page, and the hook, the capability it needs and fail2ban on the Linux page, labelled unreleased until 6.3.2

    @chrisholloway5 chrisholloway5 committed Sep 11, 2026
  • 6.3.0 is published, so the pages that were waiting for it say so: Linux is released rather than "in the tree", the write surface has a release number, and the version that never existed is gone The Linux page opened with a banner saying the port was in the tree and not yet released, and that the first release to carry packages would be "the next one". That release is 6.3.0 and it went out on 10 September 2026, so the banner now points at it and the install commands name the packages that are actually on the release page rather than a version number nobody can download. Five places named 6.2.29. There is no such version and there never will be - the release after 6.2.28 is 6.3.0, and README.md already says why - so the two package filenames, the two "since 6.2.29" notes about relative directory values and the Installation paths diagnostic's label all move to 6.3.0. The API reference's route tables gained the write surface a day before the release but nothing in them said which release it belonged to, while the rows around them carried 6.2.27 and 6.2.28. A reader could reasonably have read the settings, rules and certificate routes as shipping in 6.2.27, which is half true and the misleading half: those routes could only be read then. Section 4 now says which routes arrived in 6.3.0 and why the method column is the one to read, and the scope note names the units the write surface was split into. The landing page's At a glance table was stale in five of its rows: the release and its build number, the platform (Windows only, when the whole point of 6.3 is that it is not), the administration surfaces, the suite's size and the wiki's own page count. The route count was stale in a way worth recording: it said 65, which matched neither the number of rows in the reference table nor the number of distinct paths at the commit it was written from, so it is now 82 routes over 68 paths, both countable from the page it points at. The Control Panel reference said "the latest, v6.2.28", and one thing under ControlPanel did move in 6.3.0: the sign-in box's user name is a literal again (#156), which is why a fresh installation in Chinese could not sign in. The page says so, with the twenty-one files that differ between the tags. The footer stamped 6.2.28 on all fifty-one pages.

    @chrisholloway5 chrisholloway5 committed Sep 10, 2026
  • The REST API writes: the route tables on the REST and API Reference pages carry the settings groups, the rules, the routes, the aliases, the account update, the certificates and listeners and the restart in place, with what each refuses and who may call it The Installing on Linux page's suite row and the Regression Test Environment page's "On Linux" section say what the write surface changed for the Linux run: 278 of 319 pass where 233 did, and what still skips is a COM-only call or the suite's fake DNS zone rather than a route that does not exist.

    @chrisholloway5 chrisholloway5 committed Sep 9, 2026
  • The regression suite on Linux: the Installing on Linux page's suite row says what runs (319 of 2,135 tests, 233 passing, 86 skipped for named API gaps, 0 failing, and CI on every push), and the Regression Test Environment page gains an "On Linux" section with the variables, the test-tree recipe and the command The section is the one hmailserver/docs/RegressionEnvironment.md carries at f18c38a04. A first draft of this page edit had appended an older copy of the whole page around the new section (338 lines became 630); this is the committed page plus the sixty lines of the section, inserted before "When a run is interrupted".

    @chrisholloway5 chrisholloway5 committed Sep 9, 2026
  • Linux: an Installing on Linux page from the packages to a delivered message, the relocation runbook as a page, the Installation paths diagnostic in the Monitoring table, the domain routes on the REST page, and the platform notes the Settings and Capabilities pages needed

    @chrisholloway5 chrisholloway5 committed Sep 9, 2026