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:
sudo curl -o /etc/yum.repos.d/voipnow.repo \
https://repo.4psa.com/voipnow-installerFor Debian/Ubuntu:
Skip this step - repository not available for Debian/Ubuntu.
Step 2: Install VoipNow Installer
For RHEL/AlmaLinux/Rocky:
sudo dnf install voipnowinstallerThis 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:
# 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/voipnowcontainerStep 3: Run Container Installation
# 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 \
--autoCommon 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:
podman logs -f VoipNowContainer Management
Start/Stop
# Stop container
podman stop VoipNow
# Start container
podman start VoipNow
# Restart container
podman restart VoipNow
# View status
podman ps -a | grep VoipNowView Logs
# All logs
podman exec VoipNow journalctl -f
# Specific service
podman exec VoipNow journalctl -u voipnow-cloud -f
# Errors only
podman exec VoipNow journalctl -p errShell Access
podman exec -ti VoipNow bashChange Admin Password
podman exec -ti VoipNow /usr/local/voipnow/bin/chadminpass.shUpgrade
❌ 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.
# 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
# Check logs
podman logs VoipNow
# Check resources
free -h
nprocReset everything
# Complete removal
podman stop VoipNow
podman rm VoipNow
podman volume rm $(podman volume ls -q | grep voipnow_)
# Reinstall
voipnowcontainer --autoGetting Help
For support, run:
voipnowcontainer --help