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-migrateexited successfully;postgres,optimizer,platform-api, andplatform-webarehealthy;platform-workerremainshealthy;- 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
- To connect a set of real or representative recipe runs, continue with the Recipe-optimization pilot guide.
- To understand identity, points, and mappings, read Data integration.
- To see which capabilities are actually validated, read Current status.
- To deploy in production, complete the site acceptance defined by Production architecture.