FreePBX 15 – Backup and Restore Rewrite

First, some history: we started development of the new backup and restore system in mid 2017. Some of the goals of that effort were to redesign the feature to allow for more simplicity, flexibility, and maintainability.

Some of the major reasons it was decided to rewrite include:
– There was no choice for backup on a per module basis.
– There was no option to restore the backup from an older version to a newer version.
– No choice of restoring only a particular module.

The redesign ended up being a new concept/structure of taking backup from the way it used to be. Each module handles its own backup and restore. This makes the QA process more complicated due to having to test each and every module and many combinations of modules.

New Backup & Restore functionality:

The new backup and restore functionality in Freepbx 15 is very simple and easy. Each module handles its own backup and restore implementation. It allows you to do backups per module – and 15 backup does only the data backup so it is very lightweight. Prior to 15, backup could potentially include not just configuration files and database information, but also could include FreePBX PHP files and other similar unnecessary additional program related data (depending on how a user constructed their backup templates). In FreePBX 15, we have also removed the backup templates concept from backup and restore to make the backup data selection process more simple and clear for users. We decided that the previous template system was overly complicated for what it was intended to do. If someone is not familiar with the details of which underlying applications and modules needed to be backed up, it was challenging to figure out how to properly construct a template for some particular part of the system. The new system simplifies the module selection interface and it allows you to restore any particular module from a full backup. So if users would like to backup or restore only one particular module, the new interface allows users to easily do so.

FreePBX 15 backup also allows you to restore from legacy backups. This means that people can take a backup from an older version of FreePBX (specifically versions 13 and 14) and restore to a FreePBX 15 system. This makes it easy for the users of FreePBX to migrate from older versions to a new or more current major version of FreePBX.

Backup storage options are now handled in the Filestore module which offers more options on where to store your backups. These options include local storage, remote FTP, SSH/SCP, Amazon’s S3, Email, and Dropbox.

As previously mentioned, due to the scope and complexity of these efforts, it required a much longer QA cycle to make sure it was ready to go (or ready enough). That being said, we hope it to be a lot more “baked” at release time than it would have been otherwise.

We hope you all are able to enjoy and try this new functionality out. As always, for any issues that are found, feel free to open a bug at issues.freepbx.org.

Thanks,
Philip Joseph