Sauvegarder et déplacer Weblate

Sauvegarde au niveau Projet

Ajouté dans la version 4.14.

Avertissement

La restauration de sauvegarde est seulement supportée lorsque PostgreSQL ou MariaDB 10.5+ sont utilisées comme base de données.

Le projet sauvegarde tout le contenu de taduction depuis Weblate (projet, composants, traductions, commentaires de chaînes, suggestions et vérifications). Il est approprié pour transférer un projet vers une autre instance de Weblate.

Vous pouvez effectuer une sauvegarde du projet GérerSauvegardes. La sauvegarde peut être restaurée à la création d’un projet (Voir Ajouter un projet).

Actuellement, les sauvegardes n’incluent pas les informations et l’historique du contrôle d’accès.

Les commentaires et les suggestions sont accompagnés du nom d’utilisateur de l’utilisateur qui les a créés. Lors de l’importation, ils sont attribués à un utilisateur correspondant. S’il n’y a pas d’utilisateur avec ce nom d’utilisateur, ils sont attribués à un utilisateur anonyme.

Les sauvegardes générées sont conservées sur le serveur comme configuré par PROJECT_BACKUP_KEEP_DAYS et PROJECT_BACKUP_KEEP_COUNT (par défaut, 3 sauvegardes au maximum sont conservées pendant 30 jours).

Utiliser le fichier généré pour importer le projet quand Ajouter des projets et des composant de traduction.

Note

Restoring of the backup might fail if the restoring server has different set of Définitions de langue or different configuration of SIMPLIFY_LANGUAGES. The restore will tell you which language codes could not be processed and you can then add missing language definitions manually.

Sauvegarde automatique avec BorgBackup

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.webp

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

borg init

Personnalisation de la sauvegarde

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 :

  1. Souscrivez au Service de sauvegarde sur https://weblate.org/support/#backup.

  2. Entrez la clé obtenue dans l’interface de gestion, voir Intégration de l’assistance.

  3. Weblate se connecte au service cloud pour obtenir les informations d’accès pour les sauvegardes.

  4. Activez la nouvelle configuration de sauvegarde sur l’onglet Backups.

  5. 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

Lorsque vous utilisez Weblate dans Docker, veuillez vous assurer que l’emplacement des sauvegardes est exposé en tant que volume depuis le conteneur Weblate. Sinon, les sauvegardes seront rejetées par Docker lors du redémarrage du conteneur dans lequel il se trouve.

Une option consiste à placer les sauvegardes dans un volume existant, par exemple /app/data/borgbackup. Il s’agit d’un volume existant dans le conteneur.

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 :

  1. Préparez un serveur où seront stockées vos sauvegardes.

  2. Installez le serveur SSH dessus (vous l’aurez par défaut avec la plupart des distributions Linux).

  3. Installez BorgBackup sur ce serveur ; la plupart des distributions Linux disposent des paquets nécessaires (voir Installation).

  4. Choisissez un utilisateur existant ou créez-en un nouveau qui sera utilisé pour les sauvegardes.

  5. Ajoutez la clé SSH de Weblate à l’utilisateur pour que Weblate puisse se connecter en SSH au serveur sans mot de passe (voir Clé SSH Weblate).

  6. Configurez l’emplacement de la sauvegarde dans Weblate comme user@host:/path/to/backups ou ssh://user@host:port/path/to/backups.

Indication

Espace de sauvegarde provisionné par Weblate offre des sauvegardes distantes automatiques sans effort.

Restaurer une sauvegarde depuis BorgBackup

  1. Restaurer l’accès au répertoire de sauvegarde et préparer la phrase de passe.

  2. Lister toutes les sauvegardes existantes sur le serveur avec borg list REPOSITORY.

  3. Restaurer la sauvegarde désirée dans le répertoire courant avec borg extract REPOSITORY::ARCHIVE.

  4. 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).

  5. Copier la configuration de Weblate backups/settings.py. Voir :ref:`backup-dumps. Pour la localisation exacte voir 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).

  6. Copier entièrement le répertoire de donnés vers la destination configurée dans :settings:`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.

La session Borg doit ressembler à :

$ 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

borg list, borg extract

Sauvegarde manuelle

En fonction de ce que vous souhaitez sauver, sauvegardez le type de données que Weblate stocke à chaque endroit.

Indication

Si vous faites des sauvegardes manuelles, vous pouvez désactiver les avertissements de Weblate à propos de l’absence de sauvegarde en ajoutant weblate.I028 à SILENCED_SYSTEM_CHECKS dans settings.py ou WEBLATE_SILENCED_SYSTEM_CHECKS pour 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

La base de données est le stockage le plus important. Configurez des sauvegardes régulières de votre base de données, sinon toutes vos traductions pourraient partir en fumée.

Sauvegarde native de base de données

L’approche recommandée est de dumper la base de donnés avec des outils natifs tels que pg_dump ou mysqldump. C’est généralement plus efficace que les sauvegardes Django et les restaurations des tables contiennent toutes les données.

Vous pourrez restaurer cette sauvegarde dans une version ultérieure de Weblate, toutes les migrations nécessaires seront effectuées dans migrate. Merci de consulter Mise à niveau de Weblate pour plus d’informations détaillées sur la manière de passer d’une version à une autre.

Sauvegarde de base de données Django

Alternativement vous pouvez sauvegarder vootre base de données avec la commande Django  dumpdata. Cette façon de sauvegarder est agnostique au moteur de base de donnés et peut être utilisée si jamais vous souhaitez changer de serveur de base de données.

Avant de restaurer vous devez utiliser exactement la même version de Weblate que celle utilisée au moment de la sauvegarde. C’est nécessaire car la structure de la base de données change d’une version à l’autre et sinon vous risquez de finir avec des données corrompues. Après avoir installé la même version, exécutez une migration de la base de données avec migrate.

Cela fait, certaines entrées seront déjà créées dans la base de données et vous les aurez également dans la sauvegarde de la base de données. L’approche recommandée est de supprimer ces entrées manuellement en utilisant le shell de gestion (voir Invoking management commands) :

weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()

Fichiers

Si vous avez suffisamment d’espace de sauvegarde, sauvegardez simplement tout le DATA_DIR. C’est un pari sûr, même si cela inclut des fichiers dont vous ne voulez pas. Les sections suivantes décrivent en détail ce que vous devez sauvegarder et ce que vous pouvez ignorer.

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 dans settings-expanded.py).

  • La sauvegarde de la base de données PostgreSQL comme database.sql.

  • Vidage de l’environnement dans environment.yml.

Les sauvegardes des bases de données sont faites par défaut en mode texte, mais elles peuvent aussi être compressées ou entièrement ignorées en utilisant 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 with no data loss.

Clés SSH et PGP

Stocké dans DATA_DIR /ssh et DATA_DIR /home.

Si vous utilisez des clés SSH ou GPG générées par Weblate, vous devez sauvegarder ces emplacements, sinon vous perdrez les clés privées et devrez en regénérer de nouvelles.

Fichiers téléversés par les utilisateurs

Stocké dans DATA_DIR /media.

Vous devez sauvegarder tous les fichiers téléversés par les utilisateurs (p. ex. Visual context for strings).

Tâches Celery

La file d’attente des tâches Celery peut contenir quelques informations, mais n’est généralement pas nécessaire pour une sauvegarde. Tout au plus, vous perdrez les mises à jour qui n’ont pas encore été traitées dans la mémoire de traduction. Il est recommandé d’effectuer les mises à jour de texte intégral ou du référentiel lors de la restauration de toute façon, de sorte qu’il n’y ait aucun problème à les perdre.

Sauvegarde manuelle en ligne de commande

Vous pouvez utiliser une tâche cron pour exécuter une commande bash chaque jour. Par exemple :

$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret

Vous pouvez ajuster la liste des dossiers et des fichiers selon vos besoins. Par exemple, pour éviter de sauvegarder la mémoire de traduction (dans le dossier des sauvegardes), vous pouvez utiliser :

$ 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

  1. Restaurer toutes les données que vous avez sauvegardées.

  2. 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.