--- title: "Backend Setup Guide" description: "Complete guide for setting up and running AgentOps backend services" --- # Backend Setup Guide This guide covers how to set up and run the AgentOps backend services from the `/app` directory. The backend includes the API server, dashboard, database services, and observability infrastructure. ## Architecture Overview The AgentOps backend consists of several interconnected services: - **API Server** (`api/`) - FastAPI backend with authentication, billing, and data processing - **Dashboard** (`dashboard/`) - Next.js frontend for visualization and management - **Supabase** - Authentication and primary PostgreSQL database - **ClickHouse** - Analytics database for traces and metrics - **OpenTelemetry Collector** - Observability and trace collection - **Redis** (optional) - Caching and session storage ## Prerequisites Before setting up the backend, ensure you have the following installed: ### Required Software - **Node.js** 18+ ([Download](https://nodejs.org/)) - **Python** 3.12+ ([Download](https://www.python.org/downloads/)) - **Docker & Docker Compose** ([Download](https://www.docker.com/get-started)) - **Bun** (recommended) or npm ([Install Bun](https://bun.sh/)) - **uv** (recommended for Python) ([Install uv](https://github.com/astral-sh/uv)) - **Just** (optional, for convenience commands) ([Install Just](https://github.com/casey/just)) ### External Services You'll need accounts and setup for these external services: - **Supabase** - Database and authentication ([supabase.com](https://supabase.com)) - **ClickHouse Cloud** - Analytics database ([clickhouse.com/cloud](https://clickhouse.com/cloud)) - **Stripe** (optional) - Payment processing ([stripe.com](https://stripe.com)) ## Quick Start ### 1. Clone and Navigate ```bash git clone https://github.com/AgentOps-AI/AgentOps.Next.git cd AgentOps.Next/app ``` ### 2. Environment Setup Copy and configure environment files: ```bash # Root environment (for Docker Compose) cp .env.example .env # API environment cp api/.env.example api/.env # Dashboard environment cp dashboard/.env.example dashboard/.env.local ``` ### 3. Install Dependencies ```bash # Using Just (recommended) just install # Or manually: bun install # Root dependencies uv pip install -r requirements-dev.txt # Python dev tools cd api && uv pip install -e . && cd .. # API dependencies cd dashboard && bun install && cd .. # Dashboard dependencies ``` ### 4. Configure External Services Update your `.env` files with your service credentials. See [External Services Configuration](#external-services-configuration) below. ### 5. Start Services ```bash # Option 1: Using Docker Compose (recommended) docker-compose up -d # Option 2: Using Just commands just api-run # Start API server just fe-run # Start dashboard (in another terminal) # Option 3: Native development cd api && uv run python run.py # API server cd dashboard && bun dev # Dashboard (in another terminal) ``` ### 6. Verify Setup - **Dashboard**: http://localhost:3000 - **API Documentation**: http://localhost:8000/redoc - **API Health Check**: http://localhost:8000/health ## External Services Configuration ### Supabase Setup 1. Create a new project at [supabase.com](https://supabase.com) 2. Go to Settings → API to get your keys 3. Run the database migrations: ```bash cd supabase npx supabase db push ``` 4. Update your `.env` files with: ```env NEXT_PUBLIC_SUPABASE_URL=https://your-project-id.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key SUPABASE_SERVICE_ROLE_KEY=your-service-role-key SUPABASE_PROJECT_ID=your-project-id ``` ### ClickHouse Setup 1. Sign up for [ClickHouse Cloud](https://clickhouse.com/cloud) or self-host 2. Create a database and get connection details 3. Run the ClickHouse migrations: ```bash # Apply schema from clickhouse/schema_dump.sql ``` 4. Update your `.env` files with: ```env CLICKHOUSE_HOST=your-host.clickhouse.cloud CLICKHOUSE_PORT=8123 CLICKHOUSE_USER=default CLICKHOUSE_PASSWORD=your-password CLICKHOUSE_DATABASE=your-database CLICKHOUSE_SECURE=true ``` ### Stripe Setup (Optional) For billing functionality: 1. Create a [Stripe](https://stripe.com) account 2. Get your API keys from the dashboard 3. Update your `.env` files with: ```env NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_... STRIPE_SECRET_KEY=sk_test_... STRIPE_WEBHOOK_SECRET=whsec_... ``` ### Additional Services (Optional) - **Sentry**: Error monitoring ```env SENTRY_DSN=https://your-dsn@sentry.io/project-id SENTRY_ENVIRONMENT=development ``` - **PostHog**: Analytics ```env NEXT_PUBLIC_POSTHOG_KEY=phc_your-key NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com ``` ## Development Workflow ### Using Just Commands (Recommended) The `justfile` provides convenient commands for development: ```bash # Setup and installation just setup # Complete development setup just install # Install all dependencies # API Development just api-native # Run API natively (fastest) just api-build # Build API Docker image just api-run # Run API in Docker just api-test # Run API tests # Frontend Development just fe-run # Run dashboard development server just fe-build # Build dashboard for production just fe-test # Run frontend tests # Code Quality just lint # Run all linting checks just format # Format all code just test # Run all tests # Docker Management just up # Start all services just down # Stop all services just logs # View service logs just clean # Clean up Docker resources ``` ### Manual Development If you prefer running services manually: ```bash # Start API server cd api && uv run python run.py # Start dashboard (in another terminal) cd dashboard && bun dev # Start landing page (in another terminal) cd landing && bun dev ``` ## Service Configuration ### API Server Configuration Key environment variables for the API server (`api/.env`): ```env # Database connections SUPABASE_URL=https://your-project.supabase.co SUPABASE_KEY=your-service-role-key CLICKHOUSE_HOST=your-clickhouse-host # Application settings APP_URL=http://localhost:3000 LOGGING_LEVEL=INFO JWT_SECRET_KEY=your-jwt-secret # External integrations SENTRY_DSN=your-sentry-dsn ``` ### Dashboard Configuration Key environment variables for the dashboard (`dashboard/.env.local`): ```env # Supabase NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key # Application URLs NEXT_PUBLIC_APP_URL=http://localhost:8000 NEXT_PUBLIC_SITE_URL=http://localhost:3000 # Features NEXT_PUBLIC_ENVIRONMENT_TYPE=development NEXT_PUBLIC_PLAYGROUND=true ``` ## Troubleshooting ### Common Issues **Port conflicts:** ```bash # Check what's running on ports 3000 and 8000 lsof -i :3000 lsof -i :8000 ``` **Database connection issues:** - Verify your Supabase and ClickHouse credentials - Check network connectivity to external services - Ensure database migrations have been applied **Docker issues:** ```bash # Reset Docker environment just clean docker system prune -f just up ``` **Dependency issues:** ```bash # Clean and reinstall rm -rf node_modules api/.venv dashboard/node_modules just install ``` ### Logs and Debugging ```bash # View service logs just logs # View specific service logs docker-compose logs api docker-compose logs dashboard # Run with debug logging LOGGING_LEVEL=DEBUG just api-run ``` ## Next Steps Once your backend is running: 1. **Create an account** at http://localhost:3000 2. **Generate an API key** in the dashboard 3. **Install the AgentOps SDK** and start tracking your AI agents 4. **Explore the dashboard** to view traces and analytics For production deployment, see our [Deployment Guide](/v2/self-hosting/deployment).