Säkerhetskopiera och flytta Weblate¶
Säkerhetskopior på projektnivå¶
Added in version 4.14.
Projektet säkerhetskopierar allt översättningsinnehåll från Weblate (projekt, komponenter, översättningar, strängkommentarer, förslag eller kontroller). Det är lämpligt för att överföra ett projekt till en annan Weblate-instans.
Du kan göra en säkerhetskopia av projektet i Operations ↓ Backups. Säkerhetskopian kan återställas när du skapar ett projekt (se Lägga till översättningsprojekt och komponenter).
Säkerhetskopiorna innehåller för närvarande inte information om åtkomstkontroll och historik.
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.
De genererade säkerhetskopiorna sparas på servern enligt konfigurationen i PROJECT_BACKUP_KEEP_DAYS och PROJECT_BACKUP_KEEP_COUNT (standardinställningen är att spara högst 3 säkerhetskopior i 30 dagar).
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.
Använd den genererade filen för att importera projektet när du Lägga till översättningsprojekt och komponenter eller i import_projectbackup.
Observera
Återställningen av säkerhetskopian kan misslyckas om återställningsservern har en annan uppsättning Språkliga definitioner eller en annan konfiguration av SIMPLIFY_LANGUAGES. Återställningen kommer att visa vilka språkkoder som inte kunde bearbetas och du kan sedan lägga till saknade språkdefinitioner manuellt.
Automatisk säkerhetskopiering med BorgBackup¶
Weblate har inbyggt stöd för att skapa säkerhetskopior av tjänsten med hjälp av BorgBackup. Borg skapar utrymmeseffektiva krypterade säkerhetskopior som kan lagras säkert i molnet. Säkerhetskopiorna kan kontrolleras i administrationsgränssnittet från fliken Backups.
Förändrat i version 4.4.1: PostgreSQL databases are included in the automated backups.
Säkerhetskopiorna med Borg är inkrementella och Weblate är konfigurerat för att behålla följande säkerhetskopior:
Dagliga säkerhetskopior i 14 dagar tillbaka
Veckobackuper för 8 veckor tillbaka
Månatliga säkerhetskopior för 6 månader tillbaka
Borg-krypteringsnyckel¶
BorgBackup skapar krypterade säkerhetskopior och du kan inte återställa dem utan lösenordet. Lösenordet genereras när du lägger till en ny säkerhetskopieringstjänst och du bör kopiera det och förvara det på ett säkert ställe.
Om du använder Weblate tillhandahöll backup-lagring, vänligen säkerhetskopiera även din privata SSH-nyckel, eftersom den används för att komma åt dina säkerhetskopior.
Se även
Anpassa säkerhetskopiering¶
Databasbackupen kan konfigureras via
DATABASE_BACKUP.Säkerhetskopieringen kan anpassas med hjälp av
BORG_EXTRA_ARGS.
Weblate tillhandahöll backup-lagring¶
Det enklaste sättet att säkerhetskopiera din Weblate-instans är att köpa säkerhetskopieringstjänsten på weblate.org. Så här får du igång den:
Köp tjänsten ”Backup service” på https://weblate.org/support/#backup.
Ange den erhållna nyckeln i hanteringsgränssnittet, se Integrering av support.
Weblate ansluter till molntjänsten och hämtar åtkomstinformation för säkerhetskopiorna.
Aktivera den nya säkerhetskopieringskonfigurationen från fliken Backups.
Säkerhetskopiera dina Borg-inloggningsuppgifter så att du kan återställa säkerhetskopiorna, se Borg-krypteringsnyckel.
Råd
Det manuella steget att slå på allt finns där för din säkerhet. Utan ditt samtycke skickas inga data till det backup-arkiv som erhållits genom registreringsprocessen.
Använda anpassad säkerhetskopieringslagring¶
Du kan också använda din egen lagringsplats för säkerhetskopiorna. SSH kan användas för att lagra säkerhetskopior på den fjärranslutna destinationen, men målservrarna måste ha BorgBackup installerat.
Se även
General i Borg-dokumentationen
Lokalt filsystem¶
Det rekommenderas att ange den absoluta sökvägen för den lokala säkerhetskopian, till exempel /path/to/backup. Katalogen måste vara skrivbar för den användare som kör Weblate (se Filssystemets behörigheter). Om den inte finns försöker Weblate skapa den, men behöver rätt behörighet för att göra det.
Råd
När du kör Weblate i Docker, se till att säkerhetskopieringsplatsen är exponerad som en volym från Weblate-containern. Annars kommer säkerhetskopiorna att kasseras av Docker när containern startas om.
Ett alternativ är att placera säkerhetskopior i en befintlig volym, till exempel /app/data/borgbackup. Detta är en befintlig volym i containern.
Du kan också lägga till en ny behållare för säkerhetskopiorna i Docker Compose-filen, till exempel genom att använda /borgbackup:
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.
Fjärrbackuper¶
För att skapa fjärrbackuper måste du installera BorgBackup på en annan server som är tillgänglig för din Weblate-distribution via SSH med hjälp av Weblate SSH-nyckeln:
Förbered en server där dina säkerhetskopior ska lagras.
Installera SSH-servern på den (den ingår som standard i de flesta Linux-distributioner).
Installera BorgBackup på den servern; de flesta Linux-distributioner har paket tillgängliga (se Installation).
Välj en befintlig användare eller skapa en ny användare som ska användas för säkerhetskopiering.
Lägg till Weblate SSH-nyckel till användarens .ssh/authorized_keys-fil, så att Weblate kan ansluta till servern via SSH utan lösenord (se Weblate SSH-nyckel).
Skapa en katalog som användaren kan skriva i, där Weblate kan fjärrkonfigurera Borg-säkerhetskopieringsarkivet, till exempel i hemkatalogen (dvs.
/home/borg/backups).Konfigurera säkerhetskopieringsplatsen i Weblate som
user@host:/home/borg/backupsellerssh://user@host:port/home/borg/backups.Once enabled, the backups will be triggered automatically daily. You can also manually trigger a backup from the Weblate UI or using backup.
Råd
Weblate tillhandahöll backup-lagring ger dig automatiska fjärrbackuper utan någon ansträngning.
Se även
Återställning från BorgBackup¶
Återställ åtkomsten till ditt säkerhetskopieringsarkiv och förbered din säkerhetskopieringslösenord.
Lista alla säkerhetskopior på servern med
borg list REPOSITORY.Återställ önskad säkerhetskopia till den aktuella katalogen med hjälp av
borg extract REPOSITORY::ARCHIVE.Återställ databasen från SQL-dumpen som finns i katalogen
backupi Weblate-datakatalogen (se Dumpade data för säkerhetskopior).Kopiera Weblate-konfigurationen (
backups/settings.py, se Dumpade data för säkerhetskopior) till rätt plats, se Justera konfigurationen.När du använder Docker-containern ingår inställningsfilen redan i containern och du bör återställa de ursprungliga miljövariablerna. Filen
environment.ymlkan hjälpa dig med detta (se Dumpade data för säkerhetskopior).Kopiera hela den återställda datakatalogen till den plats som konfigurerats av
DATA_DIR.När du använder Docker-container placerar du data i datavolymen, se Docker-containervolymer.
Se till att filerna har rätt ägarskap och behörigheter, se Filssystemets behörigheter.
Borg-sessionen kan se ut så här:
$ 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:
Se även
Restoring Docker based setup¶
The following steps assume the official Docker Compose setup using the bundled PostgreSQL and Valkey services, see Installera med Docker. If your deployment uses an external database or a customized Compose file, adapt the database and volume steps to that environment.
Start with a Docker Compose checkout matching the restored deployment. Restore
your original Compose overrides, secrets, and environment variables. The
environment.yml file from Dumpade data för säkerhetskopior can help with this, but
it is not imported automatically.
Restore the backup archive using Återställning från BorgBackup or unpack your manual backup so that the Weblate data directory and
backups/database.sqlare available.Stop the services which can write to the database or data volume:
docker compose stop weblate cache
Recreate the PostgreSQL volume.
docker compose stop database docker compose rm -v database docker volume remove weblate-docker_postgres-data
The volume name depends on the Compose project name and can differ from
weblate-docker_postgres-data. Check your setup before removing any volume.Start the database service:
docker compose up -d database
Restore the database dump:
cat backups/database.sql | docker compose exec -T database psql --username weblate --dbname weblate
Check that the database name matches
POSTGRES_DBand the user matchesPOSTGRES_USERin your Compose configuration.Restore the Weblate data directory to the Docker data volume mounted as
/app/data, see Docker-containervolymer. Files in this volume have to be owned by UID 1000, see Filssystemets behörigheter.Start the remaining services and follow the logs:
docker compose up -d docker compose logs -f
The Weblate container performs database migrations on startup. If you are also upgrading Weblate, follow Uppgradering av Docker-containern.
Refresh the repositories after the restore:
docker compose exec --user weblate weblate weblate updategit --all
Manuell säkerhetskopiering¶
Beroende på vad du vill spara, säkerhetskopiera den typ av data som Weblate lagrar på respektive plats.
Råd
Om du gör manuella säkerhetskopior kan du stänga av Weblates varning om bristande säkerhetskopior genom att lägga till weblate.I028 till SILENCED_SYSTEM_CHECKS i settings.py eller WEBLATE_SILENCED_SYSTEM_CHECKS för Docker.
SILENCED_SYSTEM_CHECKS.append("weblate.I028")
Databas¶
Den faktiska lagringsplatsen beror på din databasinställning.
Råd
Databasen är den viktigaste lagringsplatsen. Ställ in regelbundna säkerhetskopieringar av din databas. Utan databasen försvinner alla översättningar.
Inbyggd databasbackup¶
The recommended approach is to save a dump of the database using database-native tools such as pg_dump. It usually performs better than Django backup, and it restores complete tables with all their data.
Du kan återställa denna säkerhetskopia i en nyare version av Weblate, som kommer att utföra alla nödvändiga migreringar när den körs i migrate. Se Uppgradering av Weblate för mer detaljerad information om hur du uppgraderar mellan versioner.
Django-databasbackup¶
Alternativt kan du säkerhetskopiera din databas med hjälp av Djangos kommando dumpdata. På så sätt är säkerhetskopian databasoberoende och kan användas om du vill byta databasbackend.
Innan du återställer databasen måste du köra exakt samma version av Weblate som säkerhetskopian skapades på. Detta är nödvändigt eftersom databasstrukturen förändras mellan olika versioner och du annars riskerar att skada data på något sätt. Efter att ha installerat samma version kör du alla databasmigreringar med migrate.
Efteråt kommer vissa poster redan att ha skapats i databasen och du kommer också att ha dem i databasens säkerhetskopia. Det rekommenderade tillvägagångssättet är att radera sådana poster manuellt med hjälp av administrationsskalet (se Använda administrationskommandon):
weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()
Filer¶
Om du har tillräckligt med utrymme för säkerhetskopiering kan du helt enkelt säkerhetskopiera hela DATA_DIR. Detta är ett säkert val även om det innehåller några filer som du inte vill ha. I följande avsnitt beskrivs i detalj vad du bör säkerhetskopiera och vad du kan hoppa över.
Dumpade data för säkerhetskopior¶
Förändrat i version 4.7: Miljödumpen lades till som environment.yml för att underlätta återställningen i Docker-miljöerna.
Lagras i DATA_DIR /backups.
Weblate sparar olika data här, och du kan inkludera dessa filer för mer kompletta säkerhetskopior. Filerna uppdateras dagligen (kräver en körande Celery beats-server, se Bakgrundsuppgifter med Celery). För närvarande inkluderar detta:
Weblate-inställningar som
settings.py(det finns också en utökad version isettings-expanded.py).PostgreSQL-databasbackup som
database.sql.Miljö dump som
environment.yml.
Databasbackuperna sparas som vanlig text som standard, men de kan också komprimeras eller helt hoppas över med hjälp av DATABASE_BACKUP.
För att återställa databasbackupen, ladda den med hjälp av databasverktyg, till exempel:
psql --file=database.sql weblate
Versionskontrollförvar¶
Lagras i DATA_DIR /vcs.
Versionskontrollförvaren innehåller en kopia av dina uppströmsförvar med Weblate-ändringar. Om du har Skicka vid incheckning aktiverat för alla dina översättningskomponenter inkluderas alla Weblate-ändringar uppströms. Det finns inget behov av att säkerhetskopiera förvaren på Weblate-sidan eftersom de kan klonas igen från uppströmsplatsen utan dataförlust.
SSH- och GPG-nycklar¶
Lagras i DATA_DIR /ssh och DATA_DIR /home.
Om du använder SSH- eller GPG-nycklar som genererats av Weblate bör du säkerhetskopiera dessa platser. Annars förlorar du de privata nycklarna och måste generera nya.
Generated SSH wrapper scripts are stored in CACHE_DIR and do not
need to be backed up.
Användaruppladdade filer¶
Lagras i DATA_DIR /media.
Du bör säkerhetskopiera alla filer som användare har laddat upp (t.ex. Screenshots and visual context).
Selleriuppgifter¶
Celery-uppgiftskön kan innehålla viss information, men behövs vanligtvis inte för en säkerhetskopiering. Du förlorar högst uppdateringar som ännu inte har bearbetats till översättningsminnet. Det rekommenderas ändå att utföra fulltext- eller arkivuppdateringen vid återställningen, så det är inget problem att förlora dessa.
Se även
Kommandorad för manuell säkerhetskopiering¶
Med hjälp av ett cron-jobb kan du ställa in ett Bash-kommando som ska köras dagligen, till exempel:
$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret
Du kan anpassa listan över mappar och filer efter dina behov. För att undvika att spara översättningsminnet (i mappen för säkerhetskopior) kan du använda:
$ 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
Återställa manuell säkerhetskopia¶
Återställ alla data som du har säkerhetskopierat.
Uppdatera alla arkiv med
updategit.weblate updategit --all
Flytta en Weblate-installation¶
Flytta din installation till ett annat system genom att följa instruktionerna för säkerhetskopiering och återställning ovan.