Getting Started

Synth is a self-hosted deployment platform with embedded intelligence. It runs as two components: the Synth server (the central orchestrator) and Envoy (lightweight agents on target machines).

Prerequisites

  • Node.js 22+
  • npm 10+

Quick Start

git clone https://github.com/synth-deploy/synth.git
cd synth-deploy
npm install
npm run build
npm start

The Synth server starts on http://localhost:9410 with demo data seeded automatically (3 partitions, 3 environments, 3 operations, and sample deployments).

For production installation, Docker deployment, environment variable reference, and multi-Envoy setup, see the Installation & Configuration guide.

Key Concepts

Partitions

Isolated deployment contexts. Each partition has its own variables, deployment history, and configuration. Cross-partition data access is never allowed.

Artifacts

The things you deploy — container images, Helm charts, npm packages, NuGet packages, or archives. Synth analyzes artifacts automatically to understand what they contain and how to deploy them.

Environments

Named deployment targets (production, staging, development) with their own variable sets. When variables conflict between partition and environment, the conflict policy determines resolution.

Deployments

Immutable snapshots of a deployment configuration. A deployment captures the exact steps, variables, and config at execution time. Deployments can be re-executed for reproducible results.

Debrief

Every agent decision is logged in plain language. The decision log records what happened, why, and the context. Failed deployments generate automatic postmortem reports.

Envoy

Lightweight agents deployed on target machines. Envoys execute deployment steps, run health checks, and report results back to the Synth server. They can run LLM-powered diagnostics when deployments fail.

API

Synth exposes a RESTful API at /api and an MCP server at /mcp. The UI communicates through the REST API. See the API Reference for the full endpoint listing.

# List partitions
curl http://localhost:9410/api/partitions

# List artifacts
curl http://localhost:9410/api/artifacts

# List deployments
curl http://localhost:9410/api/deployments