Skip to main content

System Requirements

Before installing OPBX, ensure your environment meets the following requirements.

Hardware Requirements

Minimum Requirements

ResourceMinimumRecommended
CPU2 cores4+ cores
RAM4 GB8+ GB
Disk20 GB free space50+ GB SSD
Network100 Mbps1 Gbps

Notes

  • Disk space: Audio recordings for IVR and announcements can consume storage. Plan approximately 1 MB per minute of audio.
  • RAM: More RAM improves performance for concurrent users and large call volumes.
  • CPU: Required for audio processing if using AI assistants.

Software Prerequisites

Required Software

SoftwareVersionPurpose
Docker Engine20.10+Container runtime
Docker Compose2.0+Multi-container orchestration
Git2.30+Source code management

Installing Docker

Ubuntu/Debian:

# Install Docker
sudo apt-get update
sudo apt-get install -y docker.io docker-compose-plugin

# Add your user to docker group
sudo usermod -aG docker $USER

# Log out and back in for changes to take effect

macOS:

# Using Homebrew
brew install docker docker-compose

# Or download Docker Desktop from:
# https://www.docker.com/products/docker-desktop

Windows:

  • Install Docker Desktop for Windows
  • Ensure WSL2 backend is enabled
  • Enable Docker Compose V2

Verifying Installation

# Check Docker version
docker --version
# Expected: Docker version 20.10.x or higher

# Check Docker Compose version
docker compose version
# Expected: Docker Compose version v2.x.x or higher

# Verify Docker is running
docker ps

Browser Compatibility

OPBX supports the following browsers:

BrowserMinimum VersionRecommended
Chrome110+Latest
Firefox110+Latest
Safari16+Latest
Edge110+Latest
note

Internet Explorer is not supported.

Network Requirements

Ports

The following ports must be available on your host machine:

PortServicePurposeExternal Access
80NginxHTTP web interfaceRequired
443NginxHTTPS web interface (optional)Recommended
3306MySQLDatabase (optional external)Not required
6379RedisCache/Queue (optional external)Not required
6001SoketiWebSocket serverYes (WebSocket)
9000MinIOObject storage APIOptional (set MINIO_EXPOSE_PORT)
9001MinIOObject storage consoleOptional (set MINIO_CONSOLE_EXPOSE_PORT)

Internal Ports (Container-to-Container)

These ports are used internally between containers and don't need to be exposed to the host:

  • 9000 - PHP-FPM (Laravel backend)
  • 3306 - MySQL database (internal only unless DB_EXPOSE_PORT is set)
  • 6379 - Redis cache (internal only unless REDIS_EXPOSE_PORT is set)
  • 9000 - MinIO API (internal only unless MINIO_EXPOSE_PORT is set)

Firewall Configuration

If you have a firewall enabled, allow traffic on the required ports:

Ubuntu/Debian (UFW):

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

CentOS/RHEL (firewalld):

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

External Access for Webhooks

If you plan to use Cloudonix integration (for VoIP), the OPBX instance must be accessible from the internet:

  • Production: Use a public domain with HTTPS
  • Development: Use a tunnel service like ngrok
warning

Cloudonix webhooks require a publicly accessible URL. Localhost-only installations cannot receive calls without a tunnel.

Cloudonix Requirements

For full VoIP functionality, you need:

  1. Cloudonix Account

    • Sign up at cloudonix.io
    • Verify your account
    • Create at least one domain
  2. API Credentials

    • Account SID
    • Auth Token
    • Domain name
  3. Phone Numbers (Optional for Testing)

    • At least one DID for inbound testing
    • Or use Cloudonix test numbers
tip

You can explore OPBX without Cloudonix, but VoIP features (calls, extensions) will not function.

Storage Requirements

Persistent Volumes

Docker Compose will create the following persistent volumes:

VolumePurposeEstimated Size
mysql_dataDatabase files5-10 GB
redis_dataCache data1-2 GB
minio_dataAudio recordings (IVR, announcements)1-10 GB

Storage Calculation

Estimate your storage needs for audio recordings (IVR greetings, announcements):

Audio Recordings (GB) = (Total audio duration in minutes)
× (1 MB per minute)
÷ 1024

Example:
- 50 minutes of IVR greetings and announcements
- 50 × 1 ÷ 1024 = ~0.05 GB

Note: Storage for call recordings depends on your Cloudonix plan and configuration.

Optional Components

SSL/TLS Certificates

For production deployments, you'll need:

  • Valid SSL certificate (Let's Encrypt or commercial)
  • Domain name pointing to your server
  • Port 443 available

Backup Storage

For automated backups, plan for:

  • 2x your current database size
  • Storage for daily backups (7 days)
  • Storage for weekly backups (4 weeks)
  • Storage for monthly backups (12 months)

Verification Checklist

Before proceeding to installation, verify:

  • Docker Engine 20.10+ installed
  • Docker Compose 2.0+ installed
  • Git installed
  • Ports 80 and 443 available
  • At least 4 GB RAM available
  • At least 20 GB disk space available
  • (Optional) Cloudonix account created
  • (Optional) Public domain or tunnel configured

Next Steps

Once you've verified all requirements:

→ Continue to Installation to set up OPBX.