Installation
This guide covers installing the CVT server and client SDKs.
Server Installation
Docker (Recommended)
The easiest way to run CVT is with Docker:
# Run the published Docker image directly
docker run -d -p 9550:9550 -p 9551:9551 ghcr.io/sahina/cvt:latest
From Source
Build and run the server locally:
# Clone the repository
git clone https://github.com/sahina/cvt.git
cd cvt
# Build the server
make build
# Run locally
make run-server
# Using Docker Compose (if you cloned the repo. includes observability stack)
make up
Go Install
go install github.com/sahina/cvt/cmd/cvt@latest
SDK Installation
Install the SDK for your language:
- Node.js
- Python
- Go
- Java
npm install @sahina/cvt-sdk
pip install cvt-sdk
# Or with uv
uv add cvt-sdk
go get github.com/sahina/cvt/sdks/go
Maven (pom.xml):
<dependency>
<groupId>io.github.sahina</groupId>
<artifactId>cvt-sdk</artifactId>
<version>0.1.3</version> <!-- Replace with latest from Maven Central -->
</dependency>
Gradle (build.gradle):
dependencies {
implementation("io.github.sahina:cvt-sdk:0.1.3") // Replace with latest from Maven Central
}
Find the latest version on Maven Central.
Verify Installation
Check Server
# Check metrics endpoint (no extra tools required)
curl http://localhost:9551/metrics
Using grpc-health-probe (Optional)
The make health command and direct health checks require grpc-health-probe to be installed:
# Install grpc-health-probe
go install github.com/grpc-ecosystem/grpc-health-probe@latest
# Then you can run health checks
make health
# Or directly
grpc-health-probe -addr=localhost:9550
Check SDK
- Node.js
- Python
- Go
- Java
import { ContractValidator } from "@sahina/cvt-sdk";
const validator = new ContractValidator("localhost:9550");
console.log("Connected!");
from cvt_sdk import ContractValidator
validator = ContractValidator('localhost:9550')
print('Connected!')
import "github.com/sahina/cvt/sdks/go/cvt"
client, err := cvt.NewValidator("localhost:9550")
if err != nil {
log.Fatalf("Failed to connect: %v", err)
}
fmt.Println("Connected!")
import io.github.sahina.sdk.ContractValidator;
ContractValidator validator = new ContractValidator("localhost:9550");
System.out.println("Connected!");
Port Configuration
| Port | Service |
|---|---|
| 9550 | gRPC server |
| 9551 | Prometheus metrics |
| 9091 | Prometheus UI (with observability stack) |
| 3000 | Grafana UI (with observability stack) |
Next Steps
- Quick Start - Your first contract test
- Consumer Testing Guide - Test API integrations
- Producer Testing Guide - Validate your APIs
- Configuration Reference - Server settings