Skip to content

Commit 88952d8

Browse files
committed
productize backup and dr phase plan packs
1 parent d6bde02 commit 88952d8

21 files changed

Lines changed: 315 additions & 138 deletions

‎docs/install/09-install-order-and-phase-sequence.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Use this when you want the first broader public baseline, including DNS identity
108108

109109
Use these after the early baseline is stable and you are ready to add:
110110

111-
- backup and DR
111+
- backup and DR plan packs and readiness reporting
112112
- monitoring and maintenance
113113
- network exposure refinement
114114
- security hardening and runtime secret layout

‎docs/install/14-backup-and-restore-drill-sequence.md‎

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ This document gives a public-safe sequence for producing, validating, replicatin
77
## Recommended order
88

99
1. install the backup and DR helpers
10-
2. run config, MariaDB, and mailstack backups
11-
3. verify each resulting backup set
12-
4. optionally replicate off-host
13-
5. perform a staged restore drill
14-
6. repeat the drill in QEMU before production use
10+
2. generate the live backup and DR plan packs
11+
3. write the readiness report
12+
4. run config, MariaDB, and mailstack backups
13+
5. verify each resulting backup set
14+
6. optionally replicate off-host
15+
7. perform a staged restore drill
16+
8. repeat the drill in QEMU before production use
1517

1618
## Commands
1719

@@ -21,6 +23,20 @@ Install helpers:
2123
doas ksh scripts/install/install-backup-dr-assets.ksh --apply
2224
```
2325

26+
Generate the phase plan packs:
27+
28+
```sh
29+
OPENBSD_MAILSTACK_NONINTERACTIVE=1 ./scripts/phases/phase-11-apply.ksh
30+
OPENBSD_MAILSTACK_NONINTERACTIVE=1 ./scripts/phases/phase-12-apply.ksh
31+
OPENBSD_MAILSTACK_NONINTERACTIVE=1 ./scripts/phases/phase-13-apply.ksh
32+
```
33+
34+
Write the readiness report:
35+
36+
```sh
37+
./scripts/ops/backup-dr-readiness-report.ksh --write
38+
```
39+
2440
Create backups:
2541

2642
```sh
@@ -47,20 +63,6 @@ Run a staged restore drill:
4763
doas ksh scripts/ops/run-restore-drill.ksh --archive /var/backups/openbsd-mailstack/mailstack/latest/mailstack-<timestamp>.tgz --sha256 /var/backups/openbsd-mailstack/mailstack/latest/mailstack-<timestamp>.sha256
4864
```
4965

50-
QEMU rehearsal:
51-
52-
```sh
53-
ksh maint/qemu/lab-dr-restore-runner.ksh --archive /path/to/mailstack-backup.tgz --sha256 /path/to/mailstack-backup.sha256
54-
```
55-
56-
## Unified Backup Run
57-
58-
A single public-safe runner now exists for the common path:
59-
60-
```sh
61-
doas ksh scripts/ops/backup-all.ksh --dry-run
62-
doas ksh scripts/ops/backup-all.ksh --run
63-
```
66+
## Notes
6467

65-
That runner can optionally protect archives and replicate the mailstack backup
66-
when those features are enabled in operator inputs.
68+
The current repo now treats backup and DR planning as live operator workspace output under `.work/backup-dr/`, not as tracked publishable generated guidance.

‎docs/install/15-dr-host-bootstrap.md‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,16 @@ doas ksh scripts/install/provision-dr-site-host.ksh --apply
4747
- `/srv/openbsd-mailstack-dr/releases`
4848
- `/var/restore/openbsd-mailstack`
4949
- `/var/backups/openbsd-mailstack`
50-
- `/var/lib/openbsd-mailstack-dr`
51-
- `/var/log/openbsd-mailstack-dr`
50+
- `/var/lib/openbsd-mailstack`
5251

53-
## Recommended Sequence
52+
## Related live planning outputs
5453

55-
1. configure `dr-host.conf` and `dr-site.conf`
56-
2. run the dry run and review the output
57-
3. apply the bootstrap on the standby host
58-
4. run `scripts/install/install-backup-schedule-assets.ksh --dry-run`
59-
5. run a staged restore drill before any live failover
54+
The backup and DR phase pack now writes the live plan guidance under:
55+
56+
- `.work/backup-dr/phase-11/`
57+
- `.work/backup-dr/phase-12/`
58+
- `.work/backup-dr/phase-13/`
59+
60+
The readiness report is written under:
61+
62+
- `.work/backup-dr/readiness/backup-dr-readiness.txt`

‎docs/install/README.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ If you are new to the repository:
4444
4. render the live operator trees and inspect `.work/runtime/rootfs/`, `.work/network-exposure/rootfs/`, `.work/identity/`, or `.work/advanced/` as appropriate, using `services/generated/rootfs/` only as the sanitized example reference
4545
5. run the phase sequence through the baseline you want to test
4646
6. build the monitoring layer you want, including the richer static `/_ops/monitor/` site when needed
47-
7. run post-install checks and the targeted public hardening validation pass
48-
8. only then move to a real OpenBSD host
47+
7. generate live backup and DR plan packs under `.work/backup-dr/` when you are ready for phases 11 through 13
48+
8. run post-install checks and the targeted public hardening validation pass
49+
9. only then move to a real OpenBSD host
4950

5051
## Related documents outside this directory
5152

‎docs/phases/phase-11-backup-and-disaster-recovery.md‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,9 @@ Create a usable public backup and DR baseline.
1919

2020
## Outputs
2121

22-
- generated backup scope summary
23-
- generated restore workflow summary
24-
- generated DR site provisioning summary
22+
- live backup and DR plan pack under `.work/backup-dr/phase-11/`
2523
- reusable backup, restore, and install helpers in `scripts/`
24+
- readiness reporting through `scripts/ops/backup-dr-readiness-report.ksh`
2625

2726
## Run
2827

@@ -36,8 +35,12 @@ Verify:
3635
./scripts/phases/phase-11-verify.ksh
3736
```
3837

38+
Readiness report:
39+
40+
```sh
41+
./scripts/ops/backup-dr-readiness-report.ksh --write
42+
```
43+
3944
## Refinement
4045

41-
Phase 11 now includes a public-safe standby host bootstrap path through
42-
`scripts/install/provision-dr-site-host.ksh`, in addition to the DR portal asset
43-
installer.
46+
Phase 11 now writes a live plan pack into a gitignored work root instead of tracked repo guidance files. It also includes a public-safe standby host bootstrap path through `scripts/install/provision-dr-site-host.ksh`, in addition to the DR portal asset installer.

‎docs/phases/phase-12-advanced-backup-security-and-integrity.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ Extend the Phase 11 baseline with integrity and controlled restore behavior.
1515

1616
## Outputs
1717

18-
- generated integrity workflow summary
19-
- generated restore mode summary
18+
- live integrity plan pack under `.work/backup-dr/phase-12/`
19+
- archive protection guidance tied to the actual helper scripts
2020
- verification helper usage guidance
2121

2222
## Run
@@ -33,6 +33,6 @@ Verify:
3333

3434
## Refinement
3535

36-
Phase 12 now has a concrete helper for archive protection:
36+
Phase 12 now writes a gitignored live plan pack instead of tracked generated guidance. It also keeps a concrete helper for archive protection:
3737

3838
- `scripts/ops/protect-backup-set.ksh`

‎docs/phases/phase-13-off-host-replication-and-restore-testing.md‎

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ Extend the Phase 11 and 12 baseline with off-host copy planning, restore drills,
1212

1313
## Outputs
1414

15-
- generated off-host replication summary
16-
- generated restore drill summary
17-
- generated post-restore validation checklist
15+
- live off-host and drill plan pack under `.work/backup-dr/phase-13/`
16+
- post-restore validation checklist in the same gitignored work root
1817
- QEMU restore drill runner under `maint/qemu/`
18+
- readiness reporting through `scripts/ops/backup-dr-readiness-report.ksh`
1919

2020
## Run
2121

@@ -31,5 +31,4 @@ Verify:
3131

3232
## Refinement
3333

34-
Phase 13 can now be exercised from the unified backup runner and the DR host
35-
bootstrap workflow, not only from individual backup scripts.
34+
Phase 13 can now be exercised from a unified backup and DR readiness surface, not only from individual backup scripts and tracked generated notes.

‎docs/phases/phase-crosswalk.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ This document maps the public phase documents and scripts to the current public-
1717
| Phase 08, webmail and admin access | materially usable | Roundcube, PostfixAdmin, nginx web-plane assets, and phase-scoped summary and verify coverage |
1818
| Phase 09, DNS and identity publishing | materially usable | DNS publishing guidance and shared DNS input model |
1919
| Phase 10, operations and resilience | materially usable | install, post-install, operator workflow, and resilience docs |
20-
| Phase 11, backup and disaster recovery | materially usable | backup helpers, restore helpers, DR docs |
21-
| Phase 12, advanced backup security and integrity | materially usable | archive protection, verification, and backup hygiene |
22-
| Phase 13, off-host replication and restore testing | materially usable | off-host replication helpers, QEMU restore drill path |
20+
| Phase 11, backup and disaster recovery | materially usable | backup helpers, restore helpers, DR docs, and live plan packs |
21+
| Phase 12, advanced backup security and integrity | materially usable | archive protection, verification, backup hygiene, and live integrity plan packs |
22+
| Phase 13, off-host replication and restore testing | materially usable | off-host replication helpers, QEMU restore drill path, and live drill plan packs |
2323
| Phase 14, monitoring and reporting baseline | materially usable | monitoring collectors, reporting helpers, nginx ops assets, newsyslog assets, and the richer static `/_ops/monitor/` site model |
2424
| Phase 15, security hardening and authentication model | materially usable | `doas`, SSH hardening, and authentication policy helpers |
2525
| Phase 16, secrets handling and key material management | materially usable | host-local runtime secret layout, repo hygiene, and verification helpers |

‎docs/project-status.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ The public repository now provides a materially usable public-safe baseline for:
88
- phase 02 through 08 now include phase-scoped summaries and targeted verify coverage on top of the shared core runtime renderer
99
- core mail runtime rendering and staged example output
1010
- install order, QEMU validation, and first production deployment guidance
11-
- backup, disaster recovery, restore drills, DR site assets, and DR host bootstrap
11+
- backup, disaster recovery, restore drills, DR site assets, DR host bootstrap, and live backup and DR plan packs
1212
- monitoring, diagnostics, reporting, visibility helpers, and the richer static `/_ops/monitor/` site path
1313
- maintenance, upgrade, regression, and rollback helpers
1414
- PF, WireGuard, DNS, and Vultr DDNS baseline assets

‎docs/public-private-boundary.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,8 @@ The remaining private boundaries are now specific:
6565
- real operator identities, passwords, PATs, API tokens, and private keys
6666
- site-specific control-plane doctrine tied to a real deployment
6767
- provider-specific integrations that have not been generalized into operator-input-driven public-safe workflows
68+
69+
70+
## Live backup and DR planning outputs
71+
72+
Backup and DR planning output is now written into the gitignored live workspace under `.work/backup-dr/`. These artifacts are operator-specific working material, not tracked publishable repo examples.

0 commit comments

Comments
 (0)