- TypeScript 68.6%
- JavaScript 24.7%
- CSS 4.4%
- Dockerfile 1.6%
- HTML 0.7%
|
|
||
|---|---|---|
| docs | ||
| e2e | ||
| nginx | ||
| public | ||
| scripts | ||
| skills | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .woodpecker.yaml | ||
| AGENTS.md | ||
| Dockerfile | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| vitest.dist.config.ts | ||
cl8y-docs
TypeScript static site for https://docs.cl8y.com (Vite + React + TS → nginx). Coolify deployable. Governance stays in PlasticDigits/cl8y-marketing.
Status: v0 app lives in this repository (#3). Production hostname attach is operator Coolify work after merge. Until then, verify the image locally (npm run verify).
See docs/ARCHITECTURE.md, docs/INVARIANTS.md, and AGENTS.md. Third-party agents: skills/docs-static-host/SKILL.md.
Scripts
npm test # unit: origins, dexHref, seo map
VITE_SITE_ORIGIN=https://docs.cl8y.com \
VITE_DEX_ORIGIN=https://dex.cl8y.com \
VITE_INDEXER_ORIGIN=https://indexer.dex.cl8y.com \
npm run build # fail-closed origins + prerender
npm run test:dist # unique titles/canonicals in dist
npm run verify # Docker nginx image + curl + Playwright 5 workers
Deploy
Build the image with public ARGs only: VITE_SITE_ORIGIN, VITE_DEX_ORIGIN, optional VITE_INDEXER_ORIGIN=https://indexer.dex.cl8y.com. Runtime is nginxinc/nginx-unprivileged on 8080. Coolify maps docs.cl8y.com → this container. Rollback = previous image tag. Do not pick machine SKU, snapshot, or a new hypervisor.
Do not add a DEX Sitemap: pointer until production GET /sitemap.xml succeeds (marketing#2).