Files
cateconners-campaigns/README.md
T
2026-07-20 18:28:38 +00:00

31 lines
2.1 KiB
Markdown

# 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. `<client> 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/
<slug>/
campaign.md
email-templates/
campaign.html
.gitea/workflows/
sync.yml # push to master -> draft + preview
send.yml # tag push send/<slug>, 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
```