Commit Graph
130 Commits
Author SHA1 Message Date
jcoffey-dev bde11d54c3 Spec: two web front ends, ihasmail and INBUXA Admin (a fork of Stalwart WebUI)
Administration is no longer moving wholesale into ihasmail. INBUXA Admin, a
fork of the schema-driven webui (no Enterprise-only code, ordinary fork),
covers the whole server, setup and recovery from its own deployment.
ihasmail keeps its account and tenant administration. Contract additions:
the inbuxa-admin OAuth client, cross-origin access limited to the two
front ends (the server currently allows every origin), and relative OAuth
endpoints on servers with no public URL.
2026-09-18 12:01:36 -07:00
jcoffey-dev c9c761fab5 Quick fixes from the first boot: recovery admin, upsell, warnings
- The recovery administrator (INBUXA_RECOVERY_ADMIN, or STALWART_RECOVERY_ADMIN)
  is honored only in bootstrap and recovery mode. On a configured server it's
  ignored with a startup warning. Before, it was a standing full-admin login
  for as long as the variable stayed set.
- The Enterprise upsell error is replaced by "This feature isn't available in
  INBUXA yet" for the features still to be rebuilt.
- Workspace warnings: 25 to 0. cargo fix removed the unused imports. The
  seven places where Enterprise code used to plug in keep their parameters,
  each with an inbuxa: comment naming the rebuild that uses it again. The
  antispam test's mock-server imports are back behind pending-rebuild.
2026-09-18 11:36:44 -07:00
jcoffey-dev d3f0b36dd2 Packaging: the binary and package are inbuxa, INBUXA_* settings with STALWART_* fallback
- crates/main: package and [[bin]] renamed to inbuxa; homepage inbuxa.org;
  license AGPL-3.0-only (upstream is dual; the fork takes the AGPL).
- types::branding::env_var reads INBUXA_<name>, falling back to
  STALWART_<name> with a warning, for all nine server settings.
  STALWART_APP_ and STALWART_SPAM_* storage keys are unchanged.
- New-install default paths /var/lib/inbuxa and /var/log/inbuxa.
- Dockerfiles, systemd unit, launchd plist and AppArmor profile renamed.
- Upstream's .github moved to .github-upstream so none of it runs.
- install.sh stubbed: upstream's would install Stalwart.
- Two missed brand strings: the SMTP Received header and the utils user agent.
2026-09-18 11:09:22 -07:00
jcoffey-dev 5ce033e10c Support URL: https://inbuxa.org in the IMAP ID response and README 2026-09-18 11:03:30 -07:00
jcoffey-dev 189f688768 Sign-in page: show the logo when the page is opened without redirect_uri
The early return for a missing redirect_uri came before the logo loader,
so the logo stayed hidden behind data-loading. An upstream bug, surfaced by
the rebrand check.
2026-09-18 10:58:39 -07:00
jcoffey-dev 68523374d3 Strip report for the v0.16.22 re-import 2026-09-18 10:52:56 -07:00
jcoffey-dev 8ca487ed36 Merge upstream v0.16.22 re-import (build-script feature flags) 2026-09-18 10:52:56 -07:00
jcoffey-dev 083474f67a Re-import upstream v0.16.22, stripped (strip tool update)
The strip tool now also removes enterprise from build scripts' --features
lists (Dockerfiles, CI), so the container and release builds work.

Upstream commit: 474dd0229cb20cf513036619781ed97bd8073c3f
Enterprise-only files removed or emptied: 63
Enterprise-only snippets removed: 117 in 50 files
Dangling module declarations removed: 5
Edits turning enterprise off: 25 (11 in build scripts)
Verification: clean
2026-09-18 10:52:56 -07:00
jcoffey-dev 1c6640e4b3 Strip tooling: remove the enterprise feature from build scripts' --features lists
Upstream's Dockerfiles and CI pass --features "... enterprise" on the cargo
command line, which the manifest edits don't reach. 11 occurrences at
v0.16.22. Dockerfile.build and Dockerfile.fdb are now scanned too, whatever
their extension.
2026-09-18 10:52:34 -07:00
jcoffey-dev 89665decfa Rebrand to INBUXA: product name, protocol greetings, sign-in page, calendar templates, logos, README
One branding module (types::brand!) supplies the name to every protocol
greeting, the HTTP realm, the startup banner, Received headers, the
user agent, the IMAP ID response and calendar PRODIDs. The sign-in and
calendar pages take ihasmail's palette and font and the INBUXA logo, and
calendar emails embed the INBUXA lockup. Default calendar and address book
names follow. Protocol identifiers (urn:stalwart:jmap, vnd.stalwart Sieve
extensions) and upstream copyright notices are unchanged.
2026-09-18 10:52:34 -07:00
jcoffey-dev 6e73d284d8 First boot of the stripped v0.16.22: record results and what to fix 2026-09-18 10:33:42 -07:00
jcoffey-dev 0db5ab9155 Gate integration tests of unrebuilt Enterprise features behind pending-rebuild; record what v0.16.22 proved 2026-09-18 10:29:20 -07:00
jcoffey-dev 0c6b3dffc0 Strip report for v0.16.22; document the layout and the upstream workflows 2026-09-18 10:22:19 -07:00
jcoffey-dev ace3064fbb Merge upstream v0.16.22 (stripped) into main 2026-09-18 10:22:18 -07:00
jcoffey-dev 7dae9b29fd Import upstream v0.16.22, stripped
Upstream commit: 474dd0229cb20cf513036619781ed97bd8073c3f
Enterprise-only files removed or emptied: 63
Enterprise-only snippets removed: 117 in 50 files
Dangling module declarations removed: 5
Cargo edits turning enterprise off: 14
Verification: clean
Enterprise feature gates left for rebuilt features: 19 in 18 files

Produced by tools/fork/strip.py. The full report is in docs/fork/strip-reports/ on main.
2026-09-18 10:21:56 -07:00
jcoffey-dev dedcc0fe94 Move the specs under docs/spec, ahead of the source import 2026-09-18 10:21:43 -07:00
jcoffey-dev 826e8bc97f Strip tooling: remove dangling mod declarations left by ossify.py 2026-09-18 10:20:18 -07:00
jcoffey-dev e79036d097 Strip tooling: wrap upstream's ossify.py with export, marker checks, Cargo edits and verification 2026-09-18 10:11:57 -07:00
jcoffey-dev 81db1433d2 Undelete: record what INBUXA's Enterprise server actually does 2026-09-18 10:02:59 -07:00
jcoffey-dev e73744e30b Undelete feature spec 2026-09-18 09:42:38 -07:00
jcoffey-dev f9c19a153b Masked email: INBUXA most likely holds no masks 2026-09-18 09:39:58 -07:00
jcoffey-dev 4e3a147de1 Masked email: record the operator's estimate of existing masks 2026-09-18 09:39:31 -07:00
jcoffey-dev 057491e33c Masked email: acceptance test 8 matches the observed error 2026-09-18 09:32:03 -07:00
jcoffey-dev dc1ddb2893 Masked email: record what INBUXA's Enterprise server actually does 2026-09-18 09:31:56 -07:00
jcoffey-dev 0fbf6b7d47 Masked email feature spec 2026-09-18 08:16:26 -07:00
jcoffey-dev c984cb7afa Point provenance at the Observed section 2026-09-18 07:03:56 -07:00
jcoffey-dev 490d11b04a Multi-tenancy: record what INBUXA's Enterprise server actually does 2026-09-18 07:03:50 -07:00
jcoffey-dev c6b3674ccd Multi-tenancy feature spec; use upstream's ossify.py and UI schema 2026-09-18 00:36:30 -07:00
jcoffey-dev 68163e9dbd Name the project inbuxa-server 2026-09-18 00:33:07 -07:00
jcoffey-dev 6b069f740a Draft the fork specification 2026-09-18 00:30:59 -07:00