Ingot
Menu

Project introduction

Ingot documentationGetting startedCurrent status

Integration and operations

Recipe-optimization pilot guideData integrationDeploymentFrequently asked questions

System and algorithms

System designAnalysis and optimizationMechanism knowledge design

Validation and production

Scenario validationProduction architecture

Project governance

RoadmapBrand guideOpen-source dependencies

Getting started

Document status: current operating guide. This page provides a synthetic-workflow tour and instructions for starting the complete local stack. Requirements for a real pilot are defined in the Recipe-optimization pilot guide.

Choose a path

Objective Path Completion signal
Evaluate the product workflow Five-minute synthetic tour Complete a nonconforming-run comparison and enter recipe optimization
Run the complete system locally Start the complete stack Web, API, Optimizer, and database are healthy
Prepare a real project Recipe-optimization pilot guide Produce the first qualified observations and next-recipe recommendation
Prepare production Production architectureDeployment The site independently passes security, recovery, capacity, and observation acceptance
Contribute code Contributing ./scripts/verify.sh passes locally

See Current status for capability and validation maturity.

Five-minute synthetic tour

This path requires Node.js 22.22+ but no database, equipment, or Docker.

Install frontend dependencies on the first run:

npm --prefix apps/platform ci

Start the synthetic business API and frontend in two terminals:

# Terminal 1
node scripts/platform-demo.mjs
# Terminal 2
npm --prefix apps/platform run demo

Open http://127.0.0.1:3001:

  • demo / demo: tour the engineering workflow;
  • admin / admin12345: inspect system administration and pilot-acceptance entry points.

The workbench guides the user through opening a nonconforming run, reviewing an approved inspection, choosing a conforming baseline, comparing actual conditions and trajectories, and inspecting candidate causes and the recipe-optimization entry point. The optimization workspace shows how real runs become observations and how next-recipe recommendations remain subject to engineer confirmation. All data are synthetic. The demo validates pages and workflow, not real process benefit.

Press Ctrl+C in both terminals when finished.

Start the complete stack

You need Git, Docker Engine or Docker Desktop, and Docker Compose v2. The Compose path does not require .NET, Node.js, Python, or uv on the host.

git clone https://github.com/liuweichaox/Ingot.git
cd Ingot
cp .env.example .env

Change the database passwords, Edge delivery token, and administrator settings in .env. Replace every change-this- placeholder. Production uses randomly generated, distinct passwords and tokens.

Validate the configuration, then start:

docker compose -f docker-compose.app.yml config --quiet
docker compose -f docker-compose.app.yml up -d --build

The first build downloads .NET, Node, Python, PyTorch, and TimescaleDB images. After the command finishes, inspect every container:

docker compose -f docker-compose.app.yml ps -a

Confirm at least that:

  • platform-migrate exited successfully;
  • postgres, optimizer, platform-api, and platform-web are healthy;
  • platform-worker and connector-host remain healthy;
  • no container is restarting repeatedly.

Then open:

http://localhost:3000       Engineering workbench
http://localhost:8000/health
http://localhost:8000/openapi/v1.json
http://localhost:8100/ready

Sign in with INGOT_ADMIN_USERNAME and INGOT_ADMIN_PASSWORD from .env. If the administrator password is empty, Migrator generates a random password only when the user table is empty:

docker compose -f docker-compose.app.yml logs platform-migrate

Changing .env later does not reset an existing account.

Common startup problems

If the page is unavailable, inspect status and recent logs first:

docker compose -f docker-compose.app.yml ps -a
docker compose -f docker-compose.app.yml logs --tail=200

unexpected EOF, short read, or pull timeouts usually indicate an interrupted image download. Running up -d --build again reuses completed layers. Do not delete data volumes as a first troubleshooting step. See Deployment for more diagnostics.

Next steps