# campaigns-template Gitea template repo for standing up a new domain/client's campaign content repo. Generate a new repo from this one (Gitea → this repo → "Generate Repo," or `POST /api/v1/repos/generate/will/campaigns-template`) rather than cloning it — generating starts the new repo with a clean history of its own. Full reference for everything below lives in the [`eec-campaigns` README](https://gitea.reground.org/will/eec-campaigns). ## After generating a new repo from this template 1. **Rename the template.** In `.gitea/workflows/sync-template.yml`, replace `TEMPLATE default` with a name specific to this domain (e.g. ` default`). 2. **Restyle `email-templates/campaign.html`** if this client wants different branding than the stock listmonk template it starts as. 3. **Add repo secrets** (Gitea Actions → Secrets): `CAMPAIGNS_LISTMONK_BASE_URL`, `CAMPAIGNS_LISTMONK_API_USER`, `CAMPAIGNS_LISTMONK_API_TOKEN`, and optionally `CAMPAIGNS_PREVIEW_EMAIL` — scoped to this domain's own listmonk instance and its own dedicated API user (see `reground-infrastructure`'s `campaigns` Ansible role for provisioning that user). 4. **Check the tool version pin** in all four `.gitea/workflows/*.yml` files (currently `v0.1.0`) — bump it only deliberately, after confirming a newer `eec-campaigns` release works. 5. Run the `Sync default campaign template` workflow once. 6. Replace this README with a short one for this domain (see `reground-campaigns`'s README for the pattern: a numbered "to send a campaign" list for whoever operates this repo day-to-day). 7. Give the client push/PR access to *this repo only* — that's the entire isolation boundary. They never need access to `eec-campaigns`, `campaigns-template`, or any other domain's repo. ## Layout ``` campaigns/ / campaign.md email-templates/ campaign.html .gitea/workflows/ sync.yml # push to master -> draft + preview send.yml # tag push send/, or manual dispatch -> real send test.yml # manual dispatch -> re-preview without touching status sync-template.yml # manual dispatch -> push email template as listmonk default ```