💡 For end users: If you want quick deployment on your platform of choice with user interfaces, see Vexa Lite Deployment Guide and vexa-lite-deploy repository.
💻 For developers: This guide covers the full Docker Compose setup for development.
Quick Start
TL;DR - Try these in order:1. If you have an established development machine
Docker Compose setup for development - All services wrapped indocker-compose.yml with Makefile convenience commands.
Try running directly - this might work instantly:
make all does:
- Builds all Docker images (takes some time at the first run)
- Spins up all containers (API, bots, transcription services, database)
- Runs database migrations (if necessary)
- Starts a simple test to verify everything works
make all again - it rebuilds what’s needed and skips the rest.
💡 Note: This is the development setup. For production deployments, see Vexa Lite Deployment Guide.
2. If you’re on a fresh GPU VM in the cloud
Automated setup - Tested on Vultrvcg-a16-6c-64g-16vram
Sets up everything for you on a fresh VM:
3. Manual setup (if the above don’t work)
For fresh GPU virtual machines or custom setups: Ubuntu/Debian:4. Vexa Lite - For Users (Production Deployment)
For end users who want quick deployment on their platform of choice. Vexa Lite is a single-container deployment that:- Runs as a single Docker container (no multi-service orchestration)
- Requires no GPU (transcription runs externally)
- Perfect for serverless providers and production deployments
- Works with a variety of open-source user interfaces
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
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