From bd117e6fca0e73997783b2cabf14621802ce38f0 Mon Sep 17 00:00:00 2001 From: John Coffey Date: Tue, 15 Sep 2026 12:25:39 -0700 Subject: [PATCH 1/3] Put the documentation links first, with the guide marked as the place to start --- README.md | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index b5130d7..bd5e2f5 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,18 @@ it needs. > checked. `run` will not start until you confirm you have one. See > [Recovery](docs/recovery.md). -**Full guide:** [docs.ihasmail.org/install/stalwart-migrator](https://docs.ihasmail.org/install/stalwart-migrator/) -walks through the whole upgrade โ€” what to fix first, rehearsing, running it, -and what to check afterwards. +## Documentation + +| | | +| --- | --- | +| ๐Ÿ“˜ **[Upgrade guide](https://docs.ihasmail.org/install/stalwart-migrator/)** | **Start here.** The whole upgrade, step by step, on docs.ihasmail.org: what to fix first, rehearsing, running it, and what to check afterwards | +| [docs/rehearsal.md](docs/rehearsal.md) | Running preflight safely, what `rehearse` reports, rehearsing on a clone | +| [docs/docker.md](docs/docker.md) | Container deployments: flags, what cutover carries and refuses, where the config goes | +| [docs/known-stalwart-problems.md](docs/known-stalwart-problems.md) | Tenants, the admin account, dropped ACME, certificates on mail ports, the extra recovery boot | +| [docs/recovery.md](docs/recovery.md) | Why recovery is your snapshot, what the tool keeps, never booting recovery mode again | +| [docs/status.md](docs/status.md) | Command and package state, validation, field reports | +| [ARCHITECTURE.md](ARCHITECTURE.md) | The design: phases, checkpoints, and the reasoning behind them | +| [CONTRIBUTING.md](CONTRIBUTING.md) | Building, testing, and where the design is written down | ## Requirements @@ -88,19 +97,6 @@ open: some store migrations need one more recovery-mode boot, which is a manual step, and the Docker path has never completed a migration against a real Stalwart image. Details and field reports: [Status](docs/status.md). -## Documentation - -| | | -| --- | --- | -| [Upgrade guide](https://docs.ihasmail.org/install/stalwart-migrator/) | The whole upgrade, step by step, on docs.ihasmail.org | -| [docs/rehearsal.md](docs/rehearsal.md) | Running preflight safely, what `rehearse` reports, rehearsing on a clone | -| [docs/docker.md](docs/docker.md) | Container deployments: flags, what cutover carries and refuses, where the config goes | -| [docs/known-stalwart-problems.md](docs/known-stalwart-problems.md) | Tenants, the admin account, dropped ACME, certificates on mail ports, the extra recovery boot | -| [docs/recovery.md](docs/recovery.md) | Why recovery is your snapshot, what the tool keeps, never booting recovery mode again | -| [docs/status.md](docs/status.md) | Command and package state, validation, field reports | -| [ARCHITECTURE.md](ARCHITECTURE.md) | The design: phases, checkpoints, and the reasoning behind them | -| [CONTRIBUTING.md](CONTRIBUTING.md) | Building, testing, and where the design is written down | - ## License Copyright (C) 2026 Coffey Labs. GPL-3.0-or-later: free software, with no From bb2f56bfa5b8767af0fd82aadb32ace86da0f965 Mon Sep 17 00:00:00 2001 From: John Coffey Date: Tue, 15 Sep 2026 12:26:03 -0700 Subject: [PATCH 2/3] Add license and docs badges, as ihasmail-oneshot has --- README.md | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index bd5e2f5..bd6844c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # stalwart-migrator +[![License: GPL-3.0-or-later](https://img.shields.io/badge/license-GPL--3.0--or--later-blue)](LICENSE) +[![Docs: docs.ihasmail.org](https://img.shields.io/badge/docs-docs.ihasmail.org-0ea5e9)](https://docs.ihasmail.org/install/stalwart-migrator/) + In-place upgrade tool for Stalwart Mail Server, 0.15.5 โ†’ 0.16: no data loss, a checkpoint at every step so an interrupted run resumes instead of restarting, and automated validation that the server still works afterwards. Go, standard @@ -21,13 +24,13 @@ it needs. | | | | --- | --- | | ๐Ÿ“˜ **[Upgrade guide](https://docs.ihasmail.org/install/stalwart-migrator/)** | **Start here.** The whole upgrade, step by step, on docs.ihasmail.org: what to fix first, rehearsing, running it, and what to check afterwards | -| [docs/rehearsal.md](docs/rehearsal.md) | Running preflight safely, what `rehearse` reports, rehearsing on a clone | -| [docs/docker.md](docs/docker.md) | Container deployments: flags, what cutover carries and refuses, where the config goes | -| [docs/known-stalwart-problems.md](docs/known-stalwart-problems.md) | Tenants, the admin account, dropped ACME, certificates on mail ports, the extra recovery boot | -| [docs/recovery.md](docs/recovery.md) | Why recovery is your snapshot, what the tool keeps, never booting recovery mode again | -| [docs/status.md](docs/status.md) | Command and package state, validation, field reports | -| [ARCHITECTURE.md](ARCHITECTURE.md) | The design: phases, checkpoints, and the reasoning behind them | -| [CONTRIBUTING.md](CONTRIBUTING.md) | Building, testing, and where the design is written down | +| **[docs/rehearsal.md](docs/rehearsal.md)** | Running preflight safely, what `rehearse` reports, rehearsing on a clone | +| **[docs/docker.md](docs/docker.md)** | Container deployments: flags, what cutover carries and refuses, where the config goes | +| **[docs/known-stalwart-problems.md](docs/known-stalwart-problems.md)** | Tenants, the admin account, dropped ACME, certificates on mail ports, the extra recovery boot | +| **[docs/recovery.md](docs/recovery.md)** | Why recovery is your snapshot, what the tool keeps, never booting recovery mode again | +| **[docs/status.md](docs/status.md)** | Command and package state, validation, field reports | +| **[ARCHITECTURE.md](ARCHITECTURE.md)** | The design: phases, checkpoints, and the reasoning behind them | +| **[CONTRIBUTING.md](CONTRIBUTING.md)** | Building, testing, and where the design is written down | ## Requirements From 1b4258113e29e8ca6a6f76cdd3c844d41481965b Mon Sep 17 00:00:00 2001 From: John Coffey Date: Tue, 15 Sep 2026 12:26:17 -0700 Subject: [PATCH 3/3] Name the documentation rows the way ihasmail-oneshot's table does --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index bd6844c..70e3611 100644 --- a/README.md +++ b/README.md @@ -24,13 +24,13 @@ it needs. | | | | --- | --- | | ๐Ÿ“˜ **[Upgrade guide](https://docs.ihasmail.org/install/stalwart-migrator/)** | **Start here.** The whole upgrade, step by step, on docs.ihasmail.org: what to fix first, rehearsing, running it, and what to check afterwards | -| **[docs/rehearsal.md](docs/rehearsal.md)** | Running preflight safely, what `rehearse` reports, rehearsing on a clone | -| **[docs/docker.md](docs/docker.md)** | Container deployments: flags, what cutover carries and refuses, where the config goes | -| **[docs/known-stalwart-problems.md](docs/known-stalwart-problems.md)** | Tenants, the admin account, dropped ACME, certificates on mail ports, the extra recovery boot | -| **[docs/recovery.md](docs/recovery.md)** | Why recovery is your snapshot, what the tool keeps, never booting recovery mode again | -| **[docs/status.md](docs/status.md)** | Command and package state, validation, field reports | -| **[ARCHITECTURE.md](ARCHITECTURE.md)** | The design: phases, checkpoints, and the reasoning behind them | -| **[CONTRIBUTING.md](CONTRIBUTING.md)** | Building, testing, and where the design is written down | +| ๐Ÿงช **[Rehearsing](docs/rehearsal.md)** | Running preflight safely, what `rehearse` reports, rehearsing on a clone | +| ๐Ÿณ **[Docker](docs/docker.md)** | Container deployments: flags, what cutover carries and refuses, where the config goes | +| โš ๏ธ **[Known Stalwart problems](docs/known-stalwart-problems.md)** | Tenants, the admin account, dropped ACME, certificates on mail ports, the extra recovery boot | +| ๐Ÿ›Ÿ **[Recovery](docs/recovery.md)** | Why recovery is your snapshot, what the tool keeps, never booting recovery mode again | +| ๐Ÿ“Š **[Status](docs/status.md)** | Command and package state, validation, field reports | +| โš™๏ธ **[Architecture](ARCHITECTURE.md)** | The design: phases, checkpoints, and the reasoning behind them | +| ๐Ÿ”ง **[Contributing](CONTRIBUTING.md)** | Building, testing, and where the design is written down | ## Requirements