Backups

Better safe than sorry.

Rootli offers different backup mechanics, which can be combined to guarantee the best possible protection from data loss.

  1. Using the cloud-provider's VM backup feature
  2. Using provider-independent incremental snapshots of user contents, website contents and databases
Do not rely solely on the cloud-provider's backup, as these backups are being deleted automatically if you accidentally delete your VM. Also, the backup of the databases might be incomplete or faulty.

Cloud provider backups

Enable the cloud provider's backup option to create daily backups of the entire VM that can be restored through the provider's backend. The restoration can either overwrite the existing server or create a new server.

Provider-independent snapshotting

You should opt-int for provider-independent snapshotting. Each backup is stored in a snapshot that is saved incrementally to avoid duplication and saves huge amounts of space. To activate this feature, you will need to create at least one storage backend for your project, a backup repository and a backup job.

  1. Storage backends: A storage backend is a SFTP-server or S3 bucket that actually stores the data
  2. Backup repositories: A backup repository belongs to a single server and consists of a password, which is being used to encrypt the backup and an attached storage backend.
  3. Backup jobs: Backup jobs are scheduled tasks that actually perform the snapshot and add it to the backup repository

Create backups

Storage backends

A storage backend is a remote storage system that can be hosted by your cloud provider or every other service that is available through the public internet. It must offer a SFTP login with password authentification. If you add a storage backend to a project, it can be used by all servers attached to this project.

After choosing your current project, head over to the settings section. Now, choose "Storage backends". Click "Add storage backend" and enter the required connection information.

Use a path (SFTP) or prefix (S3) to separate the rootli backup folders from other files that might be stored in the same storage backend. When choosing a prefix for S3, you can add a prefix like rootli to store backups in /rootli/<server-id>/<repository-id>. You may also nest the prefix deeper, e.g. rootli/backups, resulting in /rootli/backups/<server-id>/<repository-id>.

Backup jobs

Backup jobs are basically scheduled jobs that create a new snapshot of your data and store it in a backup repository. You can add a new backup job by heading over to a server's detail page. On that page, you will see the quick settings card. Click the "Backups"-button.

Now click the "Backup jobs" button to create a new job. On the backup jobs table, click the button to add a new backup job. You may now choose the schedule and contents to be saved.

Possible contents are

  • User content: /home
  • Websites: /var/www/vhosts, if the server has the Caddy Webserver role
  • Databases: /var/backups/rootli/mariadb/current - rootli will also ensure that databases are being dumped to this location before the backup job is being performed

As the last step, choose a backup repository. If no repository exists yet, add a new one.

Backup repositories

A backup repository is a place that is being used to actually store the backups in. It requires a name, a password, as backups need to be encrypted and a storage backend to physically store the backups.

The easiest way to create a backup repository is to head over to the server's backup configuration as described in the configuration manual. After first setup, you will see the local backup repository, if you enabled local server backups during server creation.

Use the input field to enter a new name and choose "Create ..." by pressing the key. In the new drawer, choose a name and a password for your new repository. The last step is to choose a .

You should use a password safe to store the chosen password, as it is required to decrypt backups later. There is no way to update or view the password if you forgot the repository password.

Restore backups

Of course, we are going to integrate the restoration process into the UI and CLI. For now, the easiest way to view and restore backups is to use the Kopia UI app.

To get started, head over to the repositories tab and choose "SFTP Server" or "Amazon S3 or Compatible Storage". Enter connection data, the path to your repository and the repository password.

To avoid side effects, each repository is stored at /<path>/<server-id>/<repository-id> (SFTP) or /prefix/<server-id>/<repository-id> (S3). We are going to provide the required information in a more convenient way. For now, you could use a SFTP tool to browse your remote storage.