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 Evaluation BoundaryProduction architecture

Project governance

RoadmapBrand guideOpen-source dependenciesGlossary

Getting started

Document status: current operating guide. This page covers local deployment, startup, and sign-in. See Current status for capability boundaries.

Choose a path

Objective Path Completion signal
Deploy Ingot Start the complete stack Web, API, Optimizer, and database are healthy; no external-system account or connection is required
Validate the current production-evidence workflow Recipe-optimization pilot guide Qualified production-run evidence and the first next-recipe recommendation
Prepare production Production architecture → Deployment 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.

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 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 remains 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.

This deployment starts Ingot's own Web, API, database, optimizer, and background services without external business-system accounts or connections. Device and enterprise-system connectors are configured and enabled as needed. After sign-in, users manage process variables and recipe versions through process configuration. Each process run is an experiment; run and quality records jointly retain experiment facts. See Current status for capability boundaries and recommendation-data requirements.

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