VEXYL AI

Installation Guide

This guide covers deploying VEXYL AI Voice Gateway using Docker, standalone binary, or Kubernetes.

Deployment Options

MethodBest ForComplexity
DockerMost deployments, easy updatesLow
KubernetesHigh availability, auto-scalingMedium
Standalone BinaryMinimal footprint, air-gapped systemsLow

Option 1: Docker (Recommended)

The fastest way to get started. Works on any system with Docker installed.

1. Pull Image

docker pull vexyl/vexyl-voice-gateway:latest

2. Run Container

docker run -d \
  --name vexyl-gateway \
  -p 8080:8080 \
  -p 8081:8081 \
  -p 8082:8082 \
  -e SARVAM_API_KEY=your_key \
  vexyl/vexyl-voice-gateway:latest

3. Verify

curl http://localhost:8081/health

Option 2: Standalone Binary

Perfect for servers without Docker or air-gapped environments.

Download & Run

# Download binary
wget https://releases.vexyl.ai/gateway/vexyl-gateway-linux-x64

# Make executable
chmod +x vexyl-gateway-linux-x64

# Run with config
SARVAM_API_KEY=your_key ./vexyl-gateway-linux-x64

Option 3: Kubernetes

For high-availability enterprise deployments.

kubectl create secret generic vexyl-secrets --from-literal=SARVAM_API_KEY=key
kubectl apply -f vexyl-deployment.yaml

Complete Environment Variables Reference

This section documents all available configuration options for VEXYL AI Voice Gateway.

Core Server Settings

VariableDefaultDescription
HTTP_HOST127.0.0.1HTTP API server bind address
HTTP_PORT8081HTTP API server port
AUDIOSOCKET_HOST127.0.0.1AudioSocket server bind address
AUDIOSOCKET_PORT8080AudioSocket server port
DEFAULT_LANGUAGEml-INDefault language code
LOG_LATENCYfalseEnable latency logging

License & Security

VariableDefaultDescription
LICENSE_KEY(empty)Machine-bound license key
HTTP_ALLOWED_IPS(empty)IP whitelist (comma-separated, CIDR supported)
HTTP_TRUST_PROXYfalseTrust X-Forwarded-For header

Operation Mode

VariableDefaultDescription
GATEWAY_MODEfalseEnable Gateway Mode (direct LLM audio)

LLM Provider Settings

VariableDefaultDescription
LLM_PROVIDERsarvamProvider: sarvam, flowise, litebot, custom, n8n

Sarvam LLM

VariableDefaultDescription
SARVAM_API_KEY(required)Sarvam AI API key

Flowise LLM

VariableDefaultDescription
FLOWISE_API_URL(required)Flowise API endpoint
FLOWISE_FLOW_ID(required)Flowise flow ID

Litebot LLM

VariableDefaultDescription
LITEBOT_API_URLhttp://localhost:3000Litebot API endpoint
LITEBOT_BOT_IDcustomer-serviceDefault bot ID
LITEBOT_TIMEOUT30000API timeout (ms)

Custom Webhook LLM

VariableDefaultDescription
CUSTOM_LLM_URL(required)Custom webhook endpoint
CUSTOM_LLM_API_KEY(none)API key for authentication
CUSTOM_LLM_TIMEOUT30000API timeout (ms)

n8n Workflow LLM

VariableDefaultDescription
N8N_WEBHOOK_URL(required)n8n webhook endpoint
N8N_TIMEOUT30000API timeout (ms)
N8N_AUTH_HEADER(none)Authorization header
N8N_RESPONSE_FIELD(auto)Custom response field path
N8N_SESSION_FIELD(auto)Custom session field path

STT Provider Settings

VariableDefaultDescription
STT_PROVIDERautoProvider: auto, sarvam, groq, gemini, deepgram, openai

Sarvam STT

VariableDefaultDescription
SARVAM_API_KEY(required)Sarvam AI API key

Groq Whisper STT

VariableDefaultDescription
GROQ_API_KEY(required)Groq API key
GROQ_MODELwhisper-large-v3-turbowhisper-large-v3-turbo or whisper-large-v3

Gemini STT

VariableDefaultDescription
GEMINI_API_KEY(required)Google Generative AI API key
GEMINI_STT_MODELgemini-2.0-flash-expGemini model for STT
GEMINI_STT_PROMPT(none)Custom transcription instructions

Deepgram STT

VariableDefaultDescription
DEEPGRAM_API_KEY(required)Deepgram API key
DEEPGRAM_STT_MODELnova-2Model: nova-2 or nova-3
DEEPGRAM_STT_ENDPOINTING500Silence detection (ms)
DEEPGRAM_STT_INTERIM_RESULTStrueEnable interim results
DEEPGRAM_STT_PUNCTUATEtrueAdd punctuation
DEEPGRAM_STT_SMART_FORMATtrueSmart formatting

OpenAI Whisper STT

VariableDefaultDescription
OPENAI_API_KEY(required)OpenAI API key
OPENAI_STT_MODELwhisper-1whisper-1 or gpt-4o-transcribe

TTS Provider Settings

VariableDefaultDescription
TTS_PROVIDERsarvamProvider: sarvam, google, gemini, elevenlabs, deepgram, azure, murf

Sarvam TTS

VariableDefaultDescription
SARVAM_API_KEY(required)Sarvam AI API key

Google Cloud TTS

VariableDefaultDescription
GOOGLE_APPLICATION_CREDENTIALS(required)Path to service account JSON
GOOGLE_TTS_VOICE_NAME(auto)Voice name override

Gemini TTS

VariableDefaultDescription
GEMINI_API_KEY(required)Google Generative AI API key
GEMINI_TTS_MODELgemini-2.5-flash-ttsGemini TTS model
GEMINI_TTS_VOICE_NAMEAchernarVoice name
GEMINI_TTS_TEMPERATURE1.0Temperature (0.1-1.0)

ElevenLabs TTS

VariableDefaultDescription
ELEVENLABS_API_KEY(required)ElevenLabs API key
ELEVENLABS_MODELeleven_multilingual_v2TTS model
ELEVENLABS_VOICE_ID21m00Tcm4TlvDq8ikWAMDefault voice ID
ELEVENLABS_STABILITY0.5Voice stability (0.0-1.0)
ELEVENLABS_SIMILARITY_BOOST0.75Voice clarity (0.0-1.0)
ELEVENLABS_TIMEOUT30000WebSocket timeout (ms)

Deepgram TTS

VariableDefaultDescription
DEEPGRAM_API_KEY(required)Deepgram API key
DEEPGRAM_MODELaura-asteria-enDefault voice model
DEEPGRAM_TIMEOUT30000API timeout (ms)

Azure TTS

VariableDefaultDescription
AZURE_TTS_API_KEY(required)Azure Cognitive Services key
AZURE_TTS_REGIONcentralindiaAzure region
AZURE_TTS_VOICE_NAMEen-US-JennyNeuralDefault voice
AZURE_TTS_VOICE_STYLE(none)Voice style
AZURE_TTS_RATE1.2Speech rate (0.5-2.0)
AZURE_TTS_PITCH0%Pitch (-50% to +50%)
AZURE_TTS_TIMEOUT30000API timeout (ms)

Murf TTS

VariableDefaultDescription
MURF_API_KEY(required)Murf AI API key
MURF_VOICE_IDen-US-natalieDefault voice ID
MURF_MODELGEN2Model: GEN2 or FALCON
MURF_STYLEConversationalVoice style
MURF_SAMPLE_RATE24000Sample rate (Hz)

Voice Activity Detection (VAD)

VariableDefaultDescription
VAD_MODELv5Silero VAD model version
VAD_POSITIVE_THRESHOLD0.5Speech start threshold (0.0-1.0)
VAD_NEGATIVE_THRESHOLD0.35Speech stop threshold
VAD_REDEMPTION_FRAMES8Pause tolerance (8 = 768ms)
VAD_MIN_SPEECH_FRAMES3Min speech frames (3 = 288ms)
VAD_PRE_SPEECH_FRAMES1Pre-buffer frames (1 = 96ms)

Audio Buffering

VariableDefaultDescription
MIN_SPEECH_DURATION500Min speech before processing (ms)
MAX_SILENCE_DURATION1000Max silence before finalizing (ms)
MAX_BUFFER_DURATION10000Max buffer before forcing STT (ms)

Barge-In (Interrupt AI)

VariableDefaultDescription
ENABLE_BARGE_INtrueEnable conversation interruption
BARGE_IN_THRESHOLD500Energy threshold for detection
BARGE_IN_DELAY200Min speech duration (ms)
BARGE_IN_USE_VADtrueUse VAD for accurate detection
BARGE_IN_VAD_THRESHOLD0.5VAD probability threshold

TTS Response Splitting

VariableDefaultDescription
ENABLE_TTS_SPLITTINGtrueSplit long responses
TTS_CHUNK_SIZE100Max characters per chunk
TTS_MAX_PARALLEL3Parallel TTS requests
TTS_SPLIT_DELIMITERS.!?редSentence delimiters
TTS_PHRASE_DELIMITERS,;:Phrase delimiters

TTS Caching

VariableDefaultDescription
TTS_CACHE_ENABLEDfalseEnable disk caching
TTS_CACHE_DIRcache/ttsCache directory
TTS_CACHE_MAX_SIZE_MB5000Max cache size (MB)
TTS_CACHE_MAX_AGE_DAYS90Max entry age (days)
TTS_CACHE_CLEANUP_STRATEGYlruStrategy: lru, size, ttl, none
TTS_CACHE_STATS_LOGGINGtrueEnable cache stats

Utterance Window (Batch STT)

VariableDefaultDescription
UTTERANCE_WINDOW_SIZE5Max utterances to buffer
UTTERANCE_TIMEOUT3000Timeout after last utterance (ms)
REDEMPTION_MS1400Grace period for speech (ms)
UTTERANCE_COMBINATION_WINDOW10000Combine window (ms)

Outbound Calls

VariableDefaultDescription
OUTBOUND_ENABLEDfalseEnable outbound calling
OUTBOUND_ORIGINATE_ENDPOINT(none)Webhook URL for call origination
OUTBOUND_TIMEOUT10000Webhook timeout (ms)
OUTBOUND_GREETING_MODEstaticMode: static, dynamic, hybrid, wait
OUTBOUND_STATIC_AUDIO_EN(none)English greeting WAV file
OUTBOUND_STATIC_AUDIO_ML(none)Malayalam greeting WAV file
OUTBOUND_DEFAULT_GREETING_EN(default)English greeting text (TTS)
OUTBOUND_DEFAULT_GREETING_ML(default)Malayalam greeting text (TTS)

Call Transfer (HITL)

VariableDefaultDescription
TRANSFER_ENABLEDfalseEnable call transfer
TRANSFER_ENDPOINT(none)Transfer webhook URL
TRANSFER_TIMEOUT5000Webhook timeout (ms)
TRANSFER_MESSAGE(none)Transfer message audio file
TRANSFER_MESSAGE_TEXT_EN(default)Transfer message (English)
TRANSFER_ERROR_MESSAGE(none)Transfer error audio file
TRANSFER_ERROR_TEXT_EN(default)Transfer error text

Goodbye/Hangup Messages

VariableDefaultDescription
GOODBYE_MESSAGE(none)Goodbye audio file
GOODBYE_MESSAGE_TEXT_EN(default)Goodbye text (English)
GOODBYE_MESSAGE_TEXT_ML(default)Goodbye text (Malayalam)

LLM Timeout Messages

VariableDefaultDescription
TIMEOUT_MESSAGE_ENABLEDtrueEnable timeout messages
LLM_TIMEOUT_MESSAGE(default)Initial timeout message
LLM_TIMEOUT_RETRY_MESSAGE(default)Retry timeout message
LLM_FINAL_TIMEOUT_MESSAGE(default)Final timeout message

Processing Sound

VariableDefaultDescription
PROCESSING_SOUND_ENABLEDfalseEnable processing sound
PROCESSING_SOUND_FILE(none)Path to sound file
PROCESSING_SOUND_VOLUME0.3Volume (0.0-1.0)
PROCESSING_SOUND_LOOPtrueLoop sound
PROCESSING_SOUND_START_DELAY2000Delay before playing (ms)

Session Storage (Redis)

VariableDefaultDescription
REDIS_HOST(none)Redis hostname (enables Redis)
REDIS_PORT6379Redis port
REDIS_PASSWORD(none)Redis password
REDIS_DB0Redis database number
SESSION_TTL3600Session TTL (seconds)

WebSocket Browser SDK

VariableDefaultDescription
WEBSOCKET_AUDIO_ENABLEDfalseEnable WebSocket server
WEBSOCKET_AUDIO_PORT8082WebSocket port
WEBSOCKET_AUDIO_HOST0.0.0.0WebSocket bind address
WEBSOCKET_AUDIO_ALLOWED_ORIGINS(empty)Allowed CORS origins
WEBSOCKET_AUDIO_MAX_PER_IP5Max connections per IP
WEBSOCKET_AUDIO_API_KEY(none)API key for authentication

Gateway Mode (OpenAI/ElevenLabs Direct)

VariableDefaultDescription
LLM_WEBSOCKET_URL(none)LLM WebSocket endpoint
LLM_API_KEY(none)LLM WebSocket API key
AUDIO_FORMATpcm16Audio format
SAMPLE_RATE8000Sample rate (Hz)
GATEWAY_VOICEalloyVoice ID
GATEWAY_INSTRUCTIONS(default)System instructions
GATEWAY_TEMPERATURE0.8Temperature (0.0-1.0)
GATEWAY_MAX_TOKENS4096Max response tokens
GATEWAY_VAD_TYPEserver_vadVAD type: server_vad, none
GATEWAY_VAD_THRESHOLD0.5VAD threshold
GATEWAY_VAD_SILENCE_MS500Silence duration (ms)
MAX_AUDIO_BUFFER_SIZE100Max audio buffer chunks
MAX_PLAYBACK_QUEUE_SIZE50Max playback queue chunks

Testing/Debugging

VariableDefaultDescription
TEST_TTS_ON_STARTfalseTest TTS on startup
TEST_STT_ON_STARTfalseTest STT on startup
TEST_GROQ_ON_STARTfalseTest Groq on startup

Next Steps

Once installed, proceed to Configuration to set up your AI providers.