This guide gets a local ARCXA environment running with the smallest amount of guesswork.
Use this guide when you want to:
- build the repository successfully in the current workspace
- start the default local runtime without guessing which script to use
- understand the current port and auth assumptions
- verify quickly that the coordinator and UI are actually reachable
- What You Are Running
- Private Workspace vs Public Mirror
- Prerequisites
- Recommended Build Path
- Recommended Run Paths
- First Verification Steps
- Running the Web UI
- Running Tests
- Local Feature Flags That Matter
- CLI Entry Points
- Current Local Reality Checks
A normal local ARCXA session involves:
- the
arcxa-coordinatorcontrol plane - two local
arcxa-shardprocesses for RDF and SPARQL storage - the optional
arcxa-model-servicefor semantic matching - Kafka, ZooKeeper, and Schema Registry through Docker Compose
The default orchestration script for that topology is ./run-local.sh.
There are two repository shapes you may encounter:
| Shape | Frontend location | Docs location |
|---|---|---|
| Private development workspace | sibling repo at ../graphica-frontend |
docs/public/ |
| Public mirror | frontend/ inside the repo |
docs/ |
This guide is written so both shapes are understandable. When a step differs, it is called out explicitly.
You will want:
- Rust
1.91.1or newer - the stable Cargo toolchain
- Docker and Docker Compose
curl- Node.js and
npmif you want the web UI - ODBC driver-manager and vendor drivers only if you intend to build ODBC-backed connectors locally
The repository includes rust-toolchain.toml, and the top-level scripts already clear the Conda and OpenSSL environment variables that are known to interfere with local builds here.
Use the repo scripts first. They encode the build assumptions that match this workspace.
./build.shWhat this builds:
arcxa-coordinatorarcxa-model-service- workspace libraries such as
arcxa-core
What it does not build inside the workspace:
arcxa-shard
That shard binary is built separately because it is intentionally excluded from the workspace.
cd arcxa-shard
cargo +stable build
cd .../run-local.sh will also build the shard for you.
| Command | Use when |
|---|---|
./run-local.sh |
You want the normal development topology with one coordinator, two shards, Docker-backed Kafka infrastructure, and the model service. |
./run-local-ha.sh |
You want the three-coordinator Raft-oriented HA demo topology. Build with ENABLE_HA=true ./build.sh first. |
./run-single-node.sh |
You want a tighter local shape without the full sharded topology. |
start-coordinator-with-test-api.sh |
You need the coordinator with test-only API helpers enabled for targeted development work. |
./run-local.shThe script currently does all of the following:
- clears conflicting local compiler and linker environment variables
- builds workspace binaries and the shard
- starts Kafka, ZooKeeper, and Schema Registry when needed
- starts the coordinator, two shards, and the model service
- downloads ONNX Runtime on first use if it is missing locally
The default local runner exposes the coordinator REST API on http://localhost:8082.
Verify the core surface:
curl http://localhost:8082/health
curl http://localhost:8082/openapi.yamlUseful follow-up endpoints:
http://localhost:8082/health/livehttp://localhost:8082/health/readyhttp://localhost:8082/metricshttp://localhost:8082/api/v1/datasources/swagger-uihttp://localhost:8082/api/v1/workflows/swagger-uihttp://localhost:8082/api/v1/sos/swagger-ui
In the public mirror:
cd frontend
npm install
npm run devIn the private development workspace:
cd ../graphica-frontend
npm install
npm run devThe frontend talks to the coordinator API, so make sure the backend topology is already up.
Use ./test.sh rather than raw cargo test first. It encodes the same environment cleanup used by the build flow.
Examples:
./test.sh
./test.sh coordinator
./test.sh core
./test.sh coordinator -- --nocaptureThe main build and test scripts recognize these environment variables:
ENABLE_AUDIT=true|falseENABLE_HA=true|falseENABLE_ODBC=true|falseENABLE_DB2=true|falseas a backward-compatible alias forENABLE_ODBC
Practical guidance:
- keep
ENABLE_ODBC=falseunless you actually need Oracle, DB2, or SAP HANA locally - enable
ENABLE_HA=trueonly for the HA topology - leave audit enabled unless you are intentionally testing without it
The repository currently ships two CLI binaries under arcxa-cli:
migratefor RocksDB migration and storage maintenance workadminfor operator-facing systems-of-systems API workflows
Example help commands:
cargo +stable run -p arcxa-cli --bin migrate -- --help
cargo +stable run -p arcxa-cli --bin admin --no-default-features -- --helpImportant note:
- the
adminCLI assumes an authenticated coordinator API and defaults tohttp://localhost:8080/api/v1 ./run-local.shcurrently starts the local coordinator onhttp://localhost:8082withENABLE_AUTH=false- for the default local runner, direct
curland Swagger validation are usually simpler unless you are targeting another authenticated environment
A few current realities are worth keeping in mind:
- local docs examples use
8082for the coordinator because that is what./run-local.shcurrently does - some older tools and code still default to
8080, so pass the base URL explicitly when in doubt - local auth is disabled by default, which is convenient for development but not representative of a secured deployment
- the repository still contains historical
graphicanaming in environment variables and helper tooling