1000 FAQs, 500 tutorials and explanatory videos. Here, there are only solutions!
Back up a web hosting with Restic on Swiss Backup (Swift)
This guide details how to save data from your web hostings (Starter, shared, or Managed Cloud Server) using the restic application via the OpenStack Swift protocol on Swiss Backup, the backup solution in an independent Swiss cloud.
Preamble
- Other solutions exist to back up your web data: refer to this other guide.
- The various services offered by Infomaniak are all compatible with the corresponding standard protocols (S3/Swift for storage, for example), therefore if you encounter a problem with third-party software, contact its publisher or a Partner and consult the support policy as well as article 11.9 of the Infomaniak Terms of Service.
Install Restic
Prerequisites
- Use a web hosting.
- Have a Swiss Backup space with available device quota (minimum 1) for a Cloud Backup.
- Add 1 device of type Cloud to obtain the OpenStack Swift parameters.
To do this:
Download the linux_amd64 binary from the restic github repository:
uid@h2web:~$ wget -O restic.bz2 https://github.com/restic/restic/releases/download/v0.14.0/restic_0.14.0_linux_amd64.bz2⚠️ The download link may vary with the release of a new version; version 0.14 uses default compression.
Unzip the archive and make the binary executable:
uid@h2web:~$ bunzip2 restic.bz2 uid@h2web:~$ chmod +x restic
Configure Restic
Creation of an encryption key to encrypt the data
- The key cannot be changed and in case of loss, the data will no longer be readable.
- Place this key in a file readable by Restic.
Example of key generation:
uid@h2web:~$ openssl rand -base64 16 > restickey
Configuration of restic
To configure the backup:
Create a resticconfig file with the following content to be adapted according to your device-specific information:
echo "export OS_AUTH_URL=https://swiss-backupXX.infomaniak.com/identity/v3 export OS_REGION_NAME=RegionOne export OS_PROJECT_NAME=sb_project_SBI-XXXX export OS_PASSWORD='' export OS_USER_DOMAIN_NAME=default export OS_USERNAME=SBI-XXXX export OS_PROJECT_DOMAIN_NAME=default export RESTIC_REPOSITORY=swift:sb_project_SBI-XXXX:/ export RESTIC_PASSWORD_FILE=restickey" > resticconfOS_AUTH_URLCluster access URL (1)OS_PROJECT_NAMEandOS_USERNAMEreplace SBI-XXXX with your identifierOS_PASSWORDreplace with the password generated during activationRESTIC_REPOSITORY- replace SBI-XXXX with your identifier
- replace the
bucket namewith the name you want to give to your container that stores the backups
RESTIC_PASSWORD_FILEreplace with the full path to the file containing the encryption key
Load the Restic configuration by running the following command:
source resticconfInitialize the bucket with the following command:
uid@h2:~$ ./restic -r $RESTIC_REPOSITORY init
(1) The indication "//swiss-backup02", "//swiss-backup03" etc. changes depending on the cluster number indicated in the Manager under "Cloud Storage Information" in "Location"; and if your Swiss Backup device was created before October 2020, you will need to use https://swiss-backup.infomaniak.com/identity/v3
Backup your files
To back up your files, simply run the following command:
uid@h2:~$ ./restic backup
#exemple pour sauvegarder l'ensemble d'un hébergement
uid@h2:~$ ./restic backup ./
#exemple pour sauvegarder le dossier sites
uid@h2:~$ ./restic backup sites/The first snapshot takes a long time (several hours depending on the amount of data) because all files are copied, while the subsequent ones will use the differential principle.
Backup databases
Restic can read data from stdin to record the output of a program.
Use the following command to back up an individual MySQL database:
mysqldump --databases nom_de_la_base_de_données -u utilisateur_de_la_base_de_données -p | restic backup --stdin --stdin-filename database_dump.sql To back up all databases, run the mysqldump command to extract all databases from the server, then redirect the output to Restic:
mysqldump -u utilisateur_de_la_base_de_données -p --all-databases | restic backup --stdin --stdin-filename all_databases.sql List backups
To list your backups, you can use the following command:
uid@h2:~$ ./restic snapshots Restore a backup
You can restore a backup with the following command:
uid@h2:~$ ./restic restore --target Automate
On Serveur Cloud, it is possible to add a cron task to automate the launch of the backup.
This option is not available on a shared hosting.