3.4 KiB
Cocotte-Tech Deploy Runbook
As of 2026-05-18: Cocotte-tech site is built but not yet deployed. Neither
cocotte.ionorcocotte.devis registered. This doc captures the deploy shape so the runbook is ready when DNS goes live.
What this feature ships
Two routes serving two future domains from the same Astro project:
| Route | Future domain | Purpose |
|---|---|---|
/ |
cocotte.io |
Platform-behind-the-brands marketing. |
/oss/ |
cocotte.dev |
Open-source surface; package roster. |
Architecture
Cocotte-tech uses Astro with the @cocotte/* package scope. Both
pages use BaseLayout directly (no NavBar/SiteFoot — each page defines
its own bespoke editorial chrome inline).
| Package | Role |
|---|---|
@cocotte/astro-tokens |
CSS variable contract (theme-agnostic) |
@cocotte/astro-chrome |
BaseLayout primitive |
@cocotte/astro-config |
defineBrandSiteConfig() factory |
Brand palette: shared between both pages (warm-dark cream-on-velvet,
pink/cyan accents, Archivo Black display). Lives in
src/styles/tokens.css.
Source of truth
| Surface | Path |
|---|---|
| Astro project | codebase/@features/cocotte-tech/site/ |
| cocotte.io page | codebase/@features/cocotte-tech/site/src/pages/index.astro |
| cocotte.dev page | codebase/@features/cocotte-tech/site/src/pages/oss/index.astro |
| Brand tokens | codebase/@features/cocotte-tech/site/src/styles/tokens.css |
| Globals | codebase/@features/cocotte-tech/site/src/styles/globals.css |
| Legacy HTML stubs | codebase/@features/cocotte-tech/{web,oss}/index.html (kept until cutover) |
Local build
``` cd codebase/@features/cocotte-tech/site bun install bun run build # → dist/index.html + dist/oss/index.html + sitemap bun run preview # localhost:4321 bun run dev # hot-reload dev server ```
Deploy (pending — cocotte.io + cocotte.dev not yet registered)
One Astro project, two domains. Each domain’s nginx vhost serves
the slice of dist/ relevant to it:
``` cd codebase/@features/cocotte-tech/site bun install bun run build
cocotte.io — root index
rsync -avz --delete \ --include='/index.html' --include='/_astro/*' --include='/favicon.ico' \ --include='/sitemap.xml' --include='/robots.txt' \ --exclude='/oss/' --exclude='' \ dist/ \ vps-0:/var/www/cocotte-io/web/
cocotte.dev — OSS surface (rsync the /oss/ subtree as the domain root)
rsync -avz --delete \ dist/oss/ \ vps-0:/var/www/cocotte-dev/web/ rsync -avz \ dist/_astro/ \ vps-0:/var/www/cocotte-dev/web/_astro/ ```
The shared _astro/ chunk dir gets synced to both targets so each
domain has self-contained asset URLs.
Nginx vhosts:
deployments/@domains/cocotte.io/nginx/prod.conf(not yet authored)deployments/@domains/cocotte.dev/nginx/prod.conf(not yet authored)