- app/: Emdash scaffold (Astro 6, node target) with cmses/plugins/pages collections - app/seed/seed.json: WordPress→Emdash parity for kotkanagrilli.fi (~30 entries) - Dockerfile + docker/entrypoint.sh: multi-stage build, single PVC at /app/state - deploy/helm/: chart mirroring emdash-kotkanagrilli (single-replica, sqlite, kotkan) - deploy/fleet-overlay/: HelmRelease/source/image-automation templates for anton-helm-workloads (staging + production) - .woodpecker/container.yaml: arm64 build, three OCI tags per push (immutable 0.1.<pipeline> + floating <branch> + <branch>-latest) - .ddev/: local dev with nginx proxy to emdash on :4321 - README/DEPLOYMENT/ARCHITECTURE/CLAUDE: docs covering the three-repo pipeline (cms-plugins + anton-helm-workloads + Gitea OCI registry)
3.2 KiB
cms-plugins
A browseable catalog of CMS plugins and how they map across platforms,
built on Emdash (Astro 6 +
TypeScript + SQLite). The seed dataset is the WordPress → Emdash plugin
parity matrix from kotkanagrilli.fi; new entries can be added through
the Emdash admin.
| Repo | URL | Role |
|---|---|---|
| cms-plugins (this repo) | git@git.oleks.space:oleks/cms-plugins.git |
App, Dockerfile, Helm chart, Woodpecker pipeline |
| emdash.kotkanagrilli.fi | git@git.oleks.space:oleks/emdash-kotkanagrilli.git |
Reference Emdash deployment whose pattern this repo mirrors |
| kotkanagrilli.fi (WordPress) | git@git.oleks.space:oleks/kotkanagrilli.fi.git (+ github.com:retif/kotkanagrilli.fi.git) |
Source of the seeded plugin entries (parity matrix) |
| anton-helm-workloads | https://git.oleks.space/anton/helm-workloads |
Houses the FluxCD HelmReleases for each environment (kotkanagrilli.fi subdomains) |
Status
Phase 0 — Emdash scaffold + Helm chart + Woodpecker pipeline. No content beyond the seeded WordPress plugin entries. Not yet running anywhere.
What's in here
app/— Emdash scaffold (Astro 6, node target). Three collections:cmses,plugins,pages. Seed atapp/seed/seed.json.Dockerfile+docker/entrypoint.sh— production image. Single PVC at/app/stateholdsdata.dbanduploads/.deploy/helm/— the Helm chart that runs the pod in k3s. Same shape as~/projects/emdash.kotkanagrilli.fi/deploy/helm/.deploy/fleet-overlay/—HelmRelease+GitRepository+ image-automation templates ready to drop into theanton-helm-workloadsrepo. Not consumed from this repo directly..woodpecker/container.yaml— build + push pipeline (develop / staging / production branches)..ddev/— DDEV setup for local development (https://cms-plugins.ddev.site/).DEPLOYMENT.md— full pipeline fromgit pushto a running pod, plus the first-time setup checklist.ARCHITECTURE.md— chart / image / Flux contracts.docs/— additional notes.
Quickstart (local)
cd ~/projects/cms-plugins
ddev start
# → https://cms-plugins.ddev.site/ (admin at /_emdash/admin)
Or without DDEV:
cd app
npm install
npm run bootstrap # emdash init: migrations + seed
npx emdash dev # http://localhost:4321/
Reset to a blank state:
rm -f app/data.db app/data.db-shm app/data.db-wal
rm -rf app/uploads
Deploying
Push to the matching branch:
| Branch | Environment | URL |
|---|---|---|
develop |
dev (local DDEV only) | https://cms-plugins.ddev.site/ |
staging |
staging | https://cms-plugins-staging.kotkanagrilli.fi/ |
production |
production | https://cms-plugins-production.kotkanagrilli.fi/ |
Woodpecker builds + pushes the image to git.oleks.space/oleks/cms-plugins,
FluxCD reconciles the chart from deploy/helm/ against the matching
HelmRelease in anton-helm-workloads/cms-plugins-{staging,production}/.
See DEPLOYMENT.md for the full flow, the relationship
between this repo and anton-helm-workloads, the first-time setup
checklist, and how rollbacks work.