logoVoxagent

Requirements

System requirements and resource planning for Voxagent

Voxagent is a composable platform. Each service runs in its own container, so you can scale components independently. Before deploying, size your infrastructure according to expected concurrent sessions — everything else (backbone services) stays roughly constant.

Software dependencies

  • Docker 24+ and Docker Compose v2.24+
  • 64-bit Linux host (Ubuntu 22.04 LTS or equivalent). macOS works for local dev.
  • Outbound internet access (registry, LLM/STT/TTS providers, STUN/TURN)
  • Ports accessible from your users' browsers: frontend, backend API, Keycloak, LiveKit WebRTC (TCP 7881, UDP 50000–60000).

Per-service resource baselines

The table below shows combined CPU / RAM / Disk requirements for each service at typical concurrent session loads. Values are empirical baselines from production.

Service1 session10 sessions50 sessions250 sessions500 sessions
livekit-server
WebRTC SFU — media plane for every active call
550 m · 276 MB · 1.0 GB1.00 vCPU · 456 MB · 1.0 GB3.00 vCPU · 1.2 GB · 1.0 GB13.00 vCPU · 5.1 GB · 1.0 GB25.50 vCPU · 10.0 GB · 1.0 GB
python-worker
LiveKit voice agent (LLM/STT/TTS orchestration)
500 m · 520 MB · 1.0 GB2.30 vCPU · 1.6 GB · 1.0 GB10.30 vCPU · 6.3 GB · 1.0 GB50.30 vCPU · 29.7 GB · 1.0 GB100.30 vCPU · 59.0 GB · 1.0 GB
egress
LiveKit recording/transcoding (optional)
350 m · 336 MB · 2.0 GB1.70 vCPU · 1.0 GB · 2.5 GB7.70 vCPU · 4.2 GB · 4.5 GB37.70 vCPU · 19.8 GB · 14.5 GB75.20 vCPU · 39.3 GB · 27.0 GB
websocket-media-bridge
Voximplant/Twilio SIP ↔ LiveKit audio bridge
230 m · 143 MB · 0.5 GB500 m · 278 MB · 0.5 GB1.70 vCPU · 878 MB · 0.5 GB7.70 vCPU · 3.8 GB · 0.5 GB15.20 vCPU · 7.4 GB · 0.5 GB
asp-net-backend
Main API (.NET 9, EF Core, SignalR)
1.01 vCPU · 1.0 GB · 5.0 GB1.10 vCPU · 1.0 GB · 5.0 GB1.50 vCPU · 1.2 GB · 5.0 GB3.50 vCPU · 2.2 GB · 5.0 GB6.00 vCPU · 3.4 GB · 5.0 GB
postgres
Main + Lago + Keycloak + Hangfire DBs
505 m · 1.0 GB · 20.0 GB550 m · 1.0 GB · 20.0 GB750 m · 1.1 GB · 20.1 GB1.75 vCPU · 1.5 GB · 20.5 GB3.00 vCPU · 2.0 GB · 21.0 GB
redis
LiveKit pubsub, backend cache, Sidekiq queues
205 m · 259 MB · 2.0 GB250 m · 286 MB · 2.0 GB450 m · 406 MB · 2.0 GB1.45 vCPU · 1006 MB · 2.0 GB2.70 vCPU · 1.7 GB · 2.0 GB
kafka
Event streaming (spans, webhooks, analytics)
505 m · 1.0 GB · 20.0 GB550 m · 1.0 GB · 20.1 GB750 m · 1.2 GB · 20.5 GB1.75 vCPU · 2.2 GB · 22.5 GB3.00 vCPU · 3.4 GB · 25.0 GB
keycloak
OAuth2 / OIDC authentication
500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB500 m · 768 MB · 2.0 GB
minio
S3-compatible storage (recordings, invoices)
200 m · 256 MB · 20.1 GB200 m · 256 MB · 20.5 GB200 m · 256 MB · 22.5 GB200 m · 256 MB · 32.5 GB200 m · 256 MB · 45.0 GB
clickhouse
Analytics warehouse (optional)
500 m · 2.0 GB · 30.0 GB500 m · 2.0 GB · 30.1 GB500 m · 2.0 GB · 30.3 GB500 m · 2.0 GB · 31.3 GB500 m · 2.0 GB · 32.5 GB
webhook-receiver
Accepts inbound webhooks (Lago, LiveKit, Twilio)
200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB200 m · 256 MB · 1.0 GB
angular-client + widget
Static frontends (nginx)
100 m · 64 MB · 0.5 GB100 m · 64 MB · 0.5 GB100 m · 64 MB · 0.5 GB100 m · 64 MB · 0.5 GB100 m · 64 MB · 0.5 GB
lago (api + worker + front)
Billing stack
1.00 vCPU · 1.0 GB · 5.0 GB1.00 vCPU · 1.0 GB · 5.0 GB1.00 vCPU · 1.0 GB · 5.0 GB1.00 vCPU · 1.0 GB · 5.0 GB1.00 vCPU · 1.0 GB · 5.0 GB
logging stack (ES, Kibana, Fluent Bit, Benthos)
Optional observability (--profile logging)
1.00 vCPU · 2.0 GB · 30.0 GB1.03 vCPU · 2.0 GB · 30.0 GB1.15 vCPU · 2.1 GB · 30.1 GB1.75 vCPU · 2.5 GB · 30.8 GB2.50 vCPU · 3.0 GB · 31.5 GB
Total7.36 vCPU
10.8 GB
140.1 GB
11.48 vCPU
13.0 GB
141.2 GB
29.80 vCPU
22.9 GB
146.0 GB
121.40 vCPU
72.1 GB
170.0 GB
235.90 vCPU
133.6 GB
200.0 GB

How to read this:

  • Session-bound services (livekit-server, python-worker, egress, websocket-media-bridge) scale linearly with the number of active calls. They are what you need to plan for.
  • Backbone services (Postgres, Kafka, Keycloak, Redis, MinIO, etc.) have a largely fixed footprint — you can host them once and reuse across tenants.
  • Disk mostly grows in Postgres (transcripts, invoices), Kafka (event retention) and MinIO (call recordings). Plan storage with retention in mind.

Resource calculator

Use the calculator to estimate the total footprint of the application stack at your expected peak concurrency:

CPU
29.80 vCPU
RAM
22.9 GB
Disk
146.0 GB

Total is the sum across all application services at 50 concurrent sessions. Resources for LLM / STT / TTS providers are billed separately and not included here.

Notes

  • Numbers are for the application layer only. CPU/RAM/disk for LLM, STT and TTS providers (or self-hosted models) are billed separately by those vendors and are not included here. We'll cover model cost planning in a dedicated page.
  • Add a safety margin of 20–30% on top of the calculator output for headroom, spikes and OS overhead.
  • For high-availability production deployments you should double the backbone figures (Postgres replica, Kafka with replication factor ≥ 2, etc.).

Minimum machine sizing (at a glance)

LoadRecommended VM
Demo / dev (1 session)4 vCPU · 8 GB RAM · 50 GB SSD
Small (10 sessions)6 vCPU · 16 GB RAM · 100 GB SSD
Medium (50 sessions)12 vCPU · 32 GB RAM · 200 GB SSD
Large (250 sessions)32 vCPU · 96 GB RAM · 500 GB SSD (multi-node)
XL (500 sessions)64 vCPU · 192 GB RAM · 1 TB SSD (multi-node)

For everything above 50 concurrent sessions we recommend splitting livekit-server + python-worker onto their own hosts, so that media and agent CPU load doesn't starve the backbone.

On this page