Skip to main content

Installation

Requirements

ComponentMinimumRecommended
OSUbuntu 24.04Ubuntu 24.04
CPU4 vCPU8 vCPU
RAM8 GB16 GB (for AI transcription)
Disk200 GB500 GB+ (depends on recording volume)
NetworkPublic IP, ports 80/443 openDedicated domain with DNS A record
note

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.

note

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:

PromptRequiredNotes
DomainYese.g. cdr.example.com — or localhost for local dev
Admin emailYesUsed as your login username
Admin passwordYesMinimum 8 characters
OpenAI API keyNoEnables AI summaries and sentiment analysis. Transcription works without it. You could add it later under Admin settings or use Gemini, Claude
PBX IP whitelistNoComma-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.

What the installer creates

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.