Files
Oleks 4beb58ff48
ci/woodpecker/push/container Pipeline was successful
README: add Windows / WSL2 note for ddev contributors
2026-05-20 14:13:38 +03:00

91 lines
3.6 KiB
Markdown

# 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:
<https://ddev.readthedocs.io/en/stable/users/install/ddev-installation/#windows>.
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.