Installation
Requirements
| Component | Minimum | Recommended |
|---|---|---|
| OS | Ubuntu 24.04 | Ubuntu 24.04 |
| CPU | 4 vCPU | 8 vCPU |
| RAM | 8 GB | 16 GB (for AI transcription) |
| Disk | 200 GB | 500 GB+ (depends on recording volume) |
| Network | Public IP, ports 80/443 open | Dedicated domain with DNS A record |
Recordings are stored in uncompressed Linear Stereo WAV format and can consume significant disk space. We recommend configuring an external S3-compatible storage provider such as AWS S3 or DigitalOcean Spaces to offload recording storage — this can be configured under Admin → Storage.
For servers with 8+ CPUs, you can speed up transcription by increasing numThreads in worker/src/transcriber.js — for example, set it to 7 on an 8 CPU system. Then in .env, set TRANSCRIPTION_CONCURRENCY=6 (one less than numThreads). After changing these values, rebuild the worker with docker compose build --no-cache worker and restart with docker compose up -d worker.
Install Steps
1. Point Your Domain
Create a DNS A record pointing your chosen domain (e.g. cdr.example.com) to your server's public IP. Let DNS propagate before proceeding — Vodia Analytics needs this to issue the TLS certificate automatically.
2. Download and Run
apt-get install -y wget unzip
wget https://vodia.nyc3.cdn.digitaloceanspaces.com/cdrstats/cdrstats.zip
unzip cdrstats.zip
cd cdrstats
bash install.sh
3. Answer the Prompts
The installer will ask:
| Prompt | Required | Notes |
|---|---|---|
| Domain | Yes | e.g. cdr.example.com — or localhost for local dev |
| Admin email | Yes | Used as your login username |
| Admin password | Yes | Minimum 8 characters |
| OpenAI API key | No | Enables AI summaries and sentiment analysis. Transcription works without it. You could add it later under Admin settings or use Gemini, Claude |
| PBX IP whitelist | No | Comma-separated IPs of your Vodia PBX servers. Only these IPs can push CDR/recording data. Leave blank to allow all. You could add it later under Admin settings |
4. Wait ~5–10 Minutes
The installer will:
- Install Docker if not present
- Generate all secrets (MongoDB, Redis, MinIO, JWT)
- Build the frontend and all containers
- Start all services with auto-HTTPS via Caddy
- Configure UFW firewall
- Set up daily backup cron job
5. Verify
Open https://your-domain.com in a browser and log in with the email and password you entered.
All services run in Docker containers managed by Docker Compose: Caddy (reverse proxy + auto-HTTPS), Fastify API, BullMQ worker (transcription), MongoDB 7, Redis 7, MinIO (recording storage), and Grafana (optional monitoring). Configuration lives in .env at the project root.