Backup
Create a backup
This guide walk you though the steps required to create a full backup of your installation.
Remember to automate and test the backup process and to have it run regularly. Having an automated and tested restoring process is also recommended.
Backup the configuration
On common setups, you need to backup the entire /etc/libretime
folder.
Backup the database
You need to backup the PostgreSQL database, which holds the entire data of your installation.
Here is an example to dump your PostgreSQL database to a plain text SQL file:
sudo -u postgres pg_dump --no-owner --no-privileges libretime > libretime.sql
We use the --no-owner
and --no-privileges
flags to ignore roles
and permissions details about the database. This can be useful when restoring
to database or role that have different names (e.g. airtime
to libretime
).
Please read the pg_dump
usage for additional details.
Backup the storage
You need to backup the entire file storage, which holds all the files of your installation.
The path to your storage is defined in the configuration file.
Restore a backup
Install or cleanup
If you are restoring a backup on a fresh system, we recommend that you first install LibreTime, and stop before the setup tasks.
If you are restoring a backup on an existing system, make sure to clean the old database and files storage.
Restore the configuration
Copy the backed configuration files back to the configuration folder.
If you are upgrading LibreTime, edit the configuration file to match the new configuration schema and update any changed values. See the configuration documentation for more details.
Restore the database
Restore the database by using the one of the following command depending on the format of you backup file:
# With a plain text SQL file
sudo -u libretime libretime-api dbshell < libretime.sql
# With a custom pg_dump format
sudo -u postgres pg_restore --no-owner --no-privileges --dbname=libretime libretime.dump
The libretime-api dbshell
command is a shortcut to the psql
command, and automatically passes the database access details (e.g. database name, user, password).
We use the --no-owner
and --no-privileges
flags to ignore roles
and permissions details about the database. This can be useful when restoring
to database or role that have different names.
If you are upgrading LibreTime, make sure to apply the database migration.
Restore the storage
Copy the entire backed file storage back to the storage path.
The path to your storage is defined in the configuration file.