Skip to content
Private Cloud Deployment

Docker Installation

⚠️ WARNING: NOT FOR PRODUCTION USE

This installation method is for development and testing only. DO NOT use for production deployments. For production, use the standard RPM installation method.

Supported Systems

  • RHEL/AlmaLinux/Rocky Linux 8–10
  • Debian trixie (13) or sid
  • Ubuntu 24.04 (Noble) or newer

"Linux Only"

VoipNow containers require systemd support (not available on Windows/macOS).

System Requirements

  • RAM: 7GB minimum (12GB recommended)
  • CPU: 2 cores minimum
  • Firewall Ports:
    • TCP: 22 (SSH), 25 (SMTP), 80, 443 (Web), 5061 (SIP TLS)
    • UDP: 5060 (SIP), 10000-20000 (RTP), 4000-4999 (FAX)

Installation

Step 1: Install VoipNow Repository

For RHEL/AlmaLinux/Rocky:

bash
sudo curl -o /etc/yum.repos.d/voipnow.repo \
  https://repo.4psa.com/voipnow-installer

For Debian/Ubuntu:

Skip this step - repository not available for Debian/Ubuntu.

Step 2: Install VoipNow Installer

For RHEL/AlmaLinux/Rocky:

bash
sudo dnf install voipnowinstaller

This installs:

  • /usr/bin/voipnowinstaller - Main installer
  • /usr/bin/voipnowcontainer - Container deployment script

For Debian/Ubuntu:

The voipnowinstaller package is not available for Debian/Ubuntu. Copy the voipnowcontainer script from a RHEL machine:

bash
# On RHEL machine (after installing voipnowinstaller)
sudo cp /usr/bin/voipnowcontainer /tmp/

# Transfer to Debian/Ubuntu machine, then:
sudo cp voipnowcontainer /usr/local/bin/
sudo chmod +x /usr/local/bin/voipnowcontainer

Step 3: Run Container Installation

bash
# Basic installation (auto-detects IP and hostname)
voipnowcontainer --auto

# Custom installation
voipnowcontainer \
  --image ghcr.io/4psa/voipnow5.rhel8:latest \
  --public-ip 1.2.3.4 \
  --hostname voipnow.example.com \
  --memory 12g \
  --cpus 4 \
  --auto

Common Options:

  • --image IMAGE - Container image (default: ghcr.io/4psa/voipnow5.rhel8:latest)
  • --public-ip IP - Public IP address (default: auto-detected)
  • --hostname NAME - Container hostname (default: system hostname)
  • --memory SIZE - Memory limit (default: 12g, min: 7g)
  • --cpus NUM - CPU cores (default: 2, min: 0.5)
  • --auto - Skip confirmation prompt
  • --help - Show all options

"First Start"

Initial startup takes 5-10 minutes while services initialize.

Step 4: Access VoipNow

Open https://<PUBLIC_IP> in your browser.

Watch startup logs:

bash
podman logs -f VoipNow

Container Management

Start/Stop

bash
# Stop container
podman stop VoipNow

# Start container
podman start VoipNow

# Restart container
podman restart VoipNow

# View status
podman ps -a | grep VoipNow

View Logs

bash
# All logs
podman exec VoipNow journalctl -f

# Specific service
podman exec VoipNow journalctl -u voipnow-cloud -f

# Errors only
podman exec VoipNow journalctl -p err

Shell Access

bash
podman exec -ti VoipNow bash

Change Admin Password

bash
podman exec -ti VoipNow /usr/local/voipnow/bin/chadminpass.sh

Upgrade

❌ UPGRADES NOT SUPPORTED

Container-based installations do not support in-place upgrades. To update, remove the container and reinstall (data will be lost).

Data Persistence

Container data is stored in Podman volumes:

  • Configuration: /etc/voipnow
  • Database: /var/lib/mysql
  • Recordings: /var/spool/asterisk
  • Logs: /var/log

Volumes persist when container is stopped/restarted but are lost on removal.

Remove Container and Data

"⚠️ DATA LOSS WARNING"

This permanently deletes ALL VoipNow data. Backup first if needed.

bash
# Stop and remove container
podman stop VoipNow
podman rm VoipNow

# Remove all volumes (permanent data deletion)
podman volume rm $(podman volume ls -q | grep voipnow_)

Troubleshooting

Container won't start

bash
# Check logs
podman logs VoipNow

# Check resources
free -h
nproc

Reset everything

bash
# Complete removal
podman stop VoipNow
podman rm VoipNow
podman volume rm $(podman volume ls -q | grep voipnow_)

# Reinstall
voipnowcontainer --auto

Getting Help

For support, run:

bash
voipnowcontainer --help
Last updated: Jan 28, 2026