Profiles

A profile contains information about what files and folders will be backed-up, where the backup files will be saved, and when the backups will be created.

The settings for each profile are independant of other profiles. Create separate profiles for each set of data that you want to manage.

For example, you may want to create hourly snapshots for your documents and upload them to your DropBox account. You may also want to create weekly backups of your music collection and upload them to your Google Drive account. Creating separate profiles allows you to manage each set of data independantly.

Create

Start Baqpaq using the icon in Application Menu. Click the Create button to create a new profile.

First Run

A new profile has been created. You need to enter some information before it can be used.

profile_new

  • Change the name for profile. For example, “My Documents”
  • Enter a passphrase (or password).

profile_new_2

  • Select the destination path for backups. The selected folder must be empty. If there are any files in this path, you will get an error when you initialize the profile.
  • Click the Initialize button to create an empty data repository.

profile_new_3

profile_new_4_initialize_complete

An empty repository will be created as shown below. The file profile.json contains the settings for the profile. Other files in this folder are created by Borg.

Backup repository

Source List

  • Go to the Source section, and add the folders that you want to include in snapshots.

profile_new_5_source

profile_new_6_source

You can include your entire home directory (/home/<user>), or specific files and folders like your documents (/home/<user>/Documents) or Pictures (/home/<user>/Pictures).

The profile is now complete. We can go ahead and create our first snapshot. Close the Profile window and come back to the Main Window.

Notes

Repository format

Snapshots are saved using BorgBackup as the storage backend. BorgBackup is an popular open-source tool for creating backups.

Compression

You can select compression method from General tab. LZ4 is the fastest. ZStd gives better compression.

Changing compression method

When you create a snapshot the compression method will be applied to new data blocks that are added to backup repository. Changing the compression method does not re-compress existing data blocks.

Uncompressible data

Borg has an in-built heuristic to check if a block is compressible. Incompressible data blocks are saved without compression. The selected compression method will be applied only to data blocks that can be compressed.

User profiles

Each user on the system can create profiles for their own use. The files and folders included in the Source list must be accessible to the user that created the profile.

Admin profiles

If you wish to backup files and folders that you don’t have access for, then run Baqpaq as Admin (root user) and create a new profile.

Remove

To remove a profile, open the Manage Profiles window, and select the profile to be removed. Click the Remove button.

Remove Profile

Note

Removing a profile does not remove the backup files. This is for safety. The backup folder must be deleted manually to delete backups.

Import

Backups can be imported by selecting the backup folder. If the profile.json file is found, it will be imported. Otherwise, it will be treated as a normal Borg repository and imported as a new profile.

To import an existing profile, open the Manage Profiles window. Click the Import Profile button and select the folder that contains the backups.

profile_import

Profile settings need to be reviewed after import.

  • If you are importing the profile on a different system, then any paths added to the Source and Exclude sections may not exist on the new system. Check and update the paths if needed.
  • The passphrase field will be blank. The correct password needs to be entered. Click the Check button to verify if the passphrase is correct.

profile_passphrase

Profiles for each user are separate. You need to change permissions for the backup files if you are importing the profile as a different user.

For example, if you are logged-in as “sam” and import the profile with Baqpaq running as normal user, then the profile is owned by “sam”. Make sure that the files in the backup path are owned by “sam” as well.

You will get a prompt to update the file ownership when you import the profile. You can also do it manually with the following command.

sudo chown -R $USER:$USER /path/to/backup/folder

Review and modify other settings as needed.

Taking backup of app settings

If you are going to reinstall your system, save a copy of the folder /home/<user>/.config/baqpaq to a USB drive. Copy the folder back after re-installing the system. This will save you some time.

In case you forgot to save the folder, you need to import the profiles one-by-one on the new system. Use the Import button as described above to import each backup folder one-by-one.

Duplicate backup paths

Two profiles cannot use the same backup path. If you try to import a profile that uses the same backup path as another existing profile, then you will get an error while importing. Delete the existing profile and try importing again.

Passphrase

You need to provide the correct password again after importing a profile. Click the Check button to verify if the password is correct.

Always ensure to review the settings after import to avoid any problems.

Mount

Baqpaq uses BorgBackup as the storage backend. Borg stores the files in a opaque format in a data repository. To view the files and folders inside the repository, it needs to be mounted to a temporary path.

Click the Mount button in toolbar to mount all backups to a temporary folder.

mount_1

mount_profile

Click Open to view the contents in a file manager.

mount_folder

Copy any files and folders that you need and unmount the profile when you finish. Click the Unmount button to unmount the backups and return to the Main Window.

Note

Mounting a profile that has a large number of snapshots can result in poor performance while browsing the folders. It is recommended to mount a single snapshot instead of mounting the entire repository. You can double-click any snapshot in the list to mount it.

Note

The filesystem mounted in the temporary folder is virtual and read-only. The contents cannot be modified.

Caution

The profile will be in a locked state while mounted. Scheduled tasks will fail if it runs while the profile is locked. Close any open applications that are using the mounted files and unmount the profile after you finish.

Exclude Filters

Files and directories to exclude can be added to the Exclude section in Profile Settings. To exclude a file or directory, click the Add Files or Add Folders button and select the files or directories to exclude.

You can edit the entry after adding it by selecting and clicking the entry in the list. You can also add wildcard characters to match and exclude multiple items.

Pattern-Matching Syntax

Baqpaq uses the --patterns-from option provided by Borg with Fnmatch syntax. These patterns use a variant of shell pattern matching:

  *     matches any number of characters (including path separator)
  ?     matches any single character
  […]   matches any single character specified (including ranges like a-z)
  [!…]  matches any character not specified

Meta-characters must be wrapped in brackets for a literal match. For example, use [?] to match the literal character ?.

Note

* will match all characters (including the path separator /)

Trailing slash

  • To exclude both the directory and its content, add the path without a trailing slash (‘/’)
path/to/some/folder
  • To include the folder but exclude its content, add the path with a trailing slash (‘/’)
path/to/some/folder/

This is same as:

path/to/some/folder/*

Include item from excluded directory

  • To include an item from an excluded directory, prefix it with a plus sign (+).

For example, consider the following requirement.

Include folder A 
Exclude folder A/B 
Include file A/B/file.txt
Exclude all other files in A/B

In this case, the filters to add to the exclude list will look like this:

+ A/B/file.txt
- A/B 

Path Prefixes

Following prefixes can be used before the path:

+ include
- exclude
! exclude-norecurse

exclude-norecurse (!) is the default prefix if no prefix is specified. Borg will not recurse into the directory, and it will not look for matches inside the directory.

Use the exclude prefix (-) if you want to exclude the directory, but also include some specific items from inside the directory.

Style Prefix

  • You can switch to a shell-style syntax by adding the prefix sh:
sh:home/*/.thumbnails

Like fnmatch patterns these are similar to shell patterns. The difference is that * will match zero or more characters, except for the path separator (/). To match all characters, use **.

  • You can switch to a regular-expressions-style syntax by adding the prefix re:
re:^home/[^/]+\.tmp/

Syntax Reference

Please refer the Borg documentation for more information.