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.