Weblate sichern und verschieben¶
Sicherungen auf Projektebene¶
Added in version 4.14.
Das Projekt sichert alle Übersetzungsinhalte von Weblate (Projekt, Komponenten, Übersetzungen, Zeichenkette-Kommentare, Vorschläge oder Qualitätsprüfungen). Es ist geeignet, um ein Projekt auf eine andere Weblate-Instanz zu übertragen.
Sie können eine Projektsicherung in Operationen ↓ Sicherungen durchführen. Die Sicherung kann beim Erstellen eines Projekts wiederhergestellt werden (siehe Übersetzungsprojekte und Komponenten hinzufügen).
Die Sicherungen enthalten derzeit keine Informationen über die Zugriffssteuerung und den Verlauf.
The comments and suggestions are backed up with the username of the 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.
Die erzeugten Sicherungen werden auf dem Server aufbewahrt, wie durch PROJECT_BACKUP_KEEP_DAYS und PROJECT_BACKUP_KEEP_COUNT konfiguriert (standardmäßig werden maximal 3 Sicherungen für 30 Tage aufbewahrt).
Import validation of uploaded project backups can be tuned using
PROJECT_BACKUP_IMPORT_MAX_MEMBERS,
PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE,
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE,
PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE, and
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO.
Verwenden Sie die erzeugte Datei, um das Projekt bei Übersetzungsprojekte und Komponenten hinzufügen oder in import_projectbackup.
Bemerkung
Das Wiederherstellen der Sicherung kann fehlschlagen, wenn der wiederherstellende Server einen anderen Satz von Sprachdefinitionen oder eine andere Konfiguration von SIMPLIFY_LANGUAGES hat. Bei der Wiederherstellung wird Ihnen mitgeteilt, welche Sprachcodes nicht verarbeitet werden konnten, und Sie können dann die fehlenden Sprachdefinitionen manuell hinzufügen.
Automatisierte Datensicherung mit BorgBackup¶
Weblate bietet integrierte Unterstützung für das Erstellen von Sicherungen mit BorgBackup. Borg erstellt platzsparende verschlüsselte Sicherungen, die sicher in der Cloud gespeichert werden können. Die Sicherungen können in der Verwaltungsoberfläche über den Reiter Sicherungen gesteuert werden.
Geändert in Version 4.4.1: PostgreSQL-Datenbanken sind in den automatischen Sicherungen enthalten.
Die Sicherungen mit Borg sind inkrementell, und Weblate ist so konfiguriert, dass die folgenden Sicherungen beibehalten werden:
Tägliche Sicherungen der letzten 14 Tage
Wöchentliche Sicherungen der letzten 8 Wochen
Monatliche Sicherungen der letzten 6 Monate
Borg-Verschlüsselungsschlüssel¶
BorgBackup erstellt verschlüsselte Sicherungen, die Sie ohne die Passphrase nicht wiederherstellen können. Die Passphrase wird beim Hinzufügen eines neuen Sicherungsdienstes generiert und Sie sollten diese kopieren und an einem sicheren Ort aufbewahren.
Wenn Sie Von Weblate bereitgestellter Sicherungsspeicher verwenden, sichern Sie bitte auch Ihren privaten SSH-Schlüssel, da dieser für den Zugriff auf Ihre Sicherungen verwendet wird.
Siehe auch
Sicherung anpassen¶
Die Datenbanksicherung kann über
DATABASE_BACKUPkonfiguriert werden.Die Erstellung von Sicherungskopien kann mit
BORG_EXTRA_ARGSangepasst werden.
Von Weblate bereitgestellter Sicherungsspeicher¶
Der einfachste Weg, Ihre Weblate-Instanz zu sichern, ist der Erwerb des Sicherungsdienst unter weblate.org. So bringen Sie ihn zum Laufen:
Erwerben Sie den Sicherungsdienst auf https://weblate.org/support/#backup.
Geben Sie den erhaltenen Schlüssel in die Verwaltungsoberfläche ein, siehe Support integrieren.
Weblate stellt eine Verbindung zum Cloud-Dienst her und erhält die Zugangsdaten für die Sicherungen.
Aktivieren Sie die neue Sicherungskonfiguration auf der Reiterkarte Sicherungen.
Sichern Sie Ihre Borg-Zugangsdaten, um die Sicherungen wiederherstellen zu können, siehe Borg-Verschlüsselungsschlüssel.
Hinweis
Der manuelle Schritt, alles einzuschalten, dient Ihrer Sicherheit. Ohne Ihre Zustimmung werden keine Daten an das Sicherungs-Repository gesendet, welches Sie durch den Registrierungsprozess erhalten haben.
Eigener Sicherungsspeicher verwenden¶
Sie können auch Ihren eigenen Speicher für die Sicherungen verwenden. SSH kann verwendet werden, um Sicherungen im Remote-Ziel zu speichern, der Zielserver muss BorgBackup installiert haben.
Siehe auch
General in der Borg-Dokumentation
Lokales Dateisystem¶
Es wird empfohlen, den absoluten Pfad für die lokale Sicherung anzugeben, zum Beispiel /path/to/backup. Das Verzeichnis muss für den Benutzer, unter dem Weblate läuft, beschreibbar sein (siehe Dateisystemberechtigungen). Existiert es nicht, versucht Weblate, es zu erstellen, benötigt dafür aber die entsprechenden Berechtigungen.
Hinweis
Wenn Sie Weblate in Docker ausführen, stellen Sie bitte sicher, dass der Speicherort der Sicherung vom Weblate-Container als Volume freigegeben wird. Andernfalls werden die Sicherungen beim Neustart des Containers, in dem sie sich befinden, von Docker verworfen.
Eine Möglichkeit ist, Sicherungen in ein bestehendes Volume zu legen, zum Beispiel /app/data/borgbackup. Dies ist ein vorhandenes Volume im Container.
Sie können auch einen neuen Container für die Sicherungen in der Docker-Compose-Datei hinzufügen, indem Sie beispielsweise /borgbackup verwenden:
services:
weblate:
volumes:
- /home/weblate/data:/app/data
- /home/weblate/borgbackup:/borgbackup
The directory where backups will be stored has to be owned by UID 1000, otherwise Weblate won’t be able to write the backups there.
Remote-Sicherungen¶
Um Remote-Sicherungen zu erstellen, müssen Sie BorgBackup auf einem anderen Server installieren, der für Ihre Weblate-Installation über SSH mit dem Weblate-SSH-Schlüssel erreichbar ist:
Bereiten Sie einen Server vor, auf dem Ihre Sicherungen gespeichert werden sollen.
Installieren Sie den SSH-Server darauf (bei den meisten Linux-Distributionen erhalten Sie ihn standardmäßig).
Installieren Sie BorgBackup auf diesem Server; für die meisten Linux-Distributionen sind Pakete verfügbar (siehe Installation).
Wählen Sie einen vorhandenen Benutzer oder erstellen Sie einen neuen Benutzer, der für die Sicherung verwendet werden soll.
Fügen Sie den SSH-Schlüssel von Weblate in die Datei .ssh/authorized_keys des Benutzers ein, damit Weblate ohne Passwort per SSH auf den Server zugreifen kann (siehe Weblate-SSH-Schlüssel).
Erstellen Sie ein vom Benutzer beschreibbares Verzeichnis, in dem Weblate das Borg-Sicherungs-Repository aus der Ferne einrichten kann, z. B. im Basisverzeichnis (d. h.
/home/borg/backups).Konfigurieren Sie den Speicherort der Sicherung in Weblate als
user@host:/home/borg/backupsoderssh://user@host:port/home/borg/backups.Einmal aktiviert, werden die Sicherungen täglich automatisch ausgelöst. Sie können eine Sicherung auch manuell über die Weblate-Bedienoberfläche oder über backup auslösen.
Hinweis
Von Weblate bereitgestellter Sicherungsspeicher bietet Ihnen automatisierte Remote-Sicherungen ohne jeglichen Aufwand.
Siehe auch
Aus BorgBackup wiederherstellen¶
Stellen Sie den Zugriff auf Ihr Sicherungs-Repository wieder her und bereiten Sie Ihre Sicherungspassphrase vor.
Listen Sie mit
borg list REPOSITORYalle Sicherungen auf dem Server auf.Stellen Sie die gewünschte Sicherung mit
borg extract REPOSITORY::ARCHIVEin das aktuelle Verzeichnis wieder her.Stellen Sie die Datenbank aus dem SQL-Auszug wieder her, der sich im Verzeichnis
backupim Weblate-Datenverzeichnis befindet (siehe Ausgegebene Daten für Sicherungen).Kopieren Sie die Weblate-Konfiguration (
backups/settings.py, siehe Ausgegebene Daten für Sicherungen) an den richtigen Ort, siehe Konfiguration anpassen.Beim Verwenden von Docker-Containern ist die Einstellungsdatei bereits im Container enthalten und Sie sollten die ursprünglichen Umgebungsvariablen wiederherstellen. Die Datei
environment.ymlkann Ihnen dabei helfen (siehe Ausgegebene Daten für Sicherungen).Kopieren Sie das gesamte wiederhergestellte Datenverzeichnis an den mit
DATA_DIRkonfigurierten Ort.Beim Verwenden von Docker-Containern legen Sie die Daten in das Daten-Volume, siehe Docker-Container-Volumes.
Bitte vergewissern Sie sich, dass die Dateien die korrekten Besitzverhältnisse und Berechtigungen haben, siehe Dateisystemberechtigungen.
Die Borg-Sitzung könnte wie folgt aussehen:
$ 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:
Siehe auch
Docker-basierte Konfiguration wiederherstellen¶
Die folgenden Schritte gehen von der offiziellen Docker-Compose-Konfiguration aus, bei der die mitgelieferten PostgreSQL- und Valkey-Dienste verwendet werden, siehe Installation über Docker. Wenn Ihre Bereitstellung eine externe Datenbank oder eine angepasste Compose-Datei verwendet, passen Sie die Schritte für die Datenbank und das Volume an diese Einsatzumgebung an.
Beginnen Sie mit einem Docker-Compose-Checkout, welcher der wiederhergestellten Bereitstellung entspricht. Stellen Sie Ihre ursprünglichen Compose-Überschreibungen, Geheimnisse und Umgebungsvariablen wieder her. Die Datei environment.yml aus Ausgegebene Daten für Sicherungen kann dabei helfen, wird jedoch nicht automatisch importiert.
Das Sicherungsarchiv mit Aus BorgBackup wiederherstellen wiederherstellen oder die manuelle Sicherung entpacken, sodass das Weblate-Datenverzeichnis und
backups/database.sqlverfügbar sind.Die Dienste beenden, die in die Datenbank oder auf das Daten-Volume schreiben können:
docker compose stop weblate cache
Das PostgreSQL-Volume neu erstellen.
docker compose stop database docker compose rm -v database docker volume remove weblate-docker_postgres-data
Der Volume-Name hängt vom Namen des Compose-Projekts ab und kann von
weblate-docker_postgres-dataabweichen. Überprüfen Sie Ihre Konfiguration, bevor Sie ein Volume entfernen.Den Datenbankdienst starten:
docker compose up -d database
Den Datenbankauszug wiederherstellen:
cat backups/database.sql | docker compose exec -T database psql --username weblate --dbname weblate
Prüfen Sie, ob der Datenbankname mit
POSTGRES_DBund der Benutzer mitPOSTGRES_USERin Ihrer Compose-Konfiguration übereinstimmt.Das Weblate-Datenverzeichnis im Docker-Daten-Volume wiederherstellen, das als
/app/dataeingebunden ist, siehe Docker-Container-Volumes. Die Dateien in diesem Volume müssen zur UID 1000 gehören, siehe Dateisystemberechtigungen.Die verbleibenden Dienste starten und den Protokollen folgen:
docker compose up -d docker compose logs -f
Der Weblate-Container führt beim Start Datenbankmigrationen durch. Wenn Sie auch ein Upgrade von Weblate durchführen, folgen Sie Den Docker-Container aktualisieren.
Die Repositorys nach der Wiederherstellung aktualisieren:
docker compose exec --user weblate weblate weblate updategit --all
Manuelle Sicherung¶
Je nachdem, was Sie speichern möchten, sichern Sie die Art der Daten, die Weblate an den jeweiligen Stellen speichert.
Hinweis
Wenn Sie manuelle Sicherungen durchführen, können Sie die Warnung von Weblate über fehlende Sicherungen ausschalten, indem Sie weblate.I028 zu SILENCED_SYSTEM_CHECKS in settings.py oder WEBLATE_SILENCED_SYSTEM_CHECKS für Docker hinzufügen.
SILENCED_SYSTEM_CHECKS.append("weblate.I028")
Datenbank¶
Der tatsächliche Speicherort hängt von der Einrichtung Ihrer Datenbank ab.
Hinweis
Die Datenbank ist der wichtigste Speicher. Legen Sie regelmäßig Sicherungskopien Ihrer Datenbank an. Ohne die Datenbank sind alle Übersetzungen verloren.
Native Datenbanksicherung¶
Es wird empfohlen, einen Auszug der Datenbank mit datenbankeigenen Tools wie pg_dump zu speichern. Diese Methode ist normalerweise leistungsfähiger als die Django-Sicherung und stellt vollständige Tabellen mit allen Daten wieder her.
Sie können diese Sicherung in einer neueren Version von Weblate wiederherstellen. Es wird alle notwendigen Migrationen durchführen, wenn es in migrate ausgeführt wird. Bitte berücksichtigen Sie Weblate aktualisieren für detailliertere Informationen über das Upgrade zwischen Versionen.
Django-Datenbanksicherung¶
Alternativ können Sie Ihre Datenbank auch mit dem Befehl dumpdata von Django sichern. Auf diese Weise ist die Sicherung datenbankunabhängig und kann verwendet werden, falls Sie das Datenbank-Backend ändern möchten.
Bevor Sie die Datenbank wiederherstellen, müssen Sie genau dieselbe Weblate-Version verwenden, mit der die Sicherung erstellt wurde. Dies ist notwendig, da sich die Datenbankstruktur zwischen den einzelnen Versionen ändert und Sie die Daten auf irgendeine Weise beschädigen würden. Nachdem Sie die gleiche Version installiert haben, führen Sie alle Datenbankmigrationen mit migrate durch.
Danach werden einige Einträge bereits in der Datenbank erstellt und sind auch in der Datenbanksicherung enthalten. Es wird empfohlen, solche Einträge manuell über die Verwaltungsshell zu löschen (siehe Aufrufen von Verwaltungsbefehlen):
weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()
Dateien¶
Wenn Sie genügend Speicherplatz haben, sichern Sie einfach das gesamte DATA_DIR. Das ist eine sichere Sache, auch wenn es einige Dateien enthält, die Sie nicht wollen. In den folgenden Abschnitten wird detailliert beschrieben, was Sie sichern sollten und was Sie weglassen können.
Ausgegebene Daten für Sicherungen¶
Geändert in Version 4.7: Die Ausgabe der Einsatzumgebung wurde als environment.yml hinzugefügt, um die Wiederherstellung in den Docker-Umgebungen zu erleichtern.
Gespeichert in DATA_DIR /backups.
Weblate legt hier verschiedene Daten ab, und Sie können diese Dateien für vollständigere Sicherungen einbinden. Die Dateien werden täglich aktualisiert (erfordert einen laufenden Celery-Beats-Server, siehe Hintergrundaufgaben mit Celery). Derzeit umfasst dies:
Weblate-Einstellungen als
settings.py(es gibt auch eine erweiterte Version insettings-expanded.py).Sicherung der PostgreSQL-Datenbank als
database.sql.Ausgabe der Einsatzumgebung als
environment.yml.
Die Datenbanksicherungen werden standardmäßig als reiner Text gespeichert, können aber auch komprimiert oder mit DATABASE_BACKUP ganz übersprungen werden.
Um die Datenbanksicherung wiederherzustellen, laden Sie sie z. B. mit Hilfe der Datenbank-Tools:
psql --file=database.sql weblate
Repositorys der Versionsverwaltung¶
Gespeichert in DATA_DIR /vcs.
Die Versionsverwaltung enthält eine Kopie Ihrer Upstream-Repositorys mit Weblate-Änderungen. Wenn Sie Bei Commit gleichzeitig Pushen für alle Ihre Übersetzungskomponenten aktiviert haben, werden alle Weblate-Änderungen Upstream aufgenommen. Es ist nicht notwendig, die Repositorys auf der Weblate-Seite zu sichern, da sie ohne Datenverlust vom Upstream-Speicherort erneut geklont werden können.
SSH- und GPG-Schlüssel¶
Gespeichert in DATA_DIR /ssh und DATA_DIR /home.
Wenn Sie SSH- oder GPG-Schlüssel verwenden, die von Weblate erzeugt wurden, sollten Sie von diesen Speicherorten eine Sicherung erstellen. Andernfalls gehen die privaten Schlüssel verloren und Sie müssen neue Schlüssel erzeugen.
Generierte SSH-Wrapper-Skripte werden in CACHE_DIR gespeichert und müssen nicht gesichert werden.
Vom Benutzer hochgeladene Dateien¶
Gespeichert in DATA_DIR /media.
Sie sollten alle vom Benutzer hochgeladenen Dateien sichern (z. B. Bildschirmfotos und visueller Kontext).
Celery-Aufgaben¶
Die Celery-Aufgabenwarteschlange kann einige Informationen enthalten, wird aber normalerweise nicht für die Sicherung benötigt. Sie verlieren höchstens Aktualisierungen, die noch nicht im Übersetzungsspeicher verarbeitet wurden. Es wird ohnehin empfohlen, bei der Wiederherstellung eine Volltext- oder Repository-Aktualisierung durchzuführen, so dass es kein Problem darstellt, diese zu verlieren.
Siehe auch
Befehlszeile für manuelle Sicherung¶
Mit einem Cron-Job können Sie einen Bash-Befehl einrichten, der z. B. täglich ausgeführt wird:
$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret
Sie können die Liste der Ordner und Dateien an Ihre Bedürfnisse anpassen. Um zu vermeiden, dass der Übersetzungsspeicher (im Ordner „Sicherungen“) gespeichert wird, können Sie diese Option verwenden:
$ 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
Manuelle Sicherung wiederherstellen¶
Stellen Sie alle von Ihnen gesicherten Daten wieder her.
Aktualisieren Sie alle Repositorys mit
updategit.weblate updategit --all
Eine Weblate-Installation verschieben¶
Verschieben Sie Ihre Installation auf ein anderes System, indem Sie die obigen Anweisungen zum Sichern und Wiederherstellen befolgen.