● Start · What you need
Requirements
server, accounts, keys.
What must be in place before VOX can place a call, and what is optional.
01Server and software
| Item | Needed for | Notes |
|---|---|---|
| Linux server (or macOS for single-user) Required | everything | The Docker recipe uses host networking, a Linux feature. Docker Desktop on macOS/Windows is Unverified. |
| Python 3.11+ Required | calls, console, SaaS | Dependencies pinned in app/voice/requirements.txt (pipecat-ai 1.11.0, FastAPI, uvicorn, Google client, mcp). |
| Node.js 20+ Required | the 12 onboarding questions, the briefing | One optional npm package, @anthropic-ai/sdk, pinned in app/package-lock.json. |
| Docker Engine + Compose v2 Optional | one-command install | The image contains Python 3.11 and Node 20. |
| A public host name with HTTPS Required for calls | calls, SaaS | Twilio connects to wss://<host>/ws. A TLS reverse proxy (Caddy or nginx) is the only thing that faces the internet. |
| macOS Optional | the spoken briefing in the terminal | Uses the system say command. Elsewhere the briefing is printed. |
02Provider accounts
| Account | Needed for | What you take from it |
|---|---|---|
| Anthropic Required | conversation, research, mail triage, briefing | API key |
| ElevenLabs Required (unless you run local speech) | speech-to-text and text-to-speech | API key and a voice ID |
| Twilio or Telnyx Required | calls, texts, inbound calls | A voice-capable number and its credentials. WhatsApp is Twilio only. |
| Stripe Optional | SaaS billing | Without Stripe, the operator can still assign plans by hand. |
| SMTP server Optional | SaaS e-mail verification, password reset, e-mail channel | Without SMTP, new SaaS accounts wait for your activation. |
| Telegram bot Optional | messages and commands through Telegram | Token from @BotFather |
| Google Cloud OAuth client Optional | Gmail (read-only) and Calendar | "Desktop app" for single-user, "Web application" for SaaS |
03Running costs
Every call uses paid services: the phone line (Twilio or Telnyx), speech (ElevenLabs) and the model (Anthropic). The console and the SaaS operator panel show a cost estimate per call from the per-minute model in app/voice/costs.py. It is an estimate, not an invoice: check your provider dashboards for real amounts.
04Ready checklist
python3 --versionshows 3.11 or newer,node -vshows 20 or newer (or Docker is installed).- A domain or sub-domain points at the server, and ports 80 and 443 are open for the proxy.
- You have the seven values from Configuration → Required, or the Telnyx set.
- You have read Call rules. You are responsible for the calls your install places.