DRC
how-to operator public

Installation and runtime setup

This page covers the developer-facing ways to build and run DRC. Select the local CLI for investigation, or connect an application to a deployed DRC API through an SDK or HTTP client.

Release installer

Download the installer as a file, inspect it if required by your environment, then execute it:


curl -fsSLo install.sh https://github.com/spinxog/DRC/releases/latest/download/install.sh
sh install.sh

For a pinned release:


curl -fsSLo install.sh https://github.com/spinxog/DRC/releases/download/v1.0.0/install.sh
DRC_VERSION=v1.0.0 sh install.sh

DRC_VERSION accepts either 1.0.0 or v1.0.0. The installer verifies the release checksum and can verify the release signature when Cosign is installed. Set DRC_GITHUB_TOKEN only when a private release requires authenticated downloads; keep it in the environment or a secret manager.

Build the CLI from source

The CLI is a Rust binary in the workspace:


cargo build --manifest-path drc-rust/Cargo.toml --locked --release -p drc-cli
./drc-rust/target/release/drc --version

The workspace uses Rust edition 2021. Keep the generated binary and its local storage directory in the same development environment when using local capture.

Local CLI setup

Initialize a project:


./drc-rust/target/release/drc init \
  --codebase . \
  --language auto \
  --non-interactive \
  --telemetry off \
  --auto-update off

Capture an application already listening on port 3000:


./drc-rust/target/release/drc run \
  --port 8080 \
  --target-port 3000

Send requests through port 8080, then inspect and stop the capture:


./drc-rust/target/release/drc search --format json
./drc-rust/target/release/drc stop --flush

See CLI reference for capture modes and analysis commands.

Connect an application

Use an SDK when application-level event metadata is important or when a network proxy cannot observe the relevant boundary. The SDKs send execution metadata and events to the DRC API. See SDK integration.

For direct integrations, use the HTTP API:


export DRC_API_URL="https://api.example.com"
export DRC_API_KEY="<key-from-your-secret-manager>"

curl -fsS "$DRC_API_URL/health/ready"

Never commit the key or place it in a URL. See security for capture and credential-handling guidance.

Application configuration

Project defaults belong in .drc/drc.toml. Runtime endpoint and credential values belong in environment variables or a secret manager. Common client values are:

See configuration for the complete client and server configuration reference.

Container and service environments

A deployed DRC API can run behind the service manager, container platform, or orchestration system used by your organization. Configure its database, storage adapter, TLS termination, identity provider, and environment variables through that platform's secret and configuration facilities.

The API exposes /health and /health/ready for service checks. Use the same origin and credentials that application clients will use when validating a deployment.

Local test services

The repository includes disposable local service configurations for development and integration testing. They are not required for the local CLI path. Start only the services required by the test you are running and remove their volumes after the test when the data is disposable.

Choosing a mode

Need Recommended path
Explore DRC or debug a local service Build the CLI and use drc run.
Capture application-level events Use the Node.js, Python, or Go SDK.
Integrate a CI job Use the CLI ci commands or the HTTP API.
Build a custom integration Use the versioned HTTP API and OpenAPI document.
Connect an agent Use the configured MCP server with tenant-scoped credentials.

Stop and clean up local capture


drc stop --flush

Local execution data is application data. Delete or retain it according to your project's privacy and retention policy.