Local deployment uses Docker Desktop’s built-in Kubernetes cluster. It is designed for trying Optio out or running it for individual use on a single machine. The setup script handles everything from building Docker images to deploying via Helm.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jonwiggins/optio/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
- Docker Desktop with Kubernetes enabled Settings → Kubernetes → Enable Kubernetes
- Node.js 22+ (
node --versionshould printv22.x.xor higher) - pnpm 10+ (
npm install -g pnpm) - Helm (
brew install helm)
Setup
Run the setup script
- Installs pnpm dependencies
- Builds all agent images in parallel (
optio-base,optio-node,optio-python,optio-go,optio-rust,optio-full) - Builds the API and web Docker images
- Installs
metrics-serverinto thekube-systemnamespace (required for resource usage display) - Deploys the full stack to the
optionamespace via Helm - Waits for the API and web deployments to become available
Open the setup wizard
When setup completes, both services are available:
Open the web UI and the setup wizard will walk you through:
| Service | URL |
|---|---|
| Web UI | http://localhost:30310 |
| API | http://localhost:30400 |
- Configuring GitHub access (
GITHUB_TOKEN) - Setting up agent credentials (Anthropic API key, Claude OAuth token, or OpenAI API key)
- Adding your first repository
What the Helm deployment configures
The setup script deploys Helm with these local dev settings:auth.disabled=true) for convenience in local development. The web UI will log you in automatically as a synthetic “Local Dev” user.
Updating
To pull the latest code and redeploy:- Runs
git pull --rebase - Reinstalls pnpm dependencies
- Rebuilds
optio-apiandoptio-webimages (and any agent images that are missing) - Runs
helm upgradewith--reuse-values - Triggers a rolling restart of the
optio-apiandoptio-webdeployments
Manual rebuild
If you change source files and want to redeploy without a full update:Teardown
To remove Optio from your cluster:optio namespace including deployments, services, PersistentVolumeClaims, and the namespace itself. Your Docker images are not removed.
Troubleshooting
Setup script fails at cluster connectivity check
Setup script fails at cluster connectivity check
The script exits with
❌ No Kubernetes cluster found. if kubectl cannot reach a cluster.- Open Docker Desktop → Settings → Kubernetes and confirm “Enable Kubernetes” is checked
- Wait for the status indicator to show “Kubernetes is running”
- Verify with:
kubectl cluster-info
Agent pods stay in Pending or ImagePullBackOff
Agent pods stay in Pending or ImagePullBackOff
This usually means the agent image is not in the local containerd store.
- Verify images exist:
docker images | grep optio - If any are missing, re-run
./scripts/setup-local.sh(it will upgrade the existing Helm release) - Check the pod events:
kubectl describe pod <pod-name> -n optio
Web UI or API are not accessible
Web UI or API are not accessible
- Check that both deployments are running:
kubectl get pods -n optio - Confirm the NodePort services are in place:
kubectl get svc -n optio - Expected:
optio-apion NodePort30400,optio-webon NodePort30310
Tasks stuck in 'provisioning' state
Tasks stuck in 'provisioning' state
- Check agent pod status:
kubectl get pods -n optio - Look for
ImagePullBackOff— this meansimagePullPolicyis notNeveror the image is missing locally - Check PVC availability:
kubectl get pvc -n optio
