Files
vpengops 01d6ad0e48 ci: QA suite (repo+live), Gitea Actions workflow, app config-as-code
- qa/site-qa.sh: repo structure/link checks + full live crawl (routes,
  links, assets, canonical-https)
- .gitea/workflows/qa.yml: repo QA on push, nightly live QA
- app/: config-as-code for the deployed sync job, scheduler entry,
  and Grav system.yaml (reverse-proxy HTTPS detection)
- local pre-push hook runs repo QA

https://projects.knownelement.com/issues/928
2026-09-07 12:27:54 -05:00

26 lines
1.3 KiB
Markdown

# roguetechnologies.net — Grav site source
Source of truth for the Rogue Technologies website (Grav CMS on
Cloudron, San Antonio TX), managed two-way by the Grav **Git Sync**
plugin. Rebuilt 2026-09-07 after the previous WordPress install was
found fully compromised (see Discourse topic 345).
Commits from the site (Git Sync) are authored by **VpEngOps**.
Related: https://projects.knownelement.com/issues/928
## QA / CI / deployment process
- `qa/site-qa.sh` — repo checks (structure, frontmatter, internal link targets).
Run before every push; also enforced by the local pre-push hook.
- `.gitea/workflows/qa.yml` — Gitea Actions: repo QA on every push, nightly
live QA (full route crawl + link/asset check + HTTPS-canonical check).
- Deployment: the site container runs `app/git-sync-job.sh` (config-as-code
copy here) every 15 minutes via the Grav scheduler
(`app/scheduler/git-sync.job.yaml`): pulls upstream, clears the Grav cache,
verifies `/` and `/shop` answer 200 — **rolls back to the previous commit
automatically if verification fails** — and pushes local content edits
(authored VpEngOps).
- Site management: edit here (gitea web UI works fine) and the site follows
within 15 minutes. There is no /admin UI: Grav 2 ships without one and this
deployment is git-first by design.