Skip to main content

Docker Compose

Voiceblox ships with a docker-compose.yml that starts both the web app and the agent worker.

Quick start

# Copy and fill in your environment variables
cp .env.example .env.local

# Start both services
pnpm docker:up

# Stop both services
pnpm docker:down

Services

app — Next.js web application

  • Image: ghcr.io/voiceblox-ai/voiceblox:latest
  • Port: 3000
  • Loads .env.local from the host
  • Runs: pnpm start

agent — LiveKit agent worker

  • Image: ghcr.io/voiceblox-ai/voiceblox-agent:latest
  • No published ports (connects outbound to LiveKit)
  • Loads .env.local from the host
  • Runs: pnpm agent:start

Environment variables

Both services read from .env.local. The file is mounted as a volume, so you don’t need to rebuild the image after changing keys. After updating .env.local, restart the agent service:
docker compose restart agent

Building locally

To build the images from source instead of pulling from the registry:
docker compose build
docker compose up
The Dockerfile builds the web app and the Dockerfile.agent builds the agent worker.

Logs

# View logs for both services
docker compose logs -f

# View logs for just the agent
docker compose logs -f agent