Skip to main content
Vexa is configured by environment variables, set in deploy/compose/.env for Docker Compose (seeded from .env.example on first make all). Defaults below are what the stack falls back to when the variable is unset — fine for local evaluation, not for anything exposed.
Change every secret (ADMIN_TOKEN, INTERNAL_API_SECRET, DB and MinIO credentials, VEXA_DISPATCH_SIGNING_KEY, NEXTAUTH_SECRET) before putting the stack on a network. The defaults are public.

Transcription (STT)

VariableDefaultPurpose
TRANSCRIPTION_SERVICE_URLSTT service base URL (the client appends /v1/audio/transcriptions), e.g. http://<gpu-host>:8083. Point it at the bundled service you deploy separately (deploy/transcription) or a hosted endpoint. Unset → bots join and record but produce no transcript.
TRANSCRIPTION_SERVICE_TOKENSTT auth token — must match the API_TOKEN of your deploy/transcription unit, or a token from vexa.ai/account.
The STT service is the GPU workload, deployed separately from this stack — see Deployment → Transcription. The main stack stays GPU-free and reaches it over the network via the two variables above.

Secrets & identity

VariableDefaultPurpose
ADMIN_TOKENchangemeAdmin API key (X-Admin-API-Key) — mints users and tokens.
INTERNAL_API_SECRETvexa-internal-secretShared secret for service-to-service calls.
VEXA_DISPATCH_SIGNING_KEYdev-dispatch-signing-keySigns dispatch tokens (the identity chain of custody).
NEXTAUTH_SECRETdev-nextauth-secretSession secret for the web UI.
VEXA_BOT_API_KEYPre-shared key a bot uses to call back into the stack.

Database & storage

VariableDefaultPurpose
DB_NAME / DB_USER / DB_PASSWORDvexa / postgres / postgresPostgres credentials (metadata).
POSTGRES_HOST_PORT5458Host port mapped to Postgres.
MINIO_ENDPOINTminio:9000Object storage endpoint (recordings + workspaces).
MINIO_ACCESS_KEY / MINIO_SECRET_KEYvexa-access-key / vexa-secret-keyMinIO credentials.
MINIO_ROOT_USER / MINIO_ROOT_PASSWORDvexa-access-key / vexa-secret-keyMinIO root credentials.
MINIO_BUCKETvexaBucket holding recordings and agent workspaces.
MINIO_SECUREfalseUse TLS to reach MinIO.

Agent inference (bring your own)

Point the agent at your own model so no inference leaves the network.
VariableDefaultPurpose
VEXA_AGENT_MODELModel the agent runner uses.
VEXA_MEETING_MODELModel for meeting-time processing.
ANTHROPIC_API_KEYKey for Anthropic-backed runners.
ANTHROPIC_MODEL · ANTHROPIC_DEFAULT_OPUS_MODEL · …_SONNET_MODEL · …_HAIKU_MODELPer-tier model overrides.
HOST_CLAUDE_CREDENTIALSHost path to Claude credentials mounted into agent containers.
VEXA_AGENT_DEFAULT_SUBJECTu_liveFallback subject before the gateway fronts agent-api.

Images & runtime

VariableDefaultPurpose
IMAGE_TAGdevTag for the built service images.
BROWSER_IMAGEvexaai/vexa-bot:v012Browser/bot container the runtime spawns per meeting. Built from source (make bot), spawned without pulling — the published vexaai/vexa-bot:dev is the old 0.10 line and is incompatible.
AGENT_IMAGE / AGENT_WORKER_IMAGEvexaai/v012-agent-*Agent container the runtime spawns per dispatch.
DOCKER_GID0Host docker group id, so the runtime can use the Docker socket.
LOG_LEVELinfoLog verbosity.

Ports

Host ports the compose stack publishes on 127.0.0.1 (override any of them in .env):
VariableDefaultService
API_GATEWAY_HOST_PORT18056gateway (the one front door)
ADMIN_API_PORT18057admin-api
MEETING_API_PORT18080meeting-api
RUNTIME_API_PORT18090runtime
AGENT_API_PORT18100agent-api
TERMINAL_PORT13000web UI / terminal
MINIO_HOST_PORT / MINIO_CONSOLE_HOST_PORT9000 / 9001MinIO API / console
The gateway (:18056) is the one front door; the terminal web workbench is at :13000. The other host ports above are bound to 127.0.0.1 for local inspection and aren’t needed for day-to-day use.