Real-time Google Meet, Microsoft Teams, and Zoom transcription API. Get up and running in minutes. Note: Zoom joins require additional configuration (Zoom Meeting SDK + OAuth/OBF). See Zoom Integration Setup Guide.Documentation Index
Fetch the complete documentation index at: https://docs.vexa.ai/llms.txt
Use this file to discover all available pages before exploring further.
Before You Deploy
Before self-hosting, consider the hosted service at vexa.ai — get an API key at vexa.ai/account and start sending bots immediately. No infrastructure needed.Self-Hosting Options
| Option | Best for | Guide |
|---|---|---|
| Lite (recommended) | Easiest self-host — single container | Vexa Lite Deployment Guide |
| Docker Compose | Development and testing | This page (below) |
| Helm | Production Kubernetes | Helm charts |
Transcription service
All self-hosted deployments need a transcription service:- Ready to go: Use Vexa transcription — sign up at vexa.ai, get a transcription API key. No GPU needed.
- Self-host: Run
services/transcription-service/on your own GPU for full data sovereignty.
Docker Compose Setup (Development)
1. If you have an established development machine
Docker Compose setup for development - All services wrapped indeploy/compose/docker-compose.yml with Makefile convenience commands.
make all does:
- Copies env-example to .env if missing
- Builds all Docker images (takes some time on first run)
- Spins up all containers (API, bots, transcription, database)
- Runs database migrations
- Starts a simple test to verify everything works
make all again — it rebuilds what’s needed.
Note: This is the development setup. For production deployments, see Vexa Lite Deployment Guide.
2. Transcription modes
| Mode | What you need | How |
|---|---|---|
| Vexa transcription (ready to go) | Sign up at vexa.ai for API key | Set TRANSCRIPTION_SERVICE_URL in .env |
| Self-host GPU | NVIDIA GPU + drivers | Set LOCAL_TRANSCRIPTION=true in .env |
3. If you’re on a fresh GPU VM in the cloud
Automated setup - Tested on Vultrvcg-a16-6c-64g-16vram
4. Manual setup (if the above don’t work)
Ubuntu/Debian:5. Vexa Lite (recommended for self-hosting)
Easiest way to self-host Vexa. Single Docker container, needs external Postgres + transcription service. See Vexa Lite Deployment Guide for the full guide. Quick start:Production: Use immutable tags (e.g.,API available at:0.10.0-260405-0108) instead of:latestfor reproducible deployments.
http://localhost:8056
Testing
Once deployed, services are available at:- API docs: http://localhost:8056/docs
- Admin API: http://localhost:8057/docs (full stack only)
- Bot joins your Google Meet
- Admit the bot when prompted
- Start speaking to see real-time transcripts
Tested Environments
- CPU: Mac Pro (Docker Desktop)
- GPU: Fresh Vultr A16 VM (vcg-a16-6c-64g-16vram)
Management Commands
Managing Self-Hosted Vexa
For detailed guidance on managing users and API tokens in your self-hosted deployment, see: Self-Hosted Management Guide This guide covers:- Creating and managing users
- Generating and revoking API tokens
- Updating user settings (bot limits, etc.)
- Complete workflow examples with curl and Python
Troubleshooting
GPU Issues:- “unknown device” error: Ensure NVIDIA drivers work (
nvidia-smi) and Container Toolkit is configured - Bot creation fails: Check
deploy/compose/docker-compose.ymlhas correctdevice_ids(usually"0")
- JSON parsing errors: Use valid Google Meet ID format (
xxx-xxxx-xxx) and admit bot to meeting - Bot doesn’t join: Check firewall settings and meeting permissions
- WSL2 GPU issues: Docker Compose GPU startup may fail with
nvidia-container-cli: device erroron WSL2 even whennvidia-smiworks. This is a known compatibility issue with certain GPU/driver combinations on WSL2. (#76) - NGINX reverse proxy: If you run Vexa behind an NGINX reverse proxy, base URL configuration is not yet documented. See #75 for community discussion.
Need help? Join our Discord Community | Video tutorial: 3-minute setup guide