# cateconners-campaigns cateconners.com's campaign content, synced to listmonk by [`eec-campaigns`](https://gitea.reground.org/will/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 1. Write `campaigns//campaign.md` (frontmatter + Markdown body — see the [eec-campaigns README](https://gitea.reground.org/will/eec-campaigns#campaignmd) for the full field reference). Set `from` explicitly to `Cate Conners ` — Mailcow's Sender ACL only allows that exact address for this domain. 2. `git push` to `master` — CI syncs it into listmonk as a **draft** and emails a preview to `CAMPAIGNS_PREVIEW_EMAIL` (or the campaign's own `preview_emails`). 3. Check the preview inbox. Keep pushing edits until it looks right — each push re-syncs and re-previews. 4. When ready to actually send: `git tag send/ && git push origin send/`. This is the one action that transitions the campaign from draft to running — a plain `git push` to 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) — pushes `email-templates/campaign.html` into listmonk as the default campaign template. Run once after setup, and again whenever that file changes. ## Setup (one-time) Repo secrets (Gitea Actions → Secrets): `CAMPAIGNS_LISTMONK_BASE_URL`, `CAMPAIGNS_LISTMONK_API_USER`, `CAMPAIGNS_LISTMONK_API_TOKEN`, `CAMPAIGNS_PREVIEW_EMAIL`. The workflows in `.gitea/workflows/` pin a specific `eec-campaigns` version (currently `v0.1.0`). Bump that pin deliberately when a new tool version is ready, not automatically.