Zálohovanie a presun Weblate¶
Zálohy na úrovni projektu¶
Added in version 4.14.
Zálohy projektu zálohujú všetok prekladový obsah z Weblate (projekt, komponenty, preklady, komentáre k reťazcom, návrhy alebo kontroly). Je vhodný na prenos projektu do inej inštancie Weblate.
Záloha obsahuje každý komponent v projekte, vrátane obmedzených komponentov, ktoré administrátor nemôže otvoriť priamo. Vytváranie, zobrazovanie a sťahovanie týchto záloh vyžaduje Upraviť nastavenia projektu. Udeľte toto oprávnenie iba používateľom, ktorým dôverujete s úplným obsahom projektu.
Zálohu projektu môžete vykonať v Operácie ↓ Zálohy. Zálohu je možné obnoviť pri vytváraní projektu (pozri Pridávanie prekladových projektov a komponentov).
Poznámka
Zálohy projektov je možné vytvárať, vypisovať a sťahovať prostredníctvom REST API Weblate od verzie 2026.7;
The backups include project-scoped teams and their memberships, and project Uložené vyhľadávania, but do not include history.
When restoring backups with duplicate team names, all teams are preserved. Additional teams with the same name receive a numeric suffix, and the import reports the renamed teams in its warnings. Built-in teams are restored separately from custom teams. Older backups do not record team type, so duplicate entries are restored as editable custom teams with numeric suffixes alongside the generated built-in team.
Chýbajúce adresáre repozitára sú preskočené, zatiaľ čo údaje o komponentoch a prekladoch sú stále zálohované. Zlyhania údržby repozitára sú zaznamenané a záloha pokračuje s dostupnými súbormi repozitára. Chyby prístupu k súborovému systému a vstupu/výstupu spôsobia zlyhanie zálohy a neúplné archívy sú odstránené. Obnovenie zálohy s chýbajúcimi alebo neplatnými metadátami repozitára zachováva dostupné súbory, komponenty a údaje o prekladoch, ale repozitár sa musí obnoviť samostatne.
Komentáre a návrhy sú zálohované s používateľským menom používateľa, ktorý ich vytvoril. Pri importe sa priradia zodpovedajúcemu používateľovi. Ak neexistuje používateľ s takýmto používateľským menom, priradí sa anonymnému používateľovi.
Vygenerované zálohy sa uchovávajú na serveri podľa konfigurácie PROJECT_BACKUP_KEEP_DAYS a PROJECT_BACKUP_KEEP_COUNT (predvolene sa uchovávajú najviac 3 zálohy po dobu 30 dní).
Validácia importu nahraných záloh projektov sa dá doladiť pomocou 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 a PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO.
Úplná záloha sa validuje pred obnovením akýchkoľvek údajov. Neplatné polia objektov, referencie, cesty repozitára, URL, regulárne výrazy alebo súbory snímok obrazovky spôsobia, že import bude odmietnutý bez vytvorenia čiastočného projektu.
Použite vygenerovaný súbor na import projektu pri Pridávanie prekladových projektov a komponentov alebo v import_projectbackup.
Poznámka
Obnova zálohy môže zlyhať, ak má obnovovací server inú sadu Definície jazykov alebo inú konfiguráciu SIMPLIFY_LANGUAGES. Obnova vám povie, ktoré jazykové kódy nebolo možné spracovať, a potom môžete manuálne pridať chýbajúce definície jazykov.
Automatizovaná záloha pomocou BorgBackup¶
Weblate má vstavanú podporu pre vytváranie záloh služieb pomocou BorgBackup. Borg vytvára priestorovo efektívne šifrované zálohy, ktoré je možné bezpečne ukladať v cloude. Zálohy je možné ovládať v rozhraní na správu z karty Zálohy.
Zmenené vo verzii 4.4.1: Databázy PostgreSQL sú zahrnuté v automatizovaných zálohách.
Zálohy pomocou Borg sú prírastkové a Weblate je nakonfigurovaný tak, aby uchovával nasledujúce zálohy:
Denné zálohy za posledných 14 dní
Týždenné zálohy za posledných 8 týždňov
Mesačné zálohy za posledných 6 mesiacov
Šifrovací kľúč Borg¶
BorgBackup vytvára šifrované zálohy a bez prístupovej frázy by ste ich nedokázali obnoviť. Prístupová fráza sa generuje pri pridávaní novej zálohovacej služby a mali by ste ju skopírovať a uchovávať na bezpečnom mieste.
Ak používate Úložisko záloh poskytované Weblate, zálohujte si aj svoj súkromný SSH kľúč, pretože sa používa na prístup k vašim zálohám.
Viď aj
Prispôsobenie zálohy¶
Záloha databázy je možné nakonfigurovať pomocou
DATABASE_BACKUP.Vytváranie zálohy je možné prispôsobiť pomocou
BORG_EXTRA_ARGS.
Úložisko záloh poskytované Weblate¶
Najjednoduchší spôsob zálohovania vašej inštancie Weblate je zakúpenie zálohovacej služby na weblate.org. Je dostupná pre Weblate bežiaci vo vašom vlastnom prostredí a nevyžaduje hosťovanie ani samostatné predplatné podpory.
Takto ju spustíte:
V rozhraní na správu otvorte Zálohy a vyberte Kúpiť zálohovaciu službu, alebo zakúpte zálohovaciu službu priamo.
Zadajte získaný aktivačný token do Aktivovať balík podpory na stránke Zálohy, pozri Integrácia podpory.
Weblate sa pripojí ku cloudovej službe a získa prístupové informácie pre zálohy.
Zapnite novú konfiguráciu záloh z karty Zálohy.
Zálohujte si poverenia Borg, aby ste mohli obnoviť zálohy, pozri Šifrovací kľúč Borg.
Rada
Manuálny krok zapnutia všetkého je tam pre vašu bezpečnosť. Bez vášho súhlasu sa žiadne údaje neodosielajú do zálohovacieho repozitára získaného prostredníctvom registračného procesu.
Použitie vlastného úložiska záloh¶
Môžete tiež použiť vlastné úložisko pre zálohy. SSH sa dá použiť na uchovávanie záloh vo vzdialenom cieľovom umiestnení, cieľový server musí mať nainštalovaný BorgBackup.
Viď aj
General v dokumentácii Borg
Lokálny súborový systém¶
Odporúča sa špecifikovať absolútnu cestu pre lokálnu zálohu, napríklad /cesta/k/zálohe. Adresár musí byť zapisovateľný používateľom, ktorý spúšťa Weblate (pozri Oprávnenia súborového systému). Ak neexistuje, Weblate sa pokúsi ho vytvoriť, ale potrebuje na to vhodné oprávnenia.
Rada
Pri spúšťaní Weblate v Dockeri sa uistite, že umiestnenie zálohy je exponované ako zväzok z kontajnera Weblate. Inak budú zálohy zahodené Dockerom po reštartovaní kontajnera, v ktorom sa nachádzajú.
Jednou z možností je umiestniť zálohy do existujúceho zväzku, napríklad /app/data/borgbackup. Toto je existujúci zväzok v kontajneri.
Môžete tiež pridať nový kontajner pre zálohy v súbore Docker Compose, napríklad pomocou /borgbackup:
services:
weblate:
volumes:
- /home/weblate/data:/app/data
- /home/weblate/borgbackup:/borgbackup
Adresár, kde sa budú ukladať zálohy, musí byť vo vlastníctve UID 1000, inak Weblate nebude môcť tam zapisovať zálohy.
Vzdialené zálohy¶
Pre vytváranie vzdialených záloh budete musieť nainštalovať BorgBackup na iný server, ktorý je dostupný pre vaše nasadenie Weblate cez SSH pomocou SSH kľúča Weblate:
Pripravte server, kde sa budú uchovávať vaše zálohy.
Nainštalujte naň SSH server (získate ho predvolene s väčšinou distribúcií Linuxu).
Nainštalujte BorgBackup na tento server; väčšina distribúcií Linuxu má dostupné balíky (pozri Installation).
Vyberte existujúceho používateľa alebo vytvorte nového používateľa, ktorý sa bude používať na zálohovanie.
Pridajte SSH kľúč Weblate do súboru .ssh/authorized_keys používateľa, aby sa Weblate mohol pripojiť k serveru cez SSH bez hesla (pozri SSH kľúč Weblate).
Vytvorte adresár zapisovateľný používateľom, kde môže Weblate vzdialene nastaviť zálohovací repozitár Borg, napríklad v domovskom adresári (t.j.
/home/borg/backups).Nakonfigurujte umiestnenie zálohy vo Weblate ako
user@host:/home/borg/backupsalebossh://user@host:port/home/borg/backups.Po povolení sa zálohy budú spúšťať automaticky denne. Zálohu môžete spustiť aj manuálne z používateľského rozhrania Weblate alebo pomocou backup.
Rada
Úložisko záloh poskytované Weblate vám poskytuje automatizované vzdialené zálohy bez akejkoľvek námahy.
Viď aj
Obnova z BorgBackup¶
Obnovte prístup k vášmu zálohovaciemu repozitáru a pripravte si prístupovú frázu zálohy.
Vypíšte všetky zálohy na serveri pomocou
borg list REPOSITORY.Obnovte požadovanú zálohu do aktuálneho adresára pomocou
borg extract REPOSITORY::ARCHIVE.Obnovte databázu zo SQL dumpu umiestneného v adresári
backupv dátovom adresári Weblate (pozri Dumpované dáta pre zálohy).Skopírujte konfiguráciu Weblate (
backups/settings.py, pozri Dumpované dáta pre zálohy) na správne miesto, pozri Úprava konfigurácie.Pri použití kontajnera Docker je súbor nastavení už zahrnutý v kontajneri a mali by ste obnoviť pôvodné premenné prostredia. Súbor
environment.ymlvám s tým môže pomôcť (pozri Dumpované dáta pre zálohy).Skopírujte celý obnovený dátový adresár na miesto nakonfigurované pomocou
DATA_DIR.Pri použití kontajnera Docker umiestnite dáta do dátového zväzku, pozri Zväzky Docker kontajnera.
Prosím, uistite sa, že súbory majú správne vlastníctvo a oprávnenia, pozri Oprávnenia súborového systému.
Relácia Borg môže vyzerať takto:
$ 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:
Viď aj
Obnova nastavenia založeného na Dockeri¶
Nasledujúce kroky predpokladajú oficiálne nastavenie Docker Compose používajúce pribalené služby PostgreSQL a Valkey, pozri Inštalácia pomocou Dockeru. Ak vaše nasadenie používa externú databázu alebo prispôsobený súbor Compose, prispôsobte kroky databázy a zväzku tomuto prostrediu.
Začnite s checkoutom Docker Compose zodpovedajúcim obnovenému nasadeniu. Obnovte svoje pôvodné prepisy Compose, tajomstvá a premenné prostredia. Súbor environment.yml z Dumpované dáta pre zálohy vám s tým môže pomôcť, ale neimportuje sa automaticky.
Obnovte archív zálohy pomocou Obnova z BorgBackup alebo rozbaľte svoju manuálnu zálohu tak, aby boli dostupné dátový adresár Weblate a
backups/database.sql.Zastavte služby, ktoré môžu zapisovať do databázy alebo dátového zväzku:
docker compose stop weblate cache
Znovu vytvorte zväzok PostgreSQL.
docker compose stop database docker compose rm -v database docker volume remove weblate-docker_postgres-data
Názov zväzku závisí od názvu projektu Docker Compose a môže sa líšiť od
weblate-docker_postgres-data. Skontrolujte svoje nastavenie pred odstránením akéhokoľvek zväzku.Spustite službu databázy:
docker compose up -d database
Obnovte dump databázy:
cat backups/database.sql | docker compose exec -T database psql --username weblate --dbname weblate
Skontrolujte, či názov databázy zodpovedá
POSTGRES_DBa používateľ zodpovedáPOSTGRES_USERvo vašej konfigurácii Compose.Obnovte dátový adresár Weblate do dátového zväzku Docker namontovaného ako
/app/data, pozri Zväzky Docker kontajnera. Súbory v tomto zväzku musia byť vo vlastníctve UID 1000, pozri Oprávnenia súborového systému.Spustite zostávajúce služby a sledujte logy:
docker compose up -d docker compose logs -f
Kontajner Weblate vykonáva migrácie databázy pri štarte. Ak tiež aktualizujete Weblate, postupujte podľa Aktualizácia Docker kontajnera.
Obnovte repozitáre po obnove:
docker compose exec --user weblate weblate weblate updategit --all
Manuálna záloha¶
V závislosti od toho, čo chcete uložiť, zálohujte typ dát, ktoré Weblate uchováva na každom príslušnom mieste.
Rada
Ak vykonávate manuálne zálohy, možno budete chcieť utíšiť varovanie Weblate o nedostatku záloh pridaním weblate.I028 do SILENCED_SYSTEM_CHECKS v settings.py alebo WEBLATE_SILENCED_SYSTEM_CHECKS pre Docker.
SILENCED_SYSTEM_CHECKS.append("weblate.I028")
Databáza¶
Skutočné umiestnenie úložiska závisí od vášho nastavenia databázy.
Rada
Databáza je najdôležitejšie úložisko. Nastavte pravidelné zálohy vašej databázy. Bez databázy sú všetky preklady preč.
Natívna záloha databázy¶
Odporúčaný prístup je uložiť dump databázy pomocou natívnych nástrojov databázy, ako je pg_dump. Zvyčajne funguje lepšie ako záloha Django a obnovuje kompletné tabuľky so všetkými ich dátami.
Túto zálohu môžete obnoviť v novšej verzii Weblate, vykoná všetky potrebné migrácie pri spustení migrate. Prosím, konzultujte Aktualizácia Weblate pre podrobnejšie informácie o tom, ako aktualizovať medzi verziami.
Záloha databázy Django¶
Alternatívne môžete zálohovať svoju databázu pomocou príkazu Django dumpdata. Týmto spôsobom je záloha agnostická voči databáze a dá sa použiť v prípade, že chcete zmeniť backend databázy.
Pred obnovou databázy musíte mať spustenú presne tú istú verziu Weblate, na ktorej bola záloha vytvorená. Je to nevyhnutné, pretože štruktúra databázy sa medzi vydaniami mení a skončili by ste s poškodením dát nejakým spôsobom. Po inštalácii tej istej verzie spustite všetky migrácie databázy pomocou migrate.
Potom budú niektoré položky už vytvorené v databáze a budete ich mať aj v zálohe databázy. Odporúčaný prístup je vymazať takéto položky manuálne pomocou správcovskej konzoly (pozri Vyvolávanie manažérskych príkazov):
weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()
Súbory¶
Ak máte dostatok miesta na zálohu, jednoducho zálohujte celý DATA_DIR. Je to bezpečná stávka, aj keď obsahuje niektoré súbory, ktoré nechcete. Nasledujúce sekcie podrobne opisujú, čo by ste mali zálohovať a čo môžete vynechať.
Dumpované dáta pre zálohy¶
Zmenené vo verzii 4.7: Dump prostredia bol pridaný ako environment.yml, aby pomohol pri obnove v prostrediach Docker.
Uložené v DATA_DIR /backups.
Weblate sem dumpuje rôzne dáta a môžete zahrnúť tieto súbory pre kompletnejšie zálohy. Súbory sa aktualizujú denne (vyžaduje bežiaci server Celery beats, pozri Úlohy na pozadí pomocou Celery). Momentálne to zahŕňa:
Nastavenia Weblate ako
settings.py(existuje aj rozšírená verzia vsettings-expanded.py).Záloha databázy PostgreSQL ako
database.sql.Dump prostredia ako
environment.yml.
Zálohy databázy sa predvolene ukladajú ako obyčajný text, ale môžu byť aj komprimované alebo úplne preskočené pomocou DATABASE_BACKUP.
Na obnovu zálohy databázy ju načítajte pomocou databázových nástrojov, napríklad:
psql --file=database.sql weblate
Repozitáre správy verzií¶
Uložené v DATA_DIR /vcs.
Repozitáre správy verzií obsahujú kópiu vašich hlavných repozitárov so zmenami Weblate. Ak máte Odoslať pri zápise povolené pre všetky vaše prekladové komponenty, všetky zmeny Weblate sú zahrnuté upstream. Nie je potrebné zálohovať repozitáre na strane Weblate, pretože ich možno znovu naklonovať z hlavného umiestnenia bez straty dát.
SSH a GPG kľúče¶
Uložené v DATA_DIR /ssh a DATA_DIR /home.
Ak používate SSH alebo GPG kľúče generované Weblate, mali by ste zálohovať tieto umiestnenia. Inak stratíte súkromné kľúče a budete musieť vygenerovať nové.
Vygenerované obalové skripty SSH sú uložené v CACHE_DIR a nie je potrebné ich zálohovať.
Súbory nahrané používateľom¶
Uložené v DATA_DIR /media.
Mali by ste zálohovať všetky súbory nahrané používateľom (napr. Snímky obrazovky a vizuálny kontext).
Úlohy Celery¶
Fronta úloh Celery môže obsahovať niektoré informácie, ale zvyčajne nie je potrebná pre zálohu. V najhoršom prípade stratíte aktualizácie, ktoré ešte neboli spracované do prekladovej pamäte. Aj tak sa odporúča vykonať aktualizáciu fulltextu alebo repozitára po obnove, takže strata týchto informácií nie je problémom.
Príkazový riadok pre manuálnu zálohu¶
Pomocou úlohy cron môžete nastaviť príkaz Bash, ktorý sa bude vykonávať denne, napríklad:
$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret
Zoznam priečinkov a súborov môžete upraviť podľa svojich potrieb. Aby ste sa vyhli ukladaniu prekladovej pamäte (v priečinku záloh), môžete použiť:
$ 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
Obnova manuálnej zálohy¶
Obnovte všetky dáta, ktoré ste zálohovali.
Aktualizujte všetky repozitáre pomocou
updategit.weblate updategit --all
Presun inštalácie Weblate¶
Presuňte svoju inštaláciu na iný systém podľa vyššie uvedených pokynov na zálohovanie a obnovu.