Skip to content

TavroOrg/tavro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

287 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tavro Logo

Tavro Agent BizOps

Accelerating enterprise agent adoption through metadata-driven BizOps.

Agent BizOps

Free Cloud Trial  ·  Live Demo  ·  Slack Community  ·  YouTube

Built with ♥ by Tavro

Run the full Tavro platform on your own machine using Docker. No coding knowledge is required. Follow each step in order.

What this sets up:

  • A Postgres database with all required schemas and extensions
  • Tavro API (FastAPI)
  • Temporal workflow engine
  • MCP server with auth
  • Worker for loading agent cards
  • Tavro web app

Prerequisites

You need these tools installed before you begin.

1. Docker Desktop

Docker Desktop runs all services in isolated containers.

OS Download
Windows https://www.docker.com/products/docker-desktop/
macOS https://www.docker.com/products/docker-desktop/
Linux https://docs.docker.com/engine/install/

After installing, open Docker Desktop and wait until it shows Engine running.

2. Git

Git is used to download this project.

OS Download / Command
Windows https://git-scm.com/download/win
macOS Run xcode-select --install in Terminal
Linux (Debian/Ubuntu) Run sudo apt install git in Terminal

Getting Started

1. Clone the repository

https://github.com/TavroOrg/tavro.git
cd tavro

2. Install Python dependencies

No local Python dependency setup is required for running the stack. Docker handles service dependencies.

3. Create local config files

Windows (PowerShell):

Copy-Item env_sample.txt .env
Copy-Item config.yaml.example config.yaml

macOS / Linux:

cp env_sample.txt .env
cp config.yaml.example config.yaml

4. Fill in required values

Update .env (minimum):

  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • OPENAI_API_KEY
  • VITE_ZITADEL_ISSUER (default local value is usually http://localhost:8080)

Update config.yaml (minimum):

  • secrets.OPENAI_API_KEY

Optional config.yaml fields:

  • mcp.mcp_root_url (set only for remote/public MCP usage)
  • catalog_connector.* (only if you use connector ingestion)
  • oAuth.* values (if your flow needs provider credentials)

Configuration Notes

  • docker-compose.yml is the source of truth for local service wiring.
  • Postgres host port is 5433 on your machine (5432 inside Docker).
  • On first database initialization, the Postgres image executes all SQL files under sql/.

Deployment

Build and start all services

docker compose up --build -d

First run may take several minutes.

Verify services

docker compose ps

You should see these core services up:

  • tavro-postgres
  • risk-temporal
  • tavro-api
  • risk-mcp-server
  • risk-worker
  • tavro-app
  • copilot-sdk
  • zitadel-api
  • zitadel-login
  • zitadel-configure-app
  • proxy

Post-Deployment

Open local URLs

Tool URL Purpose
Tavro app http://localhost:9000 Main UI
API health http://localhost:8000/health API health check
API docs (direct) http://localhost:8000/docs FastAPI docs
API docs (via app) http://localhost:9000/docs FastAPI docs via proxy
Temporal UI http://localhost:8233/temporal Workflow monitoring
MCP endpoint http://localhost:9001/zitadel/mcp MCP endpoint (auth required)
Zitadel http://localhost:8080 Auth system

Quick smoke test

(Invoke-WebRequest -UseBasicParsing http://localhost:8000/health).StatusCode
(Invoke-WebRequest -UseBasicParsing http://localhost:9000/health).StatusCode
(Invoke-WebRequest -UseBasicParsing http://localhost:4001/health).StatusCode

Expected: all 200.

MCP auth behavior check:

  • GET http://localhost:9001/zitadel/mcp returns 401 until authenticated. This is expected.

Load sample data (optional)

docker compose --profile manual run --rm risk-sample-loader

If you need more sample agents or AI Use Case examples, please reach out at info@tavro.ai.

Run connector ingestion (optional)

docker compose --profile manual run --rm risk-connector

Common Commands

View logs:

docker compose logs -f tavro-api

Stop all services:

docker compose down

Reset everything (deletes data volumes):

docker compose down -v
docker compose up --build -d

Troubleshooting

  • If Docker commands fail, ensure Docker Desktop is running.
  • If config.yaml mount fails, ensure config.yaml is a file (not a directory).
  • If MCP returns 401, that is expected before auth.
  • If you changed SQL/bootstrap logic and want DB init scripts to rerun, use a fresh Postgres volume (docker compose down -v).
  • If any container exits, inspect logs with docker compose logs <service-name>.

About

Open Source Agent BizOps Platform to support agent adoption at scale

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors