AIPUT corresponding source — build and run notes (architecture v2)
====================================================================

Application archive: aiput-app-rc44-source-<date>.tar.gz
Homepage archive:    aiput-home-source-<date>.tar.gz

Toolchain: Docker with buildx. The builds pin their own toolchains (Go,
Bun, Node.js 24) in the Dockerfiles; use the supplied lock files and do not
upgrade dependencies. pnpm 11.19.0 for the homepage and docs.

1. New API (source)
     docker buildx build --platform linux/amd64 \
       -f deploy/newapi.Dockerfile --build-context aiput=deploy/native \
       -t aiput-v2/native source
   Follows the official New API Dockerfile: builds the web frontend, then the
   Go binary with the frontend embedded. Add --target test to run the Go tests.

2. Identity service (identity)
     docker buildx build --platform linux/amd64 \
       -f deploy/identity/identity.Dockerfile -t aiput-v2/identity identity
   No third-party npm dependencies. Tests: `node --test test/*.test.mjs`
   under Node.js 24.

3. Run
   deploy/prod/compose.v2.yaml starts the three containers (New API, identity
   service, nginx entry). Every server value comes from an environment file;
   the production runtime configuration, secrets and data are mounted at run
   time and are not part of this source. deploy/local/ is a self-contained
   test environment with synthetic data (see deploy/local/dc.sh).

4. Homepage (aiput-home-source)
     pnpm install --frozen-lockfile
     VITE_AIPUT_MAIN_URL=https://aiput.top \
     VITE_AIPUT_HOME_URL=https://home.aiput.top \
     VITE_AIPUT_API_URL=https://api.aiput.top \
     VITE_AIPUT_DOCS_URL=https://docs.aiput.top \
     node scripts/build-home.mjs
   The page is rendered at build time; its small in-page script and
   stylesheet are inlined into dist/index.html (no framework is sent to
   visitors). `pnpm test` runs the unit tests; scripts/visual-compare.mjs
   compares two builds pixel by pixel in a local Chrome.

5. Documentation site (docs, served at docs.aiput.top)
     pnpm install --frozen-lockfile
     AIPUT_DOCS_MODE=production \
     AIPUT_MAIN_URL=https://aiput.top \
     AIPUT_HOME_URL=https://home.aiput.top \
     AIPUT_DOCS_URL=https://docs.aiput.top \
     AIPUT_API_URL=https://api.aiput.top \
     NEXT_TELEMETRY_DISABLED=1 pnpm build
   The static site is written to out/; `pnpm test` runs the content checks.

The top-up and new-key gates default to closed (AIPUT_TOPUP_MODE,
AIPUT_KEY_MODE); the local environment uses a synthetic identity supplier.
