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.

  1. Step By Step Debian 12 Installation

  2. 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

  1. Make sure you have added your SSH key to the GITHub account. Ref - Adding a new SSH key to your GitHub account - GitHub Docs

  2. Navigate to /usr/src

    cd /usr/src
  3. Checkout the devtools repo into this starting location

    git clone git@github.com:FreePBX/devtools.git
  4. Navigate to inside the devtools repo

  5. 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

  6. 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.

  7. Navigate to /usr/src/freepbx/framework

  8. 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:

  1. Open /etc/freepbx.conf and get the database credentials (save them in a safe place)

  2. Remove /etc/freepbx.conf & /etc/amportal.conf

  3. Remove /var/www/html/

  4. cd /usr/src/freepbx/framework

  5. ./install --dbuser=[username from /etc/freepbx.conf] --dbpass=[password from /etc/freepbx.conf] --dev-links

Maintenance

Updating Modules

  1. Navigate to your devtools directory

  2. Run freepbx_git with --refresh

Checking Out Modules from Contributed

  1. Navigate to your devtools directory

  2. Check out the module using the raw name (a list of modules can be seen here: FreePBX

 

Return to Documentation Home I Return to Sangoma Support