Setting Up a FreePBX 17 Development Environment
Objective of this document to capture all the required steps to set up Freepbx 17 Dev environment.
Please find below steps -
Step-1: Install the Debian 12 OS
Freepbx 17 is supported only on Debian 12, so you can use any one of the following method to install the Debian 12.
https://sangomakb.atlassian.net/wiki/spaces/FP/pages/295403538
Take any Virtual machine with Debian 12.
Step-2: Install the FreePBX 17
Install the Freepbx 17 by execute the install script as mentioned in FreePBX 17 Installation
Install script will download all the required dependent packages.
Step-3: Setup the GIT
Please ensure your system SSH
mkdir /usr/src/freepbx
cd /usr/src/freepbx
git clone ssh://git@git.freepbx.org/freepbx/framework.git
cd framework
git checkout release/13.0
./install_amp --insta |
GIT
FreePBX uses GIT, an open source version control system. If you are unfamiliar with GIT, you can learn more about it at Git .
FreePBX open source codebased is hosted at Github FreePBX
Supported Modules
Supported Modules are modules that are actively supported by the FreePBX development team and are supported by FreePBX's Sponsor, Sangoma Technologies, INC. They can be found in our standard GITHUB project FreePBX
Contributed Modules
Contributed modules are modules that have been submitted to the FreePBX development team to host, they are very inactive and sometimes don't have a developer attached to them. They can be found in our contributed modules project at FreePBX Contributed Modules
Initial Setup
Make sure you have added your SSH key to the GITHub account. Ref - Adding a new SSH key to your GitHub account - GitHub Docs
Navigate to /usr/src
cd /usr/src
Checkout the devtools repo into this starting location
git clone git@github.com:FreePBX/devtools.git
Navigate to inside the devtools repo
Install your default configuration settings to the config file (create a file in your home directory called .freepbxconfig and put the information below in it)
.freepbxconfig
Run the freepbx_git.php setup script. This script will download all of the repos from the FreePBX Project, excluding devtools, into /usr/src/ (unless you specify somewhere else using --directory). When prompted for your Username and Password, please use your FreePBX.org Username and Password.
Navigate to /usr/src/freepbx/framework
Run install with the '--dev-links' parameter.
Note you can add '-n' after '--dev-links', which will use secure defaults and passwords for all the services requred.
When you add the --dev-links parameter, this significantly and fundamentally changes the layout of your FreePBX machine. This parameter sets up symlinks throughout all of FreePBX and renders online module updates unreliable, at best! You should never do this on a production machine as it can easily cause significant and unexpected problems.
Receiving an Error?
This is caused because you have an existing installation of FreePBX and our installer will not override a real file with a symlink. To fix it we should, perform the following after backing up any changes you in /var/www/html:
Open /etc/freepbx.conf and get the database credentials (save them in a safe place)
Remove /etc/freepbx.conf & /etc/amportal.conf
Remove /var/www/html/
cd /usr/src/freepbx/framework
./install --dbuser=[username from /etc/freepbx.conf] --dbpass=[password from /etc/freepbx.conf] --dev-links
Maintenance
Updating Modules
Navigate to your devtools directory
Run freepbx_git with --refresh
Checking Out Modules from Contributed
Navigate to your devtools directory
Check out the module using the raw name (a list of modules can be seen here: http://git.freepbx.org/projects/FPBXCN