lilith-platform.live/codebase/@features/demimonde/DEPLOY.md
Natalie 02483204fd infra: repoint @lilith npm registry + Forgejo from dead black to DO cocotte-forge; serve /photos from local disk
black/apricot homelan died 2026-06-27. Point everything at the DO store tier:
- @lilith npm registry: forge.black.lan/npm.black.lan -> cocotte-forge Verdaccio
  (134.199.243.61:4873) across bunfig.toml scopes, all deploy.sh .npmrc writers,
  and package.json publishConfig.
- Forgejo URL (git/CI): forge.black.lan -> 134.199.243.61:3000 / :2222.
- quinn.www prod.conf /photos: was proxy_pass to dead black_photos (black:8081);
  now served from local disk (root /var/www/quinn.www/dist). Prevents a future
  deploy from re-breaking photos. (Phase G: repoint to DO Spaces/CDN later.)

Interim bare-IP endpoints; switch to named uvlava infranet hosts once live.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 08:09:33 -04:00

3.1 KiB
Raw Blame History

Demimonde Deploy Runbook

As of 2026-05-18: Demimonde site is built but not yet deployed. The prod domain demimondaine.paris is not registered. This doc captures the deploy shape so the runbook is ready when DNS goes live.


What this feature ships

A single-page financial-entity surface for Demimonde, LLC — the office that holds bookings, revenue, and invoicing for the talent. Does not solicit consumer business. The canonical URL exists for registration purposes only.

Route Purpose
/ Entity card — mailing/correspondence/scope/policy.

Architecture

Demimonde uses Astro with the @cocotte/* package scope (Verdaccio at 134.199.243.61:4873/):

Package Role
@cocotte/astro-tokens CSS variable contract (theme-agnostic)
@cocotte/astro-chrome BaseLayout primitive
@cocotte/astro-config defineBrandSiteConfig() factory

Layout: BaseLayout direct (no NavBar/SiteFoot — single-page entity has no nav). The pages draft banner + entity card + page footer are defined inline with a scoped <style> block.

Brand palette: warm-dark cream-on-velvet, pink/cyan accents, system serif. Lives in src/styles/tokens.css overriding the @cocotte/astro-tokens contract.


Source of truth

Surface Path
Astro project codebase/@features/demimonde/site/
Page codebase/@features/demimonde/site/src/pages/index.astro
Brand tokens codebase/@features/demimonde/site/src/styles/tokens.css
Globals codebase/@features/demimonde/site/src/styles/globals.css
Legacy HTML stub codebase/@features/demimonde/web/index.html (kept until deploy cutover)

Once a prod domain is live and deploy is wired, delete web/ in a single cleanup commit.


Local build

``` cd codebase/@features/demimonde/site bun install bun run build # → dist/index.html + sitemap-index.xml bun run preview # localhost:4321 bun run dev # hot-reload dev server ```


Deploy (pending — demimondaine.paris not yet registered)

When the domain is live:

``` cd codebase/@features/demimonde/site bun install bun run build

rsync -avz --delete \ dist/ \ vps-0:/var/www/demimonde/web/ ```

Nginx vhost: deployments/@domains/demimondaine.paris/nginx/prod.conf (not yet authored — create when DNS lands). Lets Encrypt via certbot at deploy time.


Dev-server port

astro dev defaults to 4321. Pass --port to avoid collisions with the other brand sites if running multiple at once.