# cms-plugins A browseable catalog of CMS plugins and how they map across platforms, built on [Emdash](https://github.com/emdash-cms/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 `HelmRelease`s 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 at `app/seed/seed.json`. - `Dockerfile` + `docker/entrypoint.sh` — production image. Single PVC at `/app/state` holds `data.db` and `uploads/`. - `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 the `anton-helm-workloads` repo. 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 from `git push` to a running pod, plus the first-time setup checklist. - `ARCHITECTURE.md` — chart / image / Flux contracts. - `docs/` — additional notes. ## Quickstart (local) ```bash cd ~/projects/cms-plugins ddev start # → https://cms-plugins.ddev.site/ (admin at /_emdash/admin) ``` Or without DDEV: ```bash cd app npm install npm run bootstrap # emdash init: migrations + seed npx emdash dev # http://localhost:4321/ ``` Reset to a blank state: ```bash rm -f app/data.db app/data.db-shm app/data.db-wal rm -rf app/uploads ``` ### Windows DDEV runs on Windows via WSL2 — install WSL2 + an Ubuntu distro, then follow the Linux install instructions *inside* WSL: . Keep the repo on the WSL filesystem (`~/projects/cms-plugins` inside Ubuntu), not under `/mnt/c/…` — Vite HMR and `npm install` are noticeably slower across the Windows ↔ Linux mount boundary. ## 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](./DEPLOYMENT.md)** for the full flow, the relationship between this repo and `anton-helm-workloads`, the first-time setup checklist, and how rollbacks work.