System Requirements
Before installing OPBX, ensure your environment meets the following requirements.
Hardware Requirements
Minimum Requirements
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8+ GB |
| Disk | 20 GB free space | 50+ GB SSD |
| Network | 100 Mbps | 1 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
| Software | Version | Purpose |
|---|---|---|
| Docker Engine | 20.10+ | Container runtime |
| Docker Compose | 2.0+ | Multi-container orchestration |
| Git | 2.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:
| Browser | Minimum Version | Recommended |
|---|---|---|
| Chrome | 110+ | Latest |
| Firefox | 110+ | Latest |
| Safari | 16+ | Latest |
| Edge | 110+ | Latest |
Internet Explorer is not supported.
Network Requirements
Ports
The following ports must be available on your host machine:
| Port | Service | Purpose | External Access |
|---|---|---|---|
| 80 | Nginx | HTTP web interface | Required |
| 443 | Nginx | HTTPS web interface (optional) | Recommended |
| 3306 | MySQL | Database (optional external) | Not required |
| 6379 | Redis | Cache/Queue (optional external) | Not required |
| 6001 | Soketi | WebSocket server | Yes (WebSocket) |
| 9000 | MinIO | Object storage API | Optional (set MINIO_EXPOSE_PORT) |
| 9001 | MinIO | Object storage console | Optional (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 unlessDB_EXPOSE_PORTis set)6379- Redis cache (internal only unlessREDIS_EXPOSE_PORTis set)9000- MinIO API (internal only unlessMINIO_EXPOSE_PORTis 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
Cloudonix webhooks require a publicly accessible URL. Localhost-only installations cannot receive calls without a tunnel.
Cloudonix Requirements
For full VoIP functionality, you need:
-
Cloudonix Account
- Sign up at cloudonix.io
- Verify your account
- Create at least one domain
-
API Credentials
- Account SID
- Auth Token
- Domain name
-
Phone Numbers (Optional for Testing)
- At least one DID for inbound testing
- Or use Cloudonix test numbers
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:
| Volume | Purpose | Estimated Size |
|---|---|---|
mysql_data | Database files | 5-10 GB |
redis_data | Cache data | 1-2 GB |
minio_data | Audio 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.