This document defines the first production deployment sequence for the public repo after the operator has validated the design in QEMU or has otherwise reviewed the live runtime tree carefully.
This sequence aims for the first broader public baseline, usually Phase 00 through Phase 10.
It does not claim full private parity. It gives you the safest public order for what is already available.
You should already have:
- completed the prerequisite docs under
docs/install/ - prepared real operator input files outside tracked Git content
- rendered the runtime tree at least once
- reviewed the QEMU path, or consciously decided to accept the extra risk of moving directly to hardware
Confirm the host has:
- OpenBSD 7.9
- network connectivity
- your administrative access model
- the local repo checkout
./scripts/install/render-core-runtime-configs.kshInspect at least:
.work/runtime/rootfs/etc/postfix/.work/runtime/rootfs/etc/dovecot/.work/runtime/rootfs/etc/nginx/.work/runtime/rootfs/etc/rspamd/.work/runtime/rootfs/var/www/postfixadmin/
Use services/generated/rootfs/ only as the tracked sanitized example reference.
Recommended first production baseline:
doas env OPENBSD_MAILSTACK_NONINTERACTIVE=1 ./scripts/install/run-phase-sequence.ksh --phase-start 0 --phase-end 10Recommended dry-run style install step:
doas ./scripts/install/install-core-runtime-configs.ksh --target-root /tmp/openbsd-mailstack-stagingReview the staged result under /tmp/openbsd-mailstack-staging before writing to /. Confirm that /tmp/openbsd-mailstack-staging/etc/postfix/sasl_passwd.db and /tmp/openbsd-mailstack-staging/etc/postfix/tls_policy.db are present.
Only after review:
doas ./scripts/install/install-core-runtime-configs.ksh./scripts/verify/run-post-install-checks.ksh
./scripts/verify/verify-host-service-integrity.kshDaily review:
./scripts/ops/daily-operator-review.kshWeekly review:
./scripts/ops/weekly-operator-review.kshTreat the host as ready for broader use only after:
- the phase run is clean for your chosen phase range
- the rendered and installed configs match your operator inputs
- post-install checks are reviewed
- unresolved warnings are understood and documented
The following areas remain optional or advanced in the current public repo:
- later backup and DR phases
- advanced monitoring and enforcement layers
- optional SOGo and deeper web-plane expansion
- parity for site-specific operational doctrine from the private repo