Initial commit: BlueCap Strategies Astro site

Static Astro 5 site for BlueCap Strategies with exact live-site content
parity, deployed to k3s via GitOps (ArgoCD).

- Page copy in Markdown content collections (services, focus-areas, pages,
  insights) with a Zod SEO schema enforced at build time
- Homepage + About restored to exact live copy; real live-site imagery
- Build-time SEO linter (scripts/seo-lint.mjs) and Playwright e2e suite
- Multi-stage Dockerfile (nginx serves dist/) and Kustomize manifests (k8s/)
- Per-agent robots.txt; config-driven PostHog + Umami analytics scaffold
- ADRs and engineering docs under docs/

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
gitea_adminandClaude Opus 4.8 committed 2026-07-15 17:40:46 -04:00
commit cd91c4b97c
92 files changed
+10246

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
# ADR-0001: GitOps deployment via ArgoCD (not Flux)
**Status:** Accepted — 2026-07-15
## Context
The site deploys to the homelab k3s cluster. GitHub must never receive kubeconfig or direct
cluster access. An earlier plan specified Flux, but Flux was never implemented, and the homelab
**already runs ArgoCD** (namespace `argocd`, active 21d+) managing other workloads.
## Decision
Use **ArgoCD** as the GitOps reconciler. Model: local edit → GitHub Actions builds + pushes image
to GHCR (`<git-sha>` immutable tags) → CI commits the tag into `k8s/` → ArgoCD auto-syncs the
Kustomize manifests → k3s rolls the Deployment → Traefik serves. Manifests stay as plain Kustomize
under `k8s/` (ArgoCD consumes `k8s/kustomization.yaml` natively; no Helm chart).
## Consequences
- No second GitOps controller to run; reuses existing, understood infra.
- Cluster pulls from Git + GHCR; GitHub never touches the cluster.
- Requires: `git init` + GitHub remote (not yet done), a GHCR image path, and an ArgoCD
`Application` CR (direct or via the homelab app-of-apps).
- Rollback = `git revert` + push, or ArgoCD history rollback.
- Full detail in `docs/gitops-deployment-strategy.md`.