Sauvegarder et déplacer Weblate
Project level backups
Nouveau dans la version 4.14.
Avertissement
Restoring backups is only supported when using PostgreSQL or MariaDB 10.5+ as a database.
The project backups all translation content from Weblate (project, components, translations, string comments, suggestions or checks). It is suitable for transferring a project to another Weblate instance.
You can perform a project backup in Manage ↓ Backups. The backup can be restored when creating a project (see Adding translation projects and components).
The backups currently do not include access control information and history.
The comments and suggestions are backed up with an username of user who did create them. Upon import it is assigned to a matching user. If there is no user with such username, it is assigned to anonymous user.
The generated backups are kept on the server as configured by
PROJECT_BACKUP_KEEP_DAYS
and PROJECT_BACKUP_KEEP_COUNT
(it defaults to keep at most 3 backups for 30 days).
Sauvegarde automatique avec BorgBackup
Nouveau dans la version 3.9.
Weblate est conçu pour supporter la création de services de sauvegarde avec BorgBackup. Borg crée des sauvegardes chiffrées pouvant être stockées en sécurité dans le cloud. Ces sauvegardes peuvent être contrôlées depuis l’onglet Backups de l’interface de gestion.
Modifié dans la version 4.4.1: Les bases de données PostgreSQL et MySQL/MariaDB sont incluses dans les sauvegardes automatisées.
Les sauvegardes avec Borg sont incrémentales et Weblate est configuré pour conserver les sauvegardes suivantes :
Sauvegardes quotidiennes des 14 derniers jours
Sauvegardes hebdomadaires sur 8 semaines
Sauvegardes mensuelles des 6 derniers mois
![../_images/backups.png](../_images/backups.png)
Clé de chiffrement Borg
BorgBackup crée des sauvegardes chiffrées et, sans phrase de passe, vous ne serez pas en mesure de les restaurer. La phrase de passe est générée à l’ajout d’un nouveau service de sauvegarde. Vous devriez la copier et la conserver en lieu sûr.
Si jamais vous utilisez Espace de sauvegarde provisionné par Weblate, merci de sauvegarder aussi votre clé SSH privée – elle est utilisée pour accéder à vos sauvegardes.
Voir aussi
Personnalisation de la sauvegarde
La sauvegarde de la base de données peut être configurée avec
DEFAULT_ACCESS_CONTROL
.La création de la sauvegarde peut être personnalisée en utilisant
BORG_EXTRA_ARGS
.
Espace de sauvegarde provisionné par Weblate
La manière la plus simple de sauvegarder votre instance Weblate est de s’offrir le service de sauvegarde de weblate.org. La procédure d’activation peut être effectuée en quelques étapes :
Souscrivez au Service de sauvegarde sur https://weblate.org/support/#backup.
Entrez la clé obtenue dans l’interface de gestion, voir Intégration de l’assistance.
Weblate se connecte au service cloud pour obtenir les informations d’accès pour les sauvegardes.
Activez la nouvelle configuration de sauvegarde sur l’onglet Backups.
Sauvegarder les identifiants Borg pour être en mesure de restaurer les sauvegardes. Voir : ref:borg-keys.
Indication
L’étape manuelle d’activation est nécessaire pour votre sécurité. Sans votre consentement, aucune donnée n’est envoyée au dépôt de sauvegarde obtenu par la procédure d’inscription.
Utiliser un espace de stockage personnalisé
Vous pouvez aussi utiliser votre propre espace de stockage pour vos sauvegardes. SSH peut être utilisé pour stocker les sauvegardes à distance ; dans ce cas, BorgBackup doit être installé sur le serveur cible.
Voir aussi
General dans la documentation de Borg
Système de fichiers local
Il est recommandé de spécifier le chemin absolu de la sauvegarde locale, par exemple /chemin/vers/la/sauvegarde. L’utilisateur qui fait tourner Weblate doit avoir les permissions d’écriture sur le répertoire. Voir Permissions du système de fichiers. Si le répertoire n’existe pas, Weblate essayera de le créer, mais devra disposer des permissions nécessaires pour ce faire.
Indication
When running Weblate in Docker, please ensure the backup location is exposed as a volume from the Weblate container. Otherwise the backups will be discarded by Docker upon restarting the container it is in.
One option is to place backups into an existing volume, for example
/app/data/borgbackup
. This is an existing volume in the container.
Vous pouvez aussi ajouter un nouveau conteneur pour les sauvegardes dans le fichier Docker Compose et utiliser par exemple /borgbackup
:
services:
weblate:
volumes:
- /home/weblate/data:/app/data
- /home/weblate/borgbackup:/borgbackup
Le répertoire où seront enregistrées les sauvegardes doit avoir pour propriétaire UID 1000, sinon Weblate ne sera pas en mesure d’y écrire les sauvegardes.
Sauvegardes à distance
Pour créer des sauvegardes distantes, vous devrez installer BorgBackup sur un autre serveur accessible par votre déploiement Weblate via SSH en utilisant la clé SSH de Weblate :
Préparez un serveur où seront stockées vos sauvegardes.
Installez le serveur SSH dessus (vous l’aurez par défaut avec la plupart des distributions Linux).
Installez BorgBackup sur ce serveur ; la plupart des distributions Linux disposent des paquets nécessaires (voir Installation).
Choisissez un utilisateur existant ou créez-en un nouveau qui sera utilisé pour les sauvegardes.
Ajoutez la clé SSH de Weblate à l’utilisateur pour que Weblate puisse se connecter en SSH au serveur sans mot de passe (voir Weblate SSH key).
Configure the backup location in Weblate as
user@host:/path/to/backups
orssh://user@host:port/path/to/backups
.
Indication
Espace de sauvegarde provisionné par Weblate offre des sauvegardes distantes automatiques sans effort.
Voir aussi
Restaurer une sauvegarde depuis BorgBackup
Restaurer l’accès au répertoire de sauvegarde et préparer la phrase de passe.
Lister toutes les sauvegardes existantes sur le serveur avec
borg list REPOSITORY
.Restore the desired backup to the current directory using
borg extract REPOSITORY::ARCHIVE
.Restaurer la base de données depuis un dump SQL place dans le répertoire
backup
dans le répertoire de données de Weblate. Voir Données supprimées pour les sauvegardes).Copy the Weblate configuration (
backups/settings.py
, see Données supprimées pour les sauvegardes) to the correct location, see Ajuster la configuration.Lorsque vous utilisez un conteneur Docker, le fichier de paramètres est déjà inclus dans le conteneur et vous devez restaurer les variables d’environnement d’origine. Le fichier
environment.yml
peut vous y aider (voir Données supprimées pour les sauvegardes).Copy the whole restored data dir to the location configured by
DATA_DIR
.Lorsque vous utilisez le conteneur Docker, placez les données dans le volume de données, voir Docker container volumes.
Assurez-vous que le propriétaire et les permissions des fichiers sont corrects, voir Permissions du système de fichiers.
The Borg session might look like this:
$ borg list /tmp/xxx
Enter passphrase for key /tmp/xxx:
2019-09-26T14:56:08 Thu, 2019-09-26 14:56:08 [de0e0f13643635d5090e9896bdaceb92a023050749ad3f3350e788f1a65576a5]
$ borg extract /tmp/xxx::2019-09-26T14:56:08
Enter passphrase for key /tmp/xxx:
Voir aussi
Sauvegarde manuelle
Depending on what you want to save, back up the type of data Weblate stores in each respective place.
Indication
If you are doing the manual backups, you might want to
silence Weblate’s warning about a lack of backups by adding weblate.I028
to
SILENCED_SYSTEM_CHECKS
in settings.py
or
WEBLATE_SILENCED_SYSTEM_CHECKS
for Docker.
SILENCED_SYSTEM_CHECKS.append("weblate.I028")
Base de données
La destination de stockage utilisée dépend de la configuration de votre base de données.
Indication
The database is the most important storage. Set up regular backups of your database. Without the database, all the translations are gone.
Sauvegarde native de base de données
The recommended approach is to save a dump of the database using database-native tools such as pg_dump or mysqldump. It usually performs better than Django backup, and it restores complete tables with all their data.
You can restore this backup in a newer Weblate release, it will perform all the
necessary migrations when running in migrate
. Please consult
Mise à niveau de Weblate on more detailed info on how to upgrade between versions.
Sauvegarde de base de données Django
Alternatively, you can back up your database using Django’s dumpdata
command. That way the backup is database agnostic and can be used in case you
want to change the database backend.
Prior to restoring the database you need to be running exactly the same Weblate
version the backup was made on. This is necessary as the database structure does
change between releases and you would end up corrupting the data in some way.
After installing the same version, run all database migrations using
migrate
.
Afterwards some entries will already be created in the database and you will have them in the database backup as well. The recommended approach is to delete such entries manually using the management shell (see Invoking management commands):
weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()
Fichiers
If you have enough backup space, simply back up the whole DATA_DIR
. This
is a safe bet even if it includes some files you don’t want.
The following sections describe what you should back up and what you
can skip in detail.
Données supprimées pour les sauvegardes
Modifié dans la version 4.7: The environment dump was added as environment.yml
to help in
restoring in the Docker environments.
Stocké dans DATA_DIR
/backups
.
Weblate dépose diverses données ici, et vous pouvez inclure ces fichiers pour des sauvegardes plus complètes. Les fichiers sont mis à jour quotidiennement (nécessite un serveur Celery beats fonctionnel, voir Background tasks using Celery). Actuellement, ceci inclut :
Les paramètres Weblate comme
settings.py
(il existe aussi une version étendue danssettings-expanded.py
).La sauvegarde de la base de données PostgreSQL comme
database.sql
.Environment dump as
environment.yml
.
The database backups are saved as plain text by default, but they can also be compressed
or entirely skipped using DATABASE_BACKUP
.
To restore the database backup load it using database tools, for example:
psql --file=database.sql weblate
Dépôts des contrôles de version
Stockés dans DATA_DIR
/vcs
.
The version control repositories contain a copy of your upstream repositories with Weblate changes. If you have Pousser lors du commit enabled for all your translation components, all Weblate changes are included upstream. No need to back up the repositories on the Weblate side as they can be cloned again from the upstream location(s) with no data loss.
Clés SSH et PGP
Stocké dans DATA_DIR
/ssh
et DATA_DIR
/home
.
If you are using SSH or GPG keys generated by Weblate, you should back up these locations. Otherwise you will lose the private keys and you will have to regenerate new ones.
Fichiers téléversés par les utilisateurs
Stocké dans DATA_DIR
/media
.
You should back up all user uploaded files (e.g. Visual context for strings).
Tâches Celery
The Celery task queue might contain some info, but is usually not needed for a backup. At most you will lose updates not yet been processed to translation memory. It is recommended to perform the fulltext or repository update upon restoration anyhow, so there is no problem in losing these.
Voir aussi
Sauvegarde manuelle en ligne de commande
Using a cron job, you can set up a Bash command to be executed on a daily basis, for example:
$ XZ_OPT="-9" tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret
The string between the quotes after XZ_OPT allows you to choose your xz options, for instance the amount of memory used for compression; see https://linux.die.net/man/1/xz
You can adjust the list of folders and files to your needs. To avoid saving the translation memory (in backups folder), you can use:
$ XZ_OPT="-9" tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups/database.sql backups/settings.py vcs ssh home media fonts secret
Restaurer une sauvegarde mauelle
Restaurer toutes les données que vous avez sauvegardées.
Mettre à jour tous les répertoires en utilisant
updategit
.weblate updategit --all
Déplacer une installation Weblate
Relocate your installation to a different system by following the backing up and restoration instructions above.