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:
| Service | URL | Credentials |
|---|---|---|
| Web UI | http://localhost:3000 | admin / your-password |
| API | http://localhost:8080 | Same |
| MinIO (storage) | http://localhost:9001 | minioadmin / 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",
"appTag":"httpbin"
}'
Always set
appTagappTag is the resolution key: scenarios bind to it, and the host resolves at run time from
the matching target in whichever environment you run against. A target without an appTag (or
linked application) can't be resolved by portable scenarios.
# 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
Note there's no baseUrl — the scenario binds to the target via appTag, and the host
resolves at run time from the environment you execute against. The same scenario runs in dev,
staging, and prod, each hitting that environment's target URL. (A concrete baseUrl is still
accepted as an explicit override.)
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,
"appTag":"httpbin",
"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
- Convert to Performance Test — one click, same endpoints
- Run a Security Scan — scan your target for vulnerabilities
- Score Your Release — get a 0-100 readiness score
- AI Playbooks — let AI operate the platform for you