feat: turnkey Postfix relay setup script for Debian/Ubuntu - #448
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
docs/SYSTEM-MTA.mdalready documents Postfix satellite mode plus theseparate sender-rewrite section it needs to avoid
553 5.7.1 ... not owned by user- correct, but a dozen manual commands across two sections forsomeone who just wants their server relaying through ZeroSMTP with a
username and password.
Change
setup-postfix-relay.sh(new, repo root, alongsidecheck-connection.shand the other root scripts): installs Postfix on Debian/Ubuntu, configures
satellite/smarthost mode, and applies the sender/From rewrite from the
existing docs - all three in one idempotent run. Only asks for a ZeroSMTP
username and password (or the
ZEROSMTP_USERNAME/ZEROSMTP_PASSWORDenv vars for unattended use); the password is never a CLI argument, so it
never lands in shell history or
ps. Refuses to run on anything thatisn't Debian/Ubuntu (checks
/etc/os-release), and on 465 vs 587 setssmtp_tls_wrappermodecorrectly for each.docs/SYSTEM-MTA.md: the script is now the first thing under "Top pick:Postfix", with the existing manual steps kept below unchanged for anyone
who wants to see or customize what it's doing.
.github/workflows/lint.yml: added the new script to thebashjob'ssyntax-check list, the same way the three existing root scripts are
checked.
Test plan
bash -n setup-postfix-relay.sh- clean (same check CI runs).python tools/check-control-chars.py- clean, 257 files.python .github/check-workflows.py- clean.python tools/build-llms-full.py --check,build-llms-txt.py --check,build-readme-toc.py --check- all clean, no page regeneration needed.here) - the commands are exactly the ones already documented and manually
verified in
docs/SYSTEM-MTA.md, now composed into one script rather thannew instructions.
BOARD: MERGE - one line added to an existing job in
.github/workflows/lint.yml(the new script joins the same syntax-check list three others already use); no check weakened or removed.EVIDENCE:
python .github/check-workflows.pyclean;bash -non all four root scripts including the new one, matching exactly what thebashCI job runs.