Customize eec-courses-template for sunfloweracressoaps.com
Sync courses / sync (push) Successful in 5s

Wire the sync workflow to eec-sunfloweracres, and add a real four-part
welcome/nurture course that also grows the sunfloweracres-list mailing
list via signup_list_name.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 07:34:11 -04:00
parent e246c01af7
commit b0279f3fd8
8 changed files with 102 additions and 21 deletions
+24 -18
View File
@@ -1,9 +1,9 @@
# __CLIENT__-eec-courses
# sunfloweracres-eec-courses
Course content for [eec](https://gitea.reground.org/will/eec), the self-paced
email course engine — this instance served at eec.__DOMAIN__. Push to
`master` and CI syncs `courses/` straight to production — there's no staging
step, so treat a push here the same as a push to `eec` itself.
email course engine — this instance served at eec.sunfloweracressoaps.com.
Push to `master` and CI syncs `courses/` straight to production — there's no
staging step, so treat a push here the same as a push to `eec` itself.
Full reference for course/step file format, `course.yml` fields, the
readiness step, drip-triggered courses, and sync guardrails lives in the
@@ -14,26 +14,32 @@ format is identical, only the target instance differs.
```
courses/
<slug>/
welcome/
course.yml
day-0.md
day-1.md
...
day-2.md
day-3.md
```
`welcome` is Sunflower Acres' welcome/nurture sequence, and doubles as the
site's mailing-list signup mechanism — the course's own public signup form
at eec.sunfloweracressoaps.com adds the subscriber to the
`sunfloweracres-list` Listmonk list immediately (`signup_list_name` in
`course.yml`, no click required), then sends four emails over the following
days: the current bar lineup, the cold-process/six-week-cure story, and a
soft close pointing back at the shop.
**Status: live, `active: true`.** All four steps have real content — no
placeholders. Update copy in place as the product lineup or stock status
changes; the emails currently reflect the lineup as of this course's launch,
so revisit them if bars are added, discontinued, or restocked in a way
that's stale here.
## Deploying
Push to `master``.gitea/workflows/sync.yml` tars up `courses/` and
`POST`s it to this domain's `eec-__CLIENT__` container over the internal
Docker network, authenticated with `__CLIENT___EEC_SYNC_TOKEN` (a Gitea
Actions secret shared with the `eec-__CLIENT__` Ansible role's copy). No
`POST`s it to this domain's `eec-sunfloweracres` container over the internal
Docker network, authenticated with `SUNFLOWERACRES_EEC_SYNC_TOKEN` (a Gitea
Actions secret shared with the `eec-sunfloweracres` Ansible role's copy). No
separate deploy step, no staging — a push here goes live immediately.
---
**Generating a new client repo from this template:**
1. Gitea → "Generate Repo" from this template repo's page, named `<client>-eec-courses`.
2. Find/replace `__CLIENT__` → the client's slug (must match the `eec-<client>` container name) and `__DOMAIN__` → the client's domain, in this README and in `.gitea/workflows/sync.yml`.
3. Add the `<CLIENT>_EEC_SYNC_TOKEN` Actions secret to the new repo (Gitea does not carry secrets over from a template) — value must match the `eec-<client>` Ansible role's copy.
4. Delete this "Generating a new client repo" section from the new repo's README once done.