Restyle the email template to Sunflower Acres' forest green/cream/sun yellow brand, rename the default listmonk template, replace the README with client-specific instructions, and add a real welcome campaign. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
sunfloweracres-campaigns
sunfloweracressoaps.com's campaign content, synced to listmonk by eec-campaigns. This repo holds only campaign content and this domain's listmonk secrets — the tool itself is installed at a pinned version in CI.
To send a campaign
- Write
campaigns/<slug>/campaign.md(frontmatter + Markdown body — see the eec-campaigns README for the full field reference). Setfrom_email: "Sunflower Acres <hello@sunfloweracressoaps.com>"explicitly — there's no default, and sync rejects a campaign with nofrom_emailat all. Mailcow's Sender ACL must allow that exact address for the send to go through rather than bounce as spoofing (see Sending as hello@sunfloweracressoaps.com below). git pushtomaster— CI syncs it into listmonk as a draft and emails a preview toCAMPAIGNS_PREVIEW_EMAIL(or the campaign's ownpreview_emails).- Check the preview inbox. Keep pushing edits until it looks right — each push re-syncs and re-previews.
- When ready to actually send:
git tag send/<slug> && git push origin send/<slug>. This is the one action that transitions the campaign from draft to running — a plaingit pushto master can never do it.
Alternatively, run the Send campaign workflow manually from Gitea Actions with the slug as input — same effect as the tag push.
Other workflows
Test-send campaign(manual) — re-preview a campaign's current content to any address, without touching its status.Sync default campaign template(manual) — pushesemail-templates/campaign.htmlinto listmonk as the default campaign template. Run once after setup, and again whenever that file changes.
Setup
Repo secrets (Gitea Actions → Secrets) are already set: CAMPAIGNS_LISTMONK_BASE_URL, CAMPAIGNS_LISTMONK_API_USER, CAMPAIGNS_LISTMONK_API_TOKEN, CAMPAIGNS_PREVIEW_EMAIL (hello@sunfloweracressoaps.com, also a confirmed subscriber on sunfloweracres-list so test-sends have somewhere to go) — scoped to a dedicated campaigns-sunfloweracres listmonk API user (see reground-infrastructure's campaigns-sunfloweracres Ansible role).
The workflows in .gitea/workflows/ pin a specific eec-campaigns version (currently v0.1.4). Bump that pin deliberately when a new tool version is ready, not automatically.
Sending as hello@sunfloweracressoaps.com
Listmonk sends everything — every domain's campaigns — authenticated as one shared identity, hello@reground.org. For a campaign here to actually go out From: hello@sunfloweracressoaps.com instead of bouncing as a spoofing attempt, Mailcow's Sender ACL on hello@reground.org has to explicitly allow it — confirm this is in place (see reground-infrastructure's campaigns-sunfloweracres role, which flags it as a manual step) before relying on a real send.