Run the central stack with mock GPU agents, and the Vue UI on Vite.
./utils/dev-up.sh -d
cd gsad-frontend && npm install && npm run devOpen http://localhost:5173. The Vite dev server proxies /api to VITE_PROXY_TARGET (default http://localhost:8080).
Seeded admin: admin@gsad.local / Admin@123456.
The top-right Language control switches 中文 / English. Capture English manuals with GSAD_DOCS_LOCALE=en and Chinese manuals with GSAD_DOCS_LOCALE=zh.
./utils/dev-up.sh starts Docker Compose in dev mode (--profile mock):
- Backend (Spring
devprofile), PostgreSQL, Redis - Flyway
devseed: admin above; mock serversgpu-mock-001…gpu-mock-100with shared agent PSKdev-mock-agent-psk-0001 account-provision-mock— grants/revokes Linux-style access against the backendgpu-server-report-mock— reports fake GPU metrics so the resource board has data
After migration changes:
./utils/gsad-compose.sh --dev down -v
./utils/dev-up.sh -dDev compose publishes Postgres 5432, Redis 6379, and the backend 8080 on the host. If those ports are already in use, override them:
GSAD_DEV_POSTGRES_PORT=15432 \
GSAD_DEV_REDIS_PORT=16380 \
GSAD_DEV_BACKEND_PORT=18080 \
./utils/dev-up.sh -d
cd gsad-frontend && VITE_PROXY_TARGET=http://localhost:18080 npm run devcd docs && npm install && npm run devVitePress serves the manuals (screenshots under docs/assets/en/ and docs/assets/zh/) at the printed local URL. The site root is English; /zh/ is Chinese.
The docs site pins Mermaid 12 in docs/package.json. Site-wide defaults live in .vitepress/config.ts: ELK layout, with a small arc (line hop) where edges cross (elk.lineHops: 'arc'). A single diagram can override those defaults with YAML frontmatter inside its fence; only the keys you set apply to that diagram.
```mermaid
---
config:
layout: elk
elk:
lineHops: arc
---
flowchart TB
A --> C
B --> D
```GitHub renders README.md with its own Mermaid version. That preview does not use this pin.
If diagrams are blank in npm run dev after upgrading Mermaid or elkjs, stop the dev server, run rm -rf .vitepress/cache, and start dev again. ELK layout needs the Vite alias in .vitepress/config.ts (elk-bundled-shim.mjs).
Manuals use 1440×900 (2×) PNG shots of the console. With the UI on :5173 and Playwright available:
# once: npm install playwright && npx playwright install chromium
PLAYWRIGHT_ROOT=/path/to/playwright-install \
GSAD_DOCS_LOCALE=en \
node docs/scripts/capture-screenshots.mjs
PLAYWRIGHT_ROOT=/path/to/playwright-install \
GSAD_DOCS_LOCALE=zh \
node docs/scripts/capture-screenshots.mjsThe script writes kebab-case files such as board.png, application-detail.png, and admin-users-import.png into docs/assets/<locale>/. Do not screenshot OS file pickers; the in-app import modal is enough. Keep agent PSKs masked.
cd gsad-backend && ./mvnw test
cd gsad-frontend && npm run lint && npm run typecheck && npm test