Skip to content

Commit 70c3d79

Browse files
committed
sync mailstack docs and regression checks with production
1 parent c285d98 commit 70c3d79

76 files changed

Lines changed: 848 additions & 189 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎CONTRIBUTING.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Good contribution areas include:
1010

1111
- installation and onboarding improvements
1212
- verification and regression tooling
13-
- OpenBSD 7.8 compatibility and reliability fixes
13+
- OpenBSD 7.9 compatibility and reliability fixes
1414
- documentation clarity
1515
- safer defaults and configuration validation
1616
- support for both single-domain and multi-domain deployments
@@ -136,7 +136,7 @@ If a change affects installation, verification, or recovery behavior, update the
136136

137137
## Version Target
138138

139-
The active public baseline is OpenBSD `7.8`. Contributions should target that baseline unless a change is explicitly about future-version preparation or documented compatibility work.
139+
The active public baseline is OpenBSD `7.9`. Contributions should target that baseline unless a change is explicitly about future-version preparation or documented compatibility work.
140140

141141
## Questions and Proposals
142142

‎README.md‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# openbsd-mailstack
22

3-
`openbsd-mailstack` is a public, operator-focused framework for building and maintaining a hardened OpenBSD 7.8 mail platform.
3+
`openbsd-mailstack` is a public, operator-focused framework for building and maintaining a hardened OpenBSD 7.9 mail platform.
44

55
It publishes reusable documentation, configuration examples, phase scripts, maintenance helpers, and staged rendered assets for a single-host mail system built around:
66

@@ -20,7 +20,7 @@ It also includes public-safe operational layers for QEMU validation, autonomous
2020

2121
This repository is public by design.
2222

23-
It is not a literal mirror of the private `openbsd-self-hosting` repository, and it does not publish live production secrets, evidence, restore archives, or site-specific control-plane doctrine.
23+
It is not a literal mirror of the private `openbsd-self-hosting` repository. It publishes only deliberately sanitized production observations, never raw evidence, secrets, restore archives, or site-specific control-plane doctrine.
2424

2525
It is a materially complete public-safe baseline for building the same class of OpenBSD mail server with operator-supplied:
2626

@@ -39,11 +39,12 @@ Read these in order:
3939
3. [Documentation map](docs/README.md)
4040
4. [Install guide](docs/install/README.md)
4141
5. [Architecture and flow](docs/architecture/01-project-architecture-and-flow.md)
42-
6. [Quick start and usage paths](docs/install/08-quick-start-and-usage-paths.md)
43-
7. [Install order and phase sequence](docs/install/09-install-order-and-phase-sequence.md)
44-
8. [Public repo readiness check](docs/install/19-public-repo-readiness-check.md)
45-
9. [Targeted public hardening validation pass](docs/install/20-targeted-public-hardening-validation-pass.md)
46-
10. [Security hardening and runtime secrets](docs/install/21-security-hardening-and-runtime-secrets.md)
42+
6. [Observed production and OSMAP integration](docs/production-mail-blackbagsecurity.md)
43+
7. [Quick start and usage paths](docs/install/08-quick-start-and-usage-paths.md)
44+
8. [Install order and phase sequence](docs/install/09-install-order-and-phase-sequence.md)
45+
9. [Public repo readiness check](docs/install/19-public-repo-readiness-check.md)
46+
10. [Targeted public hardening validation pass](docs/install/20-targeted-public-hardening-validation-pass.md)
47+
11. [Security hardening and runtime secrets](docs/install/21-security-hardening-and-runtime-secrets.md)
4748

4849
## Documentation map
4950

@@ -55,6 +56,7 @@ Use these sections as the main navigation layer:
5556
- [Architecture docs](docs/architecture/01-project-architecture-and-flow.md)
5657
- [Configuration wiring](docs/configuration/core-runtime-and-config-wiring.md)
5758
- [Project status and boundaries](docs/project-status.md)
59+
- [OpenBSD 7.9 maintenance runbook](docs/operations/09-openbsd-79-sdlc-maintenance.md)
5860

5961
## Current public scope
6062

@@ -117,7 +119,7 @@ See:
117119

118120
The public repository still intentionally excludes:
119121

120-
- live production evidence and operational telemetry from the private deployment
122+
- raw production evidence and operational telemetry from the private deployment
121123
- encrypted recovery payloads and private restore archives
122124
- real API keys, PATs, passwords, private keys, and runtime secret values
123125
- site-specific control-plane doctrine and private automation overlays
@@ -139,6 +141,7 @@ Useful commands after the repository is populated with local inputs. The install
139141
./scripts/verify/verify-lab-assets.ksh
140142
./scripts/verify/verify-autonomous-installer-assets.ksh
141143
./maint/validate-public-hardening-surface.ksh
144+
./maint/production-regression.ksh --repo-only
142145
./scripts/verify/run-repo-ci-gates.ksh
143146
```
144147

‎SECURITY.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ This policy does not cover private recovery backends, operator vaults, encrypted
1616

1717
The supported public baseline is:
1818

19-
- OpenBSD `7.8`
19+
- OpenBSD `7.9`
2020
- the current `main` branch
2121

2222
Security fixes should target the active public baseline first. Legacy internal trees, private recovery repositories, and superseded deployment artifacts are not part of the supported public surface unless explicitly stated otherwise.

‎config/examples/lab-qemu/system.conf.example‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
OPENBSD_VERSION="7.8"
1+
OPENBSD_VERSION="7.9"
22
MAIL_HOSTNAME="mail.example.com"
33
PRIMARY_DOMAIN="example.com"
44
ADMIN_EMAIL="ops@example.com"

‎config/maintenance.conf.example‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ REGRESSION_PROBE_TO="ops@example.net"
1414
# Timeouts and behavior controls.
1515
PKG_ADD_TIMEOUT_SECS="1800"
1616
ALLOW_PKG_TIMEOUT_CONTINUE="0"
17-
SYSPATCH_FALLBACK_URL="https://cdn.openbsd.org/pub/OpenBSD"
1817

1918
# Safety controls.
2019
MAINTENANCE_REQUIRE_CLEAN_GIT="yes"

‎config/monitoring.conf.example‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ MONITORING_PATCH_NGINX=no
1616

1717
MONITORING_PATCH_NEWSYSLOG=no
1818
MONITORING_NEWSYSLOG_CONF=/etc/newsyslog.conf
19-
MONITORING_NEWSYSLOG_MARKER_BEGIN=# begin openbsd-mailstack monitoring managed block
20-
MONITORING_NEWSYSLOG_MARKER_END=# end openbsd-mailstack monitoring managed block
19+
MONITORING_NEWSYSLOG_MARKER_BEGIN="# begin openbsd-mailstack monitoring managed block"
20+
MONITORING_NEWSYSLOG_MARKER_END="# end openbsd-mailstack monitoring managed block"
2121

2222
MONITORING_INSTALL_CRON_SNIPPET=yes
2323
MONITORING_PATCH_ROOT_CRONTAB=no

‎config/network.conf.example‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ LAN_INTERFACE="em0"
88
WAN_INTERFACE="egress"
99
LAN_IPV4="192.168.1.44"
1010
LAN_CIDR="24"
11+
LAN_SUBNET="192.168.1.0/24"
1112
ROUTER_LAN_IPV4="192.168.1.1"
1213
PUBLIC_IPV4="203.0.113.10"
1314

@@ -33,6 +34,7 @@ WIREGUARD_INTERFACE="wg0"
3334
WIREGUARD_PORT="51820"
3435
WIREGUARD_SUBNET="10.44.0.0/24"
3536
WIREGUARD_SERVER_IPV4="10.44.0.1"
37+
WIREGUARD_BIND_IPV4="10.44.0.1"
3638
WIREGUARD_SERVER_NAME="openbsd-mailstack"
3739
WIREGUARD_ALLOWED_IPS="10.44.0.0/24"
3840
WIREGUARD_ADMIN_CLIENTS="operator-laptop"
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Observed mail.blackbagsecurity.com regression profile, 2026-06-28.
2+
# This file contains no credentials, private addresses, or dynamic WAN address.
3+
4+
EXPECTED_OPENBSD_RELEASE="7.9"
5+
EXPECTED_SERVICES="postfix dovecot rspamd nginx mysqld redis sogod php83_fpm clamd freshclam unbound vultr_ddns osmap_serve osmap_mailbox_helper"
6+
FORBIDDEN_ACTIVE_SERVICES="smtpd nsd unwind"
7+
EXPECTED_TCP_PORTS="25 80 443 465 587 993 11334"
8+
EXPECTED_LOOPBACK_ONLY_TCP_PORTS="8080"
9+
MAIL_HOSTNAME="mail.blackbagsecurity.com"
10+
DDNS_SERVICE="vultr_ddns"
11+
DDNS_PROGRAM="/usr/local/sbin/vultr_ddns_multi.py"
12+
OSMAP_HEALTH_PATH="/healthz"
13+
OSMAP_LOGIN_PATH="/login"

‎config/system.conf.example‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# config/system.conf.example
2-
OPENBSD_VERSION="7.8"
2+
OPENBSD_VERSION="7.9"
33
MAIL_HOSTNAME="mail.example.com"
44
PRIMARY_DOMAIN="example.com"
55
ADMIN_EMAIL="ops@example.com"

‎docs/03-mariadb-and-sql-foundation.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ This phase prepares a clean MariaDB baseline for those later steps.
1919

2020
Phase 02 focuses on:
2121

22-
- checking that the host is still on OpenBSD 7.8
22+
- checking that the host is still on OpenBSD 7.9
2323
- collecting the SQL settings needed for the mail stack
2424
- documenting the database names and service users
2525
- preparing a public-safe SQL planning baseline

0 commit comments

Comments
 (0)