This is a self-hosting guide. The hosted product at https://www.orcapods.ai needs none of this — sign in and go.
Compose Stack Overview
The rootdocker-compose.yml is profile-driven:
make dev is an alias for make stack.
Full Backend Stack
The dashboard is not containerized by the stack. Run it separately:
Building Images
MCP Bridge
The standalonemcp-bridge service is the deployment boundary for Composio credentials and traffic. It listens on port 8091 by default, serves GET /healthz, exposes a bearer-gated GET /metrics, and accepts bridge operations only on its signed internal API.
Configure it with:
The service fails startup when the current signing key is missing, malformed, or too short. Use
docker/railway-mcp-bridge.toml as the Railway deployment reference.
Shared Storage
All compose profiles inherit the same S3-compatible storage environment:http://localhost:8333. The Makefile has storage helpers:
Stack Configuration
Thestack profile uses two runners and two conductors:
Specialized Poly Topology
Use thepoly profile when you want capability-aware routing across runner shapes:
Environment File
Create.env at the repo root for provider keys:
.env automatically.
Health Checks
/healthz returns text ok. The SeaweedFS S3 root may return 403 without credentials; that still means the service is reachable.
Logs
nginx Configuration
The repository nginx config proxies all traffic to the conductor pool and disables stream buffering:/api/runs/{id}/stream, /api/workflows/runs/{id}/stream, and runner NDJSON streams usable through the proxy.
Scaling Notes
To add a runner:- Give it a stable, unique
RUNNER_BASE_URL. - Set accurate
RUNNER_CAPABILITIES. - Add that same URL to every conductor’s
RUNNER_URLS.