Skip to main content

Quick Start

Get Proofarc running in 5 minutes.

Prerequisites

  • Docker and Docker Compose installed
  • 4GB RAM available

Start the Platform

# Pull and start all services
docker-compose -f docker-compose.hub.yml up -d

# Wait ~60 seconds for services to initialize

What starts:

ServiceURLCredentials
Web UIhttp://localhost:3000admin / your-password
APIhttp://localhost:8080Same
MinIO (storage)http://localhost:9001minioadmin / minioadmin

Your First API Test

1. Log in and get a token

TOKEN=$(curl -s http://localhost:8080/api/auth/login -X POST \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"your-password"}' | \
python3 -c "import sys,json;print(json.load(sys.stdin)['token'])")

2. Create a project

curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8080/api/projects \
-d '{"name":"My First Project","description":"Getting started"}'

3. Add an environment and target

# Add a REST API target to the development environment
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8080/api/environments/1/targets \
-d '{
"name":"httpbin",
"targetType":"REST_SERVICE",
"baseUrl":"https://httpbin.org"
}'

# Or add a target with Swagger spec for contract coverage scoring
curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8080/api/environments/1/targets \
-d '{
"name":"User Service API",
"targetType":"REST_SERVICE",
"baseUrl":"http://user-service:8089",
"swaggerPath":"/v3/api-docs",
"healthcheckPath":"/actuator/health",
"appTag":"user-service"
}'

4. Create an API scenario

curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8080/api/scenarios \
-d '{
"name":"httpbin Smoke Test",
"projectId":1,
"environmentId":1,
"baseUrl":"https://httpbin.org",
"steps":[
{
"stepOrder":1,
"name":"GET request",
"httpMethod":"GET",
"endpointPath":"/get",
"expectedStatusCodes":[200]
},
{
"stepOrder":2,
"name":"POST request",
"httpMethod":"POST",
"endpointPath":"/post",
"requestBody":"{\"hello\":\"world\"}",
"expectedStatusCodes":[200],
"responseAssertions":[
{"type":"JSONPATH","expression":"$.json.hello","operator":"EQUALS","expectedValue":"world"}
]
}
]
}'

5. Execute it

curl -s -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
http://localhost:8080/api/scenarios/1/execute \
-d '{"tags":["first-run"]}'

6. Check results

Open http://localhost:3000 and navigate to API Scenarios → your scenario → History.

Or via API:

curl -s -H "Authorization: Bearer $TOKEN" \
http://localhost:8080/api/scenarios/1/executions

What's Next