Oleks 8c119efff8 harden(deploy): apply safe fixes from review report-only items
- #3 Liveness probe targets full SSR DB-querying / route, coupling pod liveness to SQLite
- #4 Chart values-staging/production.yaml are dead config under Flux; drift trap
- #6 tsconfig includes gitignored emdash-env.d.ts that only the dev server generates
- #7 Dockerfile package-lock glob + npm install fallback can silently build an unlocked image
- #8 Dockerfile creates runtime user without pinning its GID
- #9 entrypoint.sh gates `emdash init` on data.db absence, skipping migrations on PVC reuse
- #10 pullPolicy: Always vs digest pinning
- #11 Dockerfile state symlinks contradict the STATE_DIR contract; Dockerfile does not set ENV STATE_DIR
- #12 astro is a production dependency, so npm prune --omit=dev keeps build-only tooling
- #14 Two ImageUpdateAutomations write back to the same anton-helm-workloads main branch
- #16 memoryCache provider is per-process; correctness depends implicitly on replicas:1
- #17 Root catch-all [slug].astro couples nav links to pages-collection rows + DB hit per unmatched path
- #18 Detail pages render a 200-style body under a 404 status and have no try/catch around getEmDash* calls
- #19 vite allowedHosts hardcodes ddev hostnames (dev-only; no prod impact)
2026-06-02 04:50:54 +03:00

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 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)

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

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 for the full flow, the relationship between this repo and anton-helm-workloads, the first-time setup checklist, and how rollbacks work.

S
Description
CMS plugins catalog — Emdash-based catalog of WordPress→Emdash plugin parity, seeded from kotkanagrilli.fi
Readme
506 KiB
Languages
Astro 48.9%
CSS 22.4%
Shell 7.7%
Dockerfile 7.2%
Go Template 5.2%
Other 8.6%