2.1 KiB
2.1 KiB
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.
After generating a new repo from this template
- Rename the template. In
.gitea/workflows/sync-template.yml, replaceTEMPLATE defaultwith a name specific to this domain (e.g.<client> default). - Restyle
email-templates/campaign.htmlif this client wants different branding than the stock listmonk template it starts as. - Add repo secrets (Gitea Actions → Secrets):
CAMPAIGNS_LISTMONK_BASE_URL,CAMPAIGNS_LISTMONK_API_USER,CAMPAIGNS_LISTMONK_API_TOKEN, and optionallyCAMPAIGNS_PREVIEW_EMAIL— scoped to this domain's own listmonk instance and its own dedicated API user (seereground-infrastructure'scampaignsAnsible role for provisioning that user). - Check the tool version pin in all four
.gitea/workflows/*.ymlfiles (currentlyv0.1.0) — bump it only deliberately, after confirming a newereec-campaignsrelease works. - Run the
Sync default campaign templateworkflow once. - 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). - 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