Rename Astro docs project to clawdie-docs (Sam & Claude)

Make the docs renderer name match its purpose, add CMS_DOCS_SITE_PATH with ASTRO_SITE_PATH compatibility, and update docs publishing paths.

---
Build: pass | Tests: pass — 2372 passed (704 files)
This commit is contained in:
Operator & Codex 2026-05-10 19:49:39 +02:00
parent 225b9b032a
commit e3ad322d3b
103 changed files with 115 additions and 104 deletions

View file

@ -257,7 +257,8 @@ LLAMA_CPP_JAIL_NAME=
# CMS_JAIL_NAME defaults to "cms" and auto-detects legacy names.
# CMS_JAIL_IP defaults to ${AGENT_SUBNET_BASE}.4 when setup --step cms runs.
# CMS_WEBROOT defaults to /usr/local/www/clawdie and serves docs/tenant output
# ASTRO_SITE_PATH defaults to /home/clawdie/clawdie-site
# CMS_DOCS_SITE_PATH defaults to /home/clawdie/clawdie-docs
# ASTRO_SITE_PATH is accepted as a backward-compatible alias
# CMS_LANDING_SITE_PATH defaults to /home/clawdie/clawdie-si
# CMS_LANDING_WEBROOT defaults to /usr/local/www/clawdie-si
# CMS_STRAPI_PATH defaults to /home/clawdie/strapi

View file

@ -56,7 +56,9 @@ const defaultHostRoot =
? `${localRoot.replace(/^\/home\//u, '/usr/home/')}-host`
: `${localRoot}-host`;
const hostRoot =
process.env.CMS_HOST_SITE_PATH || defaultHostRoot;
process.env.CMS_HOST_DOCS_PATH ||
process.env.CMS_HOST_SITE_PATH ||
defaultHostRoot;
if (!fs.existsSync(hostRoot)) process.exit(0);
@ -92,9 +94,9 @@ if (hostSourceConfig && localSourceConfig !== hostSourceConfig) {
writeFileAtomic(localSourceAstroConfig, hostSourceConfig);
}
const sourceChanged =
syncTree(hostScriptsDir, localScriptsDir) ||
syncTree(hostSrcDir, localSrcDir);
const scriptsChanged = syncTree(hostScriptsDir, localScriptsDir);
const srcChanged = syncTree(hostSrcDir, localSrcDir);
const sourceChanged = scriptsChanged || srcChanged;
if (localPackage !== hostPackage || localConfig !== hostConfig || localSourceConfig !== hostSourceConfig) {
const result = spawnSync('npm', ['install'], {

View file

Before

Width:  |  Height:  |  Size: 317 B

After

Width:  |  Height:  |  Size: 317 B

View file

@ -60,7 +60,7 @@ At this point the repo contains the content that Astro will render.
Inside the cms jail docs project:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -20,8 +20,8 @@ This section describes the **current** workflow, not the older standalone `astro
The live docs site is built from the Astro project at:
- repo source: `bootstrap/cms/clawdie-site/`
- cms jail runtime path: `/usr/home/<tenant>/<tenant>-site/`
- repo source: `bootstrap/cms/clawdie-docs/`
- cms jail runtime path: `/usr/home/<tenant>/<tenant>-docs/`
## Current pipeline
@ -58,7 +58,7 @@ The shared Astro/Starlight docs project:
The current supported docs deploy flow is:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -82,7 +82,7 @@ This updates translated markdown under paths like:
Deploy still happens through the shared Astro project in the cms jail:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -59,7 +59,7 @@ First make sure the translated markdown exists in the repo.
Then redeploy from the cms jail project:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -69,7 +69,7 @@ If that succeeds, verify the live route with `curl`.
Remember the current runtime path is:
- `/usr/home/<tenant>/<tenant>-site/`
- `/usr/home/<tenant>/<tenant>-docs/`
Not:

View file

@ -17,9 +17,9 @@ This page describes the current supported operator workflow.
The current deploy shape is:
- Host repo source: `/home/<agent>/clawdie-ai/`
- Astro project in repo: `bootstrap/cms/clawdie-site/`
- Astro project in cms jail: `/usr/home/<tenant>/<tenant>-site/`
- Mounted host source in cms jail: `/usr/home/<tenant>/<tenant>-site-host/`
- Astro project in repo: `bootstrap/cms/clawdie-docs/`
- Astro project in cms jail: `/usr/home/<tenant>/<tenant>-docs/`
- Mounted host source in cms jail: `/usr/home/<tenant>/<tenant>-docs-host/`
- Docs webroot in cms jail: `/usr/local/www/<tenant>/`
- Tenant-site output root in cms jail: `/usr/local/www/<tenant>/sites/`
@ -34,7 +34,7 @@ For docs content, the source of truth is:
- `docs/public/`
- `docs/public/sl/`
The Astro tree under `bootstrap/cms/clawdie-site/src/content/docs/` is a generated consumer, not the editorial source of truth.
The Astro tree under `bootstrap/cms/clawdie-docs/src/content/docs/` is a generated consumer, not the editorial source of truth.
### Day-to-day docs workflow
@ -48,7 +48,7 @@ git pull
3. Build and deploy from inside the cms jail project:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -66,7 +66,7 @@ That deploy flow runs:
When docs-related content changes in Strapi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```
@ -115,7 +115,7 @@ It currently:
2. If Strapi content changed, run:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```

View file

@ -60,7 +60,7 @@ Na tej točki repozitorij vsebuje vsebino, ki jo bo Astro izrisal.
Znotraj docs projekta v cms ječi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -20,8 +20,8 @@ Ta razdelek opisuje **trenutni** potek, ne starejšega samostojnega `astro-docs`
Živa docs stran se zgradi iz Astro projekta na:
- izvor v repozitoriju: `bootstrap/cms/clawdie-site/`
- runtime pot v cms ječi: `/usr/home/<tenant>/<tenant>-site/`
- izvor v repozitoriju: `bootstrap/cms/clawdie-docs/`
- runtime pot v cms ječi: `/usr/home/<tenant>/<tenant>-docs/`
## Trenutni potek
@ -58,7 +58,7 @@ Skupni Astro/Starlight docs projekt:
Trenutno podprta pot objave dokumentacije je:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -82,7 +82,7 @@ To posodobi prevedeni markdown pod potmi kot:
Objava še vedno teče skozi skupni Astro projekt v cms ječi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -59,7 +59,7 @@ Najprej preveri, ali prevedeni markdown res obstaja v repozitoriju.
Nato znova objavi iz docs projekta v cms ječi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -69,7 +69,7 @@ npm run deploy
Ne pozabi, da je trenutna runtime pot:
- `/usr/home/<tenant>/<tenant>-site/`
- `/usr/home/<tenant>/<tenant>-docs/`
In ne:

View file

@ -17,9 +17,9 @@ Ta stran opisuje trenutni podprti operatorski potek.
Trenutna pot objave je:
- Host repozitorij: `/home/<agent>/clawdie-ai/`
- Astro projekt v repozitoriju: `bootstrap/cms/clawdie-site/`
- Astro projekt v cms ječi: `/usr/home/<tenant>/<tenant>-site/`
- Priklopljen host izvor v cms ječi: `/usr/home/<tenant>/<tenant>-site-host/`
- Astro projekt v repozitoriju: `bootstrap/cms/clawdie-docs/`
- Astro projekt v cms ječi: `/usr/home/<tenant>/<tenant>-docs/`
- Priklopljen host izvor v cms ječi: `/usr/home/<tenant>/<tenant>-docs-host/`
- Docs webroot v cms ječi: `/usr/local/www/<tenant>/`
- Izhodiščna pot za tenant-site spletišča: `/usr/local/www/<tenant>/sites/`
@ -34,7 +34,7 @@ Za docs vsebino je vir resnice:
- `docs/public/`
- `docs/public/sl/`
Astro drevo pod `bootstrap/cms/clawdie-site/src/content/docs/` je generirani porabnik, ne uredniški primarni vir.
Astro drevo pod `bootstrap/cms/clawdie-docs/src/content/docs/` je generirani porabnik, ne uredniški primarni vir.
### Dnevni potek za dokumentacijo
@ -48,7 +48,7 @@ git pull
3. Zgradi in objavi iz cms ječe:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -66,7 +66,7 @@ Ta pot objave zažene:
Ko se vsebina v Strapi spremeni:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```
@ -115,7 +115,7 @@ Trenutno:
2. Če se je vsebina v Strapi spremenila, zaženi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```

View file

@ -20,10 +20,10 @@ base_path: "."
base_url: "https://api.crowdin.com"
files:
- source: /bootstrap/cms/clawdie-site/src/content/docs/en/**/*.md
translation: /bootstrap/cms/clawdie-site/src/content/docs/%original_path%/%original_file_name%
- source: /bootstrap/cms/clawdie-docs/src/content/docs/en/**/*.md
translation: /bootstrap/cms/clawdie-docs/src/content/docs/%original_path%/%original_file_name%
ignore:
- /bootstrap/cms/clawdie-site/src/content/docs/en/guides/**
- /bootstrap/cms/clawdie-docs/src/content/docs/en/guides/**
languages_mapping:
locale:
sl: ""

View file

@ -69,7 +69,7 @@ The **three-bird architecture** decouples documentation concerns into three inde
┌────────────────▼────────────────┐
│ Astro Starlight Build │
│ (npm run build in │
│ bootstrap/cms/clawdie-site/) │
│ bootstrap/cms/clawdie-docs/) │
│ │
│ - Multi-locale config │
│ - Sidebar i18n │
@ -178,7 +178,7 @@ The **three-bird architecture** decouples documentation concerns into three inde
./scripts/crowdin-sync.sh --pull
# 5. Astro builds multilingual site
cd /home/clawdie/clawdie-ai/bootstrap/cms/clawdie-site && npm run build
cd /home/clawdie/clawdie-ai/bootstrap/cms/clawdie-docs && npm run build
# 6. Deploy to nginx
sudo cp -r dist/* /usr/local/www/clawdie/docs/
@ -201,7 +201,7 @@ All automation is controlled by environment variables in `.env`:
CROWDIN_PERSONAL_TOKEN=tskey-xxx
# Paths
ASTRO_SITE_PATH=/home/clawdie/clawdie-ai/bootstrap/cms/clawdie-site
CMS_DOCS_SITE_PATH=/home/clawdie/clawdie-ai/bootstrap/cms/clawdie-docs
DOCS_DEPLOY_TARGET=/usr/local/www/clawdie/docs
# Thresholds
@ -245,7 +245,7 @@ docs/public/{lang}/ # Crowdin translations
### Astro Project
```
/home/clawdie/clawdie-ai/bootstrap/cms/clawdie-site/
/home/clawdie/clawdie-ai/bootstrap/cms/clawdie-docs/
├── astro.config.mjs # Multi-locale Starlight config
├── package.json
├── src/
@ -273,9 +273,11 @@ docs/public/{lang}/ # Crowdin translations
```typescript
// CMS/Docs paths
export const CMS_JAIL_IP = envConfig.WARDEN_CMS_IP || '10.0.0.4';
export const ASTRO_SITE_PATH =
export const CMS_DOCS_SITE_PATH =
envConfig.CMS_DOCS_SITE_PATH ||
envConfig.ASTRO_SITE_PATH ||
'/home/clawdie/clawdie-ai/bootstrap/cms/clawdie-site';
'/home/clawdie/clawdie-ai/bootstrap/cms/clawdie-docs';
export const ASTRO_SITE_PATH = CMS_DOCS_SITE_PATH;
export const CMS_WEBROOT = envConfig.CMS_WEBROOT || '/usr/local/www/clawdie';
// Used by jail runtime for mounting docs build

View file

@ -88,7 +88,7 @@ It does not yet prove:
Source artifact:
- `ASTRO_SITE_PATH/dist-sites/<tenant>/<site>/` inside the `cms` jail
- `CMS_DOCS_SITE_PATH/dist-sites/<tenant>/<site>/` inside the `cms` jail
Published target:
@ -135,7 +135,7 @@ Current published shape:
- `status.md`
- matching `en/*` pages
- output now lands in:
- `ASTRO_SITE_PATH/dist-sites/<tenant>/<site>/`
- `CMS_DOCS_SITE_PATH/dist-sites/<tenant>/<site>/`
- publish command syncs that site-specific artifact into:
- `CMS_WEBROOT/sites/<tenant>/<site>/`
@ -149,7 +149,7 @@ override.
- Strapi stores starter tenant-site pages and editable content
- export step writes JSON snapshots into:
- `bootstrap/cms/clawdie-site/src/content/tenant-sites/<tenant>/<site>.json`
- `bootstrap/cms/clawdie-docs/src/content/tenant-sites/<tenant>/<site>.json`
- Astro/Starlight stays the renderer
- the publish command prefers the committed snapshot when present
- if no snapshot exists, the generated registry-based docs pack remains the fallback

View file

@ -60,7 +60,7 @@ At this point the repo contains the content that Astro will render.
Inside the cms jail docs project:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -20,8 +20,8 @@ This section describes the **current** workflow, not the older standalone `astro
The live docs site is built from the Astro project at:
- repo source: `bootstrap/cms/clawdie-site/`
- cms jail runtime path: `/usr/home/<tenant>/<tenant>-site/`
- repo source: `bootstrap/cms/clawdie-docs/`
- cms jail runtime path: `/usr/home/<tenant>/<tenant>-docs/`
## Current pipeline
@ -58,7 +58,7 @@ The shared Astro/Starlight docs project:
The current supported docs deploy flow is:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -82,7 +82,7 @@ This updates translated markdown under paths like:
Deploy still happens through the shared Astro project in the cms jail:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -59,7 +59,7 @@ First make sure the translated markdown exists in the repo.
Then redeploy from the cms jail project:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -69,7 +69,7 @@ If that succeeds, verify the live route with `curl`.
Remember the current runtime path is:
- `/usr/home/<tenant>/<tenant>-site/`
- `/usr/home/<tenant>/<tenant>-docs/`
Not:

View file

@ -17,9 +17,9 @@ This page describes the current supported operator workflow.
The current deploy shape is:
- Host repo source: `/home/<agent>/clawdie-ai/`
- Astro project in repo: `bootstrap/cms/clawdie-site/`
- Astro project in cms jail: `/usr/home/<tenant>/<tenant>-site/`
- Mounted host source in cms jail: `/usr/home/<tenant>/<tenant>-site-host/`
- Astro project in repo: `bootstrap/cms/clawdie-docs/`
- Astro project in cms jail: `/usr/home/<tenant>/<tenant>-docs/`
- Mounted host source in cms jail: `/usr/home/<tenant>/<tenant>-docs-host/`
- Docs webroot in cms jail: `/usr/local/www/<tenant>/`
- Tenant-site output root in cms jail: `/usr/local/www/<tenant>/sites/`
@ -34,7 +34,7 @@ For docs content, the source of truth is:
- `docs/public/`
- `docs/public/sl/`
The Astro tree under `bootstrap/cms/clawdie-site/src/content/docs/` is a generated consumer, not the editorial source of truth.
The Astro tree under `bootstrap/cms/clawdie-docs/src/content/docs/` is a generated consumer, not the editorial source of truth.
### Day-to-day docs workflow
@ -48,7 +48,7 @@ git pull
3. Build and deploy from inside the cms jail project:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -66,7 +66,7 @@ That deploy flow runs:
When docs-related content changes in Strapi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```
@ -115,7 +115,7 @@ It currently:
2. If Strapi content changed, run:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```

View file

@ -60,7 +60,7 @@ Na tej točki repozitorij vsebuje vsebino, ki jo bo Astro izrisal.
Znotraj docs projekta v cms ječi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -20,8 +20,8 @@ Ta razdelek opisuje **trenutni** potek, ne starejšega samostojnega `astro-docs`
Živa docs stran se zgradi iz Astro projekta na:
- izvor v repozitoriju: `bootstrap/cms/clawdie-site/`
- runtime pot v cms ječi: `/usr/home/<tenant>/<tenant>-site/`
- izvor v repozitoriju: `bootstrap/cms/clawdie-docs/`
- runtime pot v cms ječi: `/usr/home/<tenant>/<tenant>-docs/`
## Trenutni potek
@ -58,7 +58,7 @@ Skupni Astro/Starlight docs projekt:
Trenutno podprta pot objave dokumentacije je:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -82,7 +82,7 @@ To posodobi prevedeni markdown pod potmi kot:
Objava še vedno teče skozi skupni Astro projekt v cms ječi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```

View file

@ -59,7 +59,7 @@ Najprej preveri, ali prevedeni markdown res obstaja v repozitoriju.
Nato znova objavi iz docs projekta v cms ječi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -69,7 +69,7 @@ npm run deploy
Ne pozabi, da je trenutna runtime pot:
- `/usr/home/<tenant>/<tenant>-site/`
- `/usr/home/<tenant>/<tenant>-docs/`
In ne:

View file

@ -17,9 +17,9 @@ Ta stran opisuje trenutni podprti operatorski potek.
Trenutna pot objave je:
- Host repozitorij: `/home/<agent>/clawdie-ai/`
- Astro projekt v repozitoriju: `bootstrap/cms/clawdie-site/`
- Astro projekt v cms ječi: `/usr/home/<tenant>/<tenant>-site/`
- Priklopljen host izvor v cms ječi: `/usr/home/<tenant>/<tenant>-site-host/`
- Astro projekt v repozitoriju: `bootstrap/cms/clawdie-docs/`
- Astro projekt v cms ječi: `/usr/home/<tenant>/<tenant>-docs/`
- Priklopljen host izvor v cms ječi: `/usr/home/<tenant>/<tenant>-docs-host/`
- Docs webroot v cms ječi: `/usr/local/www/<tenant>/`
- Izhodiščna pot za tenant-site spletišča: `/usr/local/www/<tenant>/sites/`
@ -34,7 +34,7 @@ Za docs vsebino je vir resnice:
- `docs/public/`
- `docs/public/sl/`
Astro drevo pod `bootstrap/cms/clawdie-site/src/content/docs/` je generirani porabnik, ne uredniški primarni vir.
Astro drevo pod `bootstrap/cms/clawdie-docs/src/content/docs/` je generirani porabnik, ne uredniški primarni vir.
### Dnevni potek za dokumentacijo
@ -48,7 +48,7 @@ git pull
3. Zgradi in objavi iz cms ječe:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run deploy
```
@ -66,7 +66,7 @@ Ta pot objave zažene:
Ko se vsebina v Strapi spremeni:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```
@ -115,7 +115,7 @@ Trenutno:
2. Če se je vsebina v Strapi spremenila, zaženi:
```bash
cd /usr/home/<tenant>/<tenant>-site
cd /usr/home/<tenant>/<tenant>-docs
npm run export-strapi
```

View file

@ -16,7 +16,7 @@ import path from 'path';
import {
AGENT_DOMAIN,
AGENT_INTERNAL_DOMAIN,
ASTRO_SITE_PATH,
CMS_DOCS_SITE_PATH,
CMS_INTERNAL_DOMAIN,
CMS_JAIL_IP,
CMS_WEBROOT,
@ -204,7 +204,7 @@ function ensureCmsDocsBootstrapMounted(
ensureCmsBootstrapMounted(
jailName,
astroSitePath,
'bootstrap/cms/clawdie-site',
'bootstrap/cms/clawdie-docs',
);
}
@ -224,7 +224,7 @@ function ensureCmsLandingBootstrapMounted(
function starlightPackageJson(): string {
return JSON.stringify(
{
name: 'cms-docs',
name: 'clawdie-docs',
private: true,
version: '0.0.1',
type: 'module',
@ -920,7 +920,7 @@ export async function run(_args: string[]): Promise<void> {
const defaultJailName = 'cms';
const preferredJailName = `${safeAgentName}cms`;
const legacyHyphenName = `${TENANT_ID}-cms`;
const astroSitePathReal = jailPathNoHomeSymlink(ASTRO_SITE_PATH);
const astroSitePathReal = jailPathNoHomeSymlink(CMS_DOCS_SITE_PATH);
const landingSitePathReal = jailPathNoHomeSymlink(PLATFORM_LANDING_SITE_PATH);
const landingPublicDomain = publicRootDomain();
const landingEnabled = landingPublicDomain.length > 0;
@ -1411,7 +1411,8 @@ The page you requested does not exist. Use the sidebar to find the right topic.
JAIL_NAME: jailName,
JAIL_IP: CMS_JAIL_IP,
CMS_WEBROOT,
ASTRO_SITE_PATH,
CMS_DOCS_SITE_PATH,
ASTRO_SITE_PATH: CMS_DOCS_SITE_PATH,
PLATFORM_LANDING_SITE_PATH: landingEnabled
? PLATFORM_LANDING_SITE_PATH
: '',

View file

@ -2,7 +2,7 @@ import { SERVICE_NAME } from '../src/platform-identity.js';
import fs from 'fs';
import path from 'path';
import { ASTRO_SITE_PATH, CMS_WEBROOT } from '../src/config.js';
import { CMS_DOCS_SITE_PATH, CMS_WEBROOT } from '../src/config.js';
import { logger } from '../src/logger.js';
import {
resolveTenantSiteDocs,
@ -68,13 +68,13 @@ function resolveCmsJailName(): string {
}
function syncHostSiteSlices(jailName: string): void {
const hostMount = `${ASTRO_SITE_PATH}-host`;
const hostMount = `${CMS_DOCS_SITE_PATH}-host`;
const syncScripts = bastille(
'cmd',
jailName,
'sh',
'-c',
`test -d ${hostMount}/scripts && rsync -a ${hostMount}/scripts/ ${ASTRO_SITE_PATH}/scripts/`,
`test -d ${hostMount}/scripts && rsync -a ${hostMount}/scripts/ ${CMS_DOCS_SITE_PATH}/scripts/`,
);
if (!syncScripts.ok) {
throw new Error(`Failed to sync host scripts into local Astro project: ${syncScripts.output}`);
@ -85,7 +85,7 @@ function syncHostSiteSlices(jailName: string): void {
jailName,
'sh',
'-c',
`test -f ${hostMount}/src/astro/astro.config.mjs && install -d -o ${SERVICE_NAME} -g ${SERVICE_NAME} -m 755 ${ASTRO_SITE_PATH}/src/astro && cp ${hostMount}/src/astro/astro.config.mjs ${ASTRO_SITE_PATH}/src/astro/astro.config.mjs`,
`test -f ${hostMount}/src/astro/astro.config.mjs && install -d -o ${SERVICE_NAME} -g ${SERVICE_NAME} -m 755 ${CMS_DOCS_SITE_PATH}/src/astro && cp ${hostMount}/src/astro/astro.config.mjs ${CMS_DOCS_SITE_PATH}/src/astro/astro.config.mjs`,
);
if (!syncAstroSource.ok) {
throw new Error(`Failed to sync host Astro config source into local project: ${syncAstroSource.output}`);
@ -107,7 +107,7 @@ function buildAstroSite(
'chown',
'-R',
`${SERVICE_NAME}:${SERVICE_NAME}`,
ASTRO_SITE_PATH,
CMS_DOCS_SITE_PATH,
);
if (!ownership.ok) {
throw new Error(`Failed to normalize Astro project ownership in ${jailName}: ${ownership.output}`);
@ -122,7 +122,7 @@ function buildAstroSite(
'-',
SERVICE_NAME,
'-c',
`cd ${ASTRO_SITE_PATH} && env ASTRO_OUT_DIR=${JSON.stringify(buildEnv.ASTRO_OUT_DIR)} ASTRO_SITE_TITLE=${JSON.stringify(buildEnv.ASTRO_SITE_TITLE)} ASTRO_SITE_URL=${JSON.stringify(buildEnv.ASTRO_SITE_URL)} ASTRO_SITE_VARIANT=${JSON.stringify(buildEnv.ASTRO_SITE_VARIANT)} npm run build`,
`cd ${CMS_DOCS_SITE_PATH} && env ASTRO_OUT_DIR=${JSON.stringify(buildEnv.ASTRO_OUT_DIR)} ASTRO_SITE_TITLE=${JSON.stringify(buildEnv.ASTRO_SITE_TITLE)} ASTRO_SITE_URL=${JSON.stringify(buildEnv.ASTRO_SITE_URL)} ASTRO_SITE_VARIANT=${JSON.stringify(buildEnv.ASTRO_SITE_VARIANT)} npm run build`,
);
if (!build.ok) {
throw new Error(`Astro build failed in ${jailName}: ${build.output}`);
@ -141,7 +141,7 @@ function applyTenantSiteDocs(
const docsRoot = hostVisibleJailPath(
jailName,
path.join(ASTRO_SITE_PATH, 'src/content/docs'),
path.join(CMS_DOCS_SITE_PATH, 'src/content/docs'),
);
const generatedDocs = resolveTenantSiteDocs(
tenant,
@ -234,7 +234,7 @@ export async function run(rawArgs: string[]): Promise<void> {
const plan = buildTenantSitePublishPlan(registry, {
tenantId: args.tenantId,
siteId: args.siteId,
astroSitePath: ASTRO_SITE_PATH,
astroSitePath: CMS_DOCS_SITE_PATH,
webroot: CMS_WEBROOT,
});
const buildEnv = buildTenantSiteBuildEnv(plan);

View file

@ -62,7 +62,8 @@ describe('config identity', () => {
expect(config.CODE_SERVICE_INTERNAL_DOMAIN).toBe('git.home.arpa');
expect(config.AGENT_INTERNAL_DOMAIN).toBe('alpha-agent.home.arpa');
expect(config.CMS_WEBROOT).toBe('/usr/local/www/alpha-agent');
expect(config.ASTRO_SITE_PATH).toBe('/home/clawdie/alpha-agent-site');
expect(config.CMS_DOCS_SITE_PATH).toBe('/home/clawdie/alpha-agent-docs');
expect(config.ASTRO_SITE_PATH).toBe('/home/clawdie/alpha-agent-docs');
expect(config.GIT_JAIL_NAME).toBe('git');
});
@ -108,7 +109,8 @@ describe('config identity', () => {
expect(config.AGENT_CONFIG_DIR).toBe('clawdie-cp');
expect(config.AGENT_INTERNAL_DOMAIN).toBe('clawdie.home.arpa');
expect(config.CMS_WEBROOT).toBe('/usr/local/www/clawdie');
expect(config.ASTRO_SITE_PATH).toBe('/home/clawdie/clawdie-site');
expect(config.CMS_DOCS_SITE_PATH).toBe('/home/clawdie/clawdie-docs');
expect(config.ASTRO_SITE_PATH).toBe('/home/clawdie/clawdie-docs');
expect(config.GIT_JAIL_NAME).toBe('git');
vi.doUnmock('./env.js');

View file

@ -35,7 +35,6 @@ import {
platformServiceDomain,
tenantControlplanePrefix,
tenantInternalDomain,
tenantSiteRoot,
} from './platform-layout.js';
import { deriveStripeStatus, getStripeKeyMode } from './stripe-config.js';
import { loadTenantRegistry } from './tenant-registry.js';
@ -100,6 +99,7 @@ const envConfig = readEnvFile([
'WARDEN_CMS_IP',
'CMS_JAIL_IP',
'CMS_WEBROOT',
'CMS_DOCS_SITE_PATH',
'ASTRO_SITE_PATH',
'CMS_LANDING_SITE_PATH',
'CMS_LANDING_WEBROOT',
@ -738,10 +738,13 @@ export const CMS_WEBROOT =
process.env.CMS_WEBROOT ||
envConfig.CMS_WEBROOT ||
`/usr/local/www/${RUNTIME_ID}`;
export const ASTRO_SITE_PATH =
export const CMS_DOCS_SITE_PATH =
process.env.CMS_DOCS_SITE_PATH ||
envConfig.CMS_DOCS_SITE_PATH ||
process.env.ASTRO_SITE_PATH ||
envConfig.ASTRO_SITE_PATH ||
tenantSiteRoot(RUNTIME_ID, PLATFORM_RUNTIME_HOME);
`${PLATFORM_RUNTIME_HOME}/${RUNTIME_ID}-docs`;
export const ASTRO_SITE_PATH = CMS_DOCS_SITE_PATH;
export const PLATFORM_LANDING_SITE_PATH =
process.env.CMS_LANDING_SITE_PATH ||
envConfig.CMS_LANDING_SITE_PATH ||

View file

@ -119,7 +119,7 @@ describe('dashboard-view', () => {
publishedAt: '2026-04-25T11:00:00.000Z',
targetDir: '/usr/local/www/alpha/sites/alpha/blog',
targetIndex: '/usr/local/www/alpha/sites/alpha/blog/index.html',
sourceDistDir: '/home/alpha/alpha-site/dist-sites/alpha/blog',
sourceDistDir: '/home/alpha/alpha-docs/dist-sites/alpha/blog',
result: 'published',
},
null,

Some files were not shown because too many files have changed in this diff Show more