/* BEGIN BLOG-CLOSE-CHAT */ /* END BLOG-CLOSE-CHAT */

Installation

ICTPBX runs on Rocky Linux 8/9 with the following services pre-installed by the ICTCore installer.

Prerequisites

Requirement Version
OS Rocky Linux 8 or 9 (64-bit)
RAM 4 GB minimum, 8 GB recommended
Disk 40 GB minimum
CPU 2 cores minimum

Installation Steps

1. Run the ICTCore Installer

bash ictcore-install.sh

This installs: PHP 8.3, Apache, MariaDB, ICTCore, and configures the /api endpoint.

2. Run the ICTCore PBX + FreeSWITCH Installer

Follow the ICTCore PBX installation guide for Rocky Linux. After completion, FreeSWITCH and PostgreSQL will be running.

3. Deploy the Angular Frontend

Build the interface locally from the ictpbx-community-edition-gui repository, then copy the output to /usr/ictpbxx on the server. Replace the password and server address with your own.

# Build locally
NODE_OPTIONS='--max_old_space_size=3072' ng build --configuration production

# Upload the build (pscp on Windows, scp on Linux or macOS)
pscp.exe -pw "YOUR_PASSWORD" -r dist/ngx-admin/ root@YOUR_SERVER_IP:/usr/ictpbxx/

4. Configure Apache Virtual Host

Add an alias so /api maps to ICTCore:

Alias /api /usr/ictcore/wwwroot
DocumentRoot /usr/ictpbxx

5. Verify Services

systemctl status httpd freeswitch mariadb postgresql memcached

All five services should show active (running).

Post-Install

  • Set the admin password in /usr/ictcore/etc/ictcore.conf
  • Configure at least one SIP gateway under PBX → Gateways
  • Create your first tenant and tenant-admin user

Where the code lives

Everything this guide installs is open source. The PBX itself is ICTPBX Community Edition, built on ICTCore and FreeSWITCH, and the web interface you deployed in step 3 is the Angular front end from its own repository. If you would rather not run these steps by hand, the Ansible role does the same install unattended. Once it is up, the getting started guide takes you through the first tenant and gateway. Bugs and questions go to the issue tracker on the repository.