Weblate biztonsági mentése és áthelyezése

Projektszintű biztonsági mentések

Added in version 4.14.

A projekt biztonsági mentései tartalmazzák a Weblate összes fordítási tartalmát (projekt, összetevők, fordítások, szöveg megjegyzések, javaslatok vagy ellenőrzések). Ez alkalmas egy projekt áthelyezésére egy másik Weblate példányba.

You can perform a project backup in OperationsBackups. The backup can be restored when creating a project (see Fordítási projektek és összetevők hozzáadása).

A biztonsági mentések jelenleg nem tartalmazzák a hozzáférés-vezérlés adatait és az előzményeket.

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.

A létrehozott biztonsági mentések a szerveren kerülnek tárolásra, a PROJECT_BACKUP_KEEP_DAYS és PROJECT_BACKUP_KEEP_COUNT beállítások alapján (alapértelmezés szerint maximum 3 mentést tárol 30 napig).

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.

A létrehozott fájlt felhasználhatja projekt importálásakor a Fordítási projektek és összetevők hozzáadása funkciónál vagy a import_projectbackup parancs segítségével.

Megjegyzés

Restoring of the backup might fail if the restoring server has different set of Nyelvi definíciók 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.

Automatizált biztonsági mentés BorgBackup használatával

A Weblate beépített támogatással rendelkezik szolgáltatásbiztonsági mentések készítésére a BorgBackup segítségével. A Borg helytakarékos, titkosított biztonsági mentéseket készít, amelyek biztonságosan tárolhatók a felhőben. A mentések a kezelőfelületen a Biztonsági mentések fülön keresztül érhetők el és irányíthatók.

A 4.4.1 verzióban változott: PostgreSQL databases are included in the automated backups.

Az automatizált mentések tartalmazzák mind a PostgreSQL, mind a MySQL/MariaDB adatbázisokat:

  • Napi mentések 14 napra visszamenőleg

  • Heti mentések 8 hétre visszamenőleg

  • Havi mentések 6 hónapra visszamenőleg

../_images/backups.webp

Borg titkosítási kulcs

A BorgBackup titkosított mentéseket hoz létre, és a visszaállításhoz szükség van a jelszóra. A jelszó egy új biztonsági mentési szolgáltatás hozzáadásakor automatikusan generálódik – ezt érdemes azonnal kimásolni és biztonságos helyen tárolni.

Ha Weblate által biztosított biztonsági mentési tárhely használatában van, javasolt a privát SSH-kulcs biztonsági mentése is, mivel ez szükséges a biztonsági mentések eléréséhez.

Lásd még

borg init

Biztonsági mentés testreszabása

  • Az adatbázis biztonsági mentését a DATABASE_BACKUP beállítással lehet konfigurálni.

  • A mentés készítése testreszabható a BORG_EXTRA_ARGS paraméter segítségével.

Weblate által biztosított biztonsági mentési tárhely

A Weblate példányának biztonsági mentésére a legegyszerűbb megoldás a weblate.org oldalon elérhető backup szolgáltatás megvásárlása. A következő lépések szükségesek a beállításhoz:

  1. Vásárolja meg a Biztonsági mentési szolgáltatást a https://weblate.org/support/#backup oldalon.

  2. Adja meg a kapott kulcsot a kezelőfelületen, lásd: Támogatás integrálása.

  3. A Weblate csatlakozik a felhőszolgáltatáshoz, és lekéri a biztonsági mentések eléréséhez szükséges adatokat.

  4. Kapcsolja be az új biztonsági mentési konfigurációt a Biztonsági mentések fülön.

  5. Készítsen biztonsági mentést a Borg-hitelesítő adatairól is a mentések későbbi visszaállíthatósága érdekében, lásd: Borg titkosítási kulcs.

Tipp

Az, hogy mindent manuálisan kell bekapcsolni, a biztonság érdekében történik. Hozzájárulás nélkül semmilyen adat nem kerül elküldésre a regisztráció során létrehozott biztonsági mentési tárolóba.

Egyéni biztonsági mentési tárhely használata

Lehetőség van saját tárhely használatára is a biztonsági mentésekhez. Az SSH protokoll segítségével távoli helyre is tárolhatók a mentések, ehhez a célkiszolgálóra telepíteni kell a BorgBackup alkalmazást.

Lásd még

További információ a Borg dokumentációjában: General

Helyi fájlrendszer

Helyi mentésnél ajánlott az abszolút elérési utat megadni, például /path/to/backup. A könyvtárnak írhatónak kell lennie a Weblate-et futtató felhasználó számára (lásd: Fájlrendszer jogosultságok). Ha a könyvtár nem létezik, a Weblate megpróbálja létrehozni, de ehhez megfelelő jogosultságokra van szükség.

Tipp

Amikor a Weblate-et Dockerben futtatja, győződjön meg róla, hogy a biztonsági mentés helye kötetként (volume) van csatolva a Weblate-konténerhez. Ellenkező esetben a biztonsági mentések a konténer újraindításakor a Docker által törlésre kerülnek.

Egy lehetőség, hogy a mentéseket egy meglévő kötetre helyezi, például: /app/data/borgbackup. Ez egy meglévő kötet a konténerben.

Másik lehetőség, hogy létrehoz egy új konténert kifejezetten a mentések számára a Docker Compose fájlban, például: /borgbackup elérési úttal:

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.

Távoli biztonsági mentések

Távoli biztonsági mentés készítéséhez telepíteni kell a BorgBackup alkalmazást egy olyan szerverre, amely SSH-n keresztül elérhető a Weblate telepítése számára a Weblate SSH-kulcsával:

  1. Készítse elő a szervert, amelyen a mentéseket tárolni fogja.

  2. Telepítse rá az SSH szervert (a legtöbb Linux-disztribúció alapértelmezés szerint tartalmazza).

  3. Telepítse a BorgBackup programot is a szerverre; a legtöbb Linux-disztribúcióhoz elérhetők a csomagok (lásd: Installation).

  4. Válasszon egy meglévő felhasználót vagy hozzon létre egy újat, amelyet a biztonsági mentéshez fog használni.

  5. Add Weblate SSH key to the user’s .ssh/authorized_keys file, so that Weblate can SSH to the server without a password (see Weblate SSH-kulcs).

  6. Create a user-writable directory where Weblate can remotely set up the Borg backup repository, for example in the home directory (i.e. /home/borg/backups).

  7. Configure the backup location in Weblate as user@host:/home/borg/backups or ssh://user@host:port/home/borg/backups.

  8. Once enabled, the backups will be triggered automatically daily. You can also manually trigger a backup from the Weblate UI or using backup.

Tipp

A Weblate által biztosított biztonsági mentési tárhely szolgáltatás automatikus távoli biztonsági mentéseket kínál mindenféle további beavatkozás nélkül.

Visszaállítás a BorgBackupból

  1. Állítsa vissza a hozzáférést a biztonsági mentési tárolóhoz, és készítse elő a mentési jelszót.

  2. Listázza az összes biztonsági mentést a szerveren a borg list REPOSITORY parancs használatával.

  3. Állítsa vissza a kívánt mentést az aktuális könyvtárba a borg extract REPOSITORY::ARCHIVE paranccsal.

  4. Állítsa vissza az adatbázist az SQL-dumpból, amely a Weblate adatkönyvtárán belül a backup mappában található (lásd: Lementett adatok (dumpok) a biztonsági mentésekhez).

  5. Másolja a Weblate konfigurációs fájlt (backups/settings.py, lásd: Lementett adatok (dumpok) a biztonsági mentésekhez) a megfelelő helyre, részletek: Konfiguráció módosítása.

    Docker-konténer használata esetén a konfigurációs fájl már része a konténernek, így az eredeti környezeti változókat kell visszaállítani. Ebben az environment.yml fájl segíthet (lásd: Lementett adatok (dumpok) a biztonsági mentésekhez).

  6. Másolja át a teljes visszaállított adatkönyvtárat arra a helyre, amelyet a DATA_DIR beállítás határoz meg.

    Docker-konténer esetén az adatokat a megfelelő adatkötetbe kell helyezni, lásd: Docker-konténer kötetek.

    Ügyeljen arra, hogy a fájlok megfelelő tulajdonossal és jogosultságokkal rendelkezzenek, lásd: Fájlrendszer jogosultságok.

A Borg mentési munkamenet például így nézhet ki:

$ 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:

Lásd még

Restoring Docker based setup

The following steps assume the official Docker Compose setup using the bundled PostgreSQL and Valkey services, see Telepítés Docker használatával. 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 Lementett adatok (dumpok) a biztonsági mentésekhez can help with this, but it is not imported automatically.

  1. Restore the backup archive using Visszaállítás a BorgBackupból or unpack your manual backup so that the Weblate data directory and backups/database.sql are available.

  2. Stop the services which can write to the database or data volume:

    docker compose stop weblate cache
    
  3. 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.

  4. Start the database service:

    docker compose up -d database
    
  5. 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_DB and the user matches POSTGRES_USER in your Compose configuration.

  6. Restore the Weblate data directory to the Docker data volume mounted as /app/data, see Docker-konténer kötetek. Files in this volume have to be owned by UID 1000, see Fájlrendszer jogosultságok.

  7. 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 Docker-konténer frissítése.

  8. Refresh the repositories after the restore:

    docker compose exec --user weblate weblate weblate updategit --all
    

Kézi biztonsági mentés

Attól függően, hogy mit szeretne megőrizni, a Weblate által tárolt adatok megfelelő típusait kell lementeni.

Tipp

Ha kézi biztonsági mentést készít, érdemes lehet elnémítani a Weblate figyelmeztetését a biztonsági mentések hiányáról. Ehhez adja hozzá a weblate.I028 jelzést a SILENCED_SYSTEM_CHECKS beállításhoz a settings.py fájlban vagy Docker esetén a WEBLATE_SILENCED_SYSTEM_CHECKS környezeti változóban.

SILENCED_SYSTEM_CHECKS.append("weblate.I028")

Adatbázis

A tényleges tárolási hely az adatbázis beállításaitól függ.

Tipp

Az adatbázis a legfontosabb adattároló. Gondoskodjon róla, hogy rendszeres biztonsági mentést készítsen róla. Az adatbázis nélkül minden fordítás elveszik.

Natív adatbázis biztonsági mentés

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.

Az így készült mentést egy újabb Weblate verzióba is vissza lehet állítani; a rendszer automatikusan elvégzi a szükséges adatbázis-migrációkat a migrate futtatásakor. További részletekért lásd: Weblate frissítése, ahol bővebb tájékoztatás található a verziók közötti frissítésről.

Django adatbázis biztonsági mentés

Alternatív megoldásként az adatbázist a Django dumpdata parancsával is lementheti. Így a biztonsági mentés adatbázisfüggetlen lesz, és akkor is használható, ha később adatbázismotort szeretne váltani.

FONTOS: Az adatbázis visszaállítása előtt pontosan ugyanazt a Weblate-verziót kell futtatnia, amelyen a biztonsági mentés készült. Erre azért van szükség, mert a verziók között az adatbázis szerkezete változhat, és ennek figyelmen kívül hagyása adatvesztést okozhat. A megfelelő verzió telepítése után futtassa az összes adatbázis-migrációt a migrate paranccsal.

Ezután az adatbázisban már néhány bejegyzés létrejön, amelyek a biztonsági mentésben is megtalálhatók. Ajánlott ezeket kézzel törölni a kezelői parancssorban (lásd: Kezelőparancsok futtatása):

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

Fájlok

Ha elegendő tárhely áll rendelkezésre, a legegyszerűbb az egész DATA_DIR könyvtár biztonsági mentése. Ez biztonságos megoldás akkor is, ha néhány olyan fájlt is tartalmaz, amit nem feltétlenül szeretne megőrizni. Az alábbiakban részletezzük, mit érdemes lementeni, és mit lehet esetleg kihagyni.

Lementett adatok (dumpok) a biztonsági mentésekhez

A 4.7 verzióban változott: A Docker-környezetekben való visszaállítást segítendő, az environment.yml fájlban környezeti mentés is készül.

Tárolási helye: DATA_DIR /backups.

A Weblate itt többféle adatot helyez el, és ezek bevonásával teljesebb biztonsági mentés készíthető. A fájlok naponta frissülnek (ehhez működő Celery beats szerver szükséges, lásd: Háttérfeladatok Celery használatával). Jelenleg az alábbiakat tartalmazza:

  • Weblate beállítások: settings.py (illetve kibővített változata: settings-expanded.py).

  • PostgreSQL adatbázis-mentés: database.sql.

  • Környezeti dump environment.yml fájlként.

Az adatbázis-mentések alapértelmezetten szöveges formátumban kerülnek mentésre, de tömörítve is elmenthetők vagy akár teljesen kihagyhatók a DATABASE_BACKUP beállítással.

Az adatbázis-mentés visszaállításához töltse be az állományt adatbáziskezelő eszközök segítségével, például:

psql --file=database.sql weblate

Verziókezelő tárolók

Tárolási hely: DATA_DIR /vcs.

A verziókezelő tárolók a forrás tárolók másolatait tartalmazzák a Weblate módosításaival együtt. Ha az összes fordítási összetevőjénél engedélyezte a Feltöltés véglegesítéskor (Push on commit) funkciót, akkor minden változtatás visszakerül a forrás tárolóba is. Ebben az esetben nem szükséges lementeni a Weblate tárolóit, mivel azokat bármikor újraklónozhatja adatvesztés nélkül.

SSH- és GPG-kulcsok

Tárolási helyek: DATA_DIR /ssh és DATA_DIR /home.

Ha a Weblate által generált SSH- vagy GPG-kulcsokat használja, akkor ezeket a helyeket mindenképp érdemes lementeni. Ellenkező esetben elveszítheti a privát kulcsokat és új kulcsokat kell majd létrehoznia.

Generated SSH wrapper scripts are stored in CACHE_DIR and do not need to be backed up.

Felhasználók által feltöltött fájlok

Tárolási hely: DATA_DIR /media.

Minden felhasználó által feltöltött fájlt érdemes lementeni (például: Screenshots and visual context).

Celery feladatok

A Celery feladatok várósora némi információt tartalmazhat, de általában nincs szükség ezek biztonsági mentésére. Legfeljebb olyan frissítések veszhetnek el, amelyek még nem kerültek feldolgozásra a fordítási memóriába. A visszaállítás után mindenképp ajánlott teljes szöveges keresési frissítést vagy tárolófrissítést végezni, így ezek elvesztése nem jelent problémát.

Parancssori kézi biztonsági mentés

Cron ütemezéssel beállítható egy Bash parancs, amely például naponta lefut:

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

A menteni kívánt mappák és fájlok listája igény szerint módosítható. Ha a fordítási memóriát (a backups mappában) nem szeretné elmenteni, használhatja az alábbi megoldást:

$ 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

Kézi biztonsági mentés visszaállítása

  1. Állítsa vissza az összes mentett adatot.

  2. Frissítse az összes tárolót a updategit paranccsal.

    weblate updategit --all
    

Weblate telepítés áthelyezése

Másik rendszerre való költöztetéskor kövesse a fenti biztonsági mentési és visszaállítási útmutatót.