Files
sunfloweracres-campaigns/README.md
T
2026-07-30 11:30:00 +00:00

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

  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