Còpia de seguretat i moviment de Weblate

Project level backups

Afegit a la versió 4.14.

El projecte fa una còpia de seguretat de tot el contingut de traducció de Weblate (projecte, components, traduccions, comentaris de cadena, suggeriments o comprovacions). És adequat per transferir un projecte a una altra instància de Weblate.

The backup includes every component in the project, including restricted components which the administrator can not open directly. Creating, listing, and downloading these backups requires Edit project settings. Grant that permission only to users trusted with the complete project contents.

Podeu fer una còpia de seguretat del projecte a Operacions ↓ Còpies de seguretat. La còpia de seguretat es pot restaurar quan es crea un projecte (vegeu Afegir projectes i components de traducció).

Nota

Project backups can also be created, listed, and downloaded through the API REST del Weblate since version 2026.7;

The backups include project-scoped teams and their memberships, 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.

Missing repository directories are skipped while component and translation data are still backed up. Repository maintenance failures are logged, and the backup continues with the available repository files. Filesystem access and I/O errors cause the backup to fail, and incomplete archives are removed. Restoring a backup with missing or invalid repository metadata preserves the available files, components, and translation data, but the repository must be recovered separately.

Els comentaris i els suggeriments tenen una còpia de seguretat amb el nom d’usuari de l’usuari que els ha creat. En importar-lo, s’assigna a un usuari coincident. Si no hi ha cap usuari amb aquest nom d’usuari, s’assigna a un usuari anònim.

Les còpies de seguretat generades es guarden al servidor tal com s’ha configurat per PROJECT_BACKUP_KEEP_DAYS i PROJECT_BACKUP_KEEP_COUNT (per defecte es conserva com a màxim 3 còpies de seguretat durant 30 dies).

La validació d’importació de les còpies de seguretat del projecte carregades es pot ajustar mitjançant 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 i PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO.

The complete backup is validated before restoring any data. Invalid object fields, references, repository paths, URLs, regular expressions, or screenshot files cause the import to be rejected without creating a partial project.

Utilitzeu el fitxer generat per importar el projecte quan Afegir projectes i components de traducció o a import_projectbackup.

Nota

Restoring of the backup might fail if the restoring server has different set of Definicions del llenguatge 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.

Còpia de seguretat automatitzada amb BorgBackup

Weblate té suport integrat per crear còpies de seguretat de serveis mitjançant BorgBackup. Borg crea còpies de seguretat xifrades eficients per a l’espai que es poden emmagatzemar de manera segura al núvol. Les còpies de seguretat es poden controlar a la interfície de gestió des de la pestanya Còpies de seguretat.

Canviat a la versió 4.4.1: Les bases de dades PostgreSQL s’inclouen a les còpies de seguretat automatitzades.

Les còpies de seguretat que utilitzen Borg són incrementals i Weblate està configurat per mantenir les següents còpies de seguretat:

  • Daily backups for 14 days back

  • Còpies de seguretat setmanals durant 8 setmanes enrere

  • Còpies de seguretat mensuals durant 6 mesos enrere

../_images/backups.webp

Clau de xifratge Borg

BorgBackup crea còpies de seguretat xifrades i no les podríeu restaurar sense la contrasenya. La contrasenya es genera en afegir un nou servei de còpia de seguretat i l’has de copiar i guardar-lo en un lloc segur.

Si utilitzeu Emmagatzematge de còpia de seguretat proporcionat per Weblate, feu una còpia de seguretat de la vostra clau privada SSH també, ja que s’utilitza per accedir a les vostres còpies de seguretat.

Vegeu també

borg init

Customizing backup

  • La còpia de seguretat de la base de dades es pot configurar mitjançant DATABASE_BACKUP.

  • La creació de còpies de seguretat es pot personalitzar mitjançant BORG_EXTRA_ARGS.

Emmagatzematge de còpia de seguretat proporcionat per Weblate

The easiest way of backing up your Weblate instance is purchasing the backup service at weblate.org. It is available for Weblate running in your own environment and does not require a hosting or separate support subscription.

This is how you get it running:

  1. In the management interface, open Backups and select Buy backup service, or purchase the backup service directly.

  2. Enter the obtained activation token in Activate support package on the Backups page, see Suport integrador.

  3. Weblate es connecta al servei al núvol i obté informació d’accés per a les còpies de seguretat.

  4. Activeu la nova configuració de còpia de seguretat des de la pestanya Còpies de seguretat.

  5. Back up your Borg credentials to be able to restore the backups, see Clau de xifratge Borg.

Suggeriment

El pas manual d’encendre-ho tot està allà per la vostra seguretat. Sense el vostre consentiment no s’envien dades al repositori de còpia de seguretat obtingut mitjançant el procés de registre.

Ús d’emmagatzematge de còpia de seguretat personalitzat

També podeu utilitzar el vostre propi emmagatzematge per a les còpies de seguretat. SSH es pot utilitzar per emmagatzemar còpies de seguretat a la destinació remota, el servidor de destinació ha de tenir instal·lat BorgBackup.

Vegeu també

General a la documentació Borg

Sistema de fitxers local

Es recomana especificar la ruta absoluta per a la còpia de seguretat local, per exemple /path/to/backup. L’usuari que executa Weblate ha de poder escriure el directori (vegeu Permisos del sistema de fitxers). Si no existeix, Weblate intenta crear-lo, però necessita els permisos adequats per fer-ho.

Suggeriment

Quan executeu Weblate a Docker, assegureu-vos que la ubicació de la còpia de seguretat estigui exposada com a volum des del contenidor Weblate. En cas contrari, Docker descartarà les còpies de seguretat en reiniciar el contenidor on es troba.

Una opció és col·locar còpies de seguretat en un volum existent, per exemple /app/data/borgbackup. Aquest és un volum existent al contenidor.

També podeu afegir un contenidor nou per a les còpies de seguretat al fitxer Docker Compose, per exemple, utilitzant /borgbackup:

services:
  weblate:
    volumes:
      - /home/weblate/data:/app/data
      - /home/weblate/borgbackup:/borgbackup

El directori on s’emmagatzemaran les còpies de seguretat ha de ser propietat de l’UID 1000, en cas contrari, Weblate no podrà escriure les còpies de seguretat allà.

Remote backups

Per crear còpies de seguretat remotes, haureu d’instal·lar BorgBackup en un altre servidor que sigui accessible per al vostre desplegament de Weblate mitjançant SSH mitjançant la clau SSH de Weblate:

  1. Prepareu un servidor on s’emmagatzemaran les vostres còpies de seguretat.

  2. Instal·leu-hi el servidor SSH (l’obtindrà per defecte amb la majoria de distribucions de Linux).

  3. Instal·leu BorgBackup en aquest servidor; la majoria de distribucions de Linux tenen paquets disponibles (vegeu Installation).

  4. Trieu un usuari existent o creeu un usuari nou que s’utilitzarà per fer una còpia de seguretat.

  5. Afegiu la clau SSH de Weblate al fitxer .ssh/authorized_keys de l’usuari, de manera que Weblate pugui SSH al servidor sense contrasenya (vegeu Clau SSH de Weblate).

  6. Creeu un directori que pugui escriure l’usuari on Weblate pugui configurar de forma remota el dipòsit de còpia de seguretat de Borg, per exemple, al directori d’inici (és a dir, /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. Un cop habilitades, les còpies de seguretat s’activaran automàticament diàriament. També podeu activar manualment una còpia de seguretat des de la interfície d’usuari de Weblate o utilitzant backup.

Suggeriment

Emmagatzematge de còpia de seguretat proporcionat per Weblate us ofereix còpies de seguretat remotes automatitzades sense cap esforç.

Restauració des de BorgBackup

  1. Restaura l’accés al dipòsit de còpia de seguretat i prepara la contrasenya de còpia de seguretat.

  2. Llista totes les còpies de seguretat del servidor utilitzant borg list REPOSITORY.

  3. Restaura la còpia de seguretat desitjada al directori actual utilitzant borg extract REPOSITORY::ARCHIVE.

  4. Restaura la base de dades des de l’abocament SQL situat al directori backup al directori de dades de Weblate (vegeu Dades bolcades per a còpies de seguretat).

  5. Copieu la configuració del Weblate (backups/settings.py, vegeu Dades bolcades per a còpies de seguretat) a la ubicació correcta, vegeu Ajust de configuració.

    Quan feu servir el contenidor Docker, el fitxer de configuració ja s’inclou al contenidor i hauríeu de restaurar les variables d’entorn originals. El fitxer environment.yml us pot ajudar amb això (vegeu Dades bolcades per a còpies de seguretat).

  6. Copieu tot el directori de dades restaurat a la ubicació configurada per DATA_DIR.

    Quan utilitzeu el contenidor Docker, col·loqueu les dades al volum de dades, vegeu Volums de contenidors Docker.

    Assegureu-vos que els fitxers tinguin la propietat i els permisos correctes, vegeu Permisos del sistema de fitxers.

La sessió Borg podria semblar així:

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

Vegeu també

Restauració de la configuració basada en Docker

Els passos següents assumeixen la configuració oficial de Docker Compose utilitzant els serveis de PostgreSQL i Valkey inclosos, vegeu Instal·lació mitjançant Docker. Si el vostre desplegament utilitza una base de dades externa o un fitxer Compose personalitzat, adapteu la base de dades i els passos del volum a aquest entorn.

Comenceu amb una compra de Docker Compose que coincideixi amb la implementació restaurada. Restaura les teves substitucions, secrets i variables d’entorn originals de Compose. El fitxer environment.yml de Dades bolcades per a còpies de seguretat pot ajudar amb això, però no s’importa automàticament.

  1. Restaureu l’arxiu de còpia de seguretat mitjançant Restauració des de BorgBackup o desempaqueteu la vostra còpia de seguretat manual perquè el directori de dades de Weblate i backups/database.sql estiguin disponibles.

  2. Atureu els serveis que poden escriure a la base de dades o al volum de dades:

    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
    

    El nom del volum depèn del nom del projecte Compose i pot diferir de weblate-docker_postgres-data. Comproveu la vostra configuració abans de treure qualsevol volum.

  4. Inicieu el servei de base de dades:

    docker compose up -d database
    
  5. Restaura l’abocament de la base de dades:

    cat backups/database.sql | docker compose exec -T database psql --username weblate --dbname weblate
    

    Comproveu que el nom de la base de dades coincideixi amb POSTGRES_DB i que l’usuari coincideixi amb POSTGRES_USER a la vostra configuració de Compose.

  6. Restaura el directori de dades de Weblate al volum de dades de Docker muntat com a /app/data, vegeu Volums de contenidors Docker. Els fitxers d’aquest volum han de ser propietat de l’UID 1000, vegeu Permisos del sistema de fitxers.

  7. Inicieu els serveis restants i seguiu els registres:

    docker compose up -d
    docker compose logs -f
    

    El contenidor Weblate realitza migracions de bases de dades a l’inici. Si també esteu actualitzant Weblate, seguiu S’està actualitzant el contenidor Docker.

  8. Actualitzeu els dipòsits després de la restauració:

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

Còpia de seguretat manual

En funció del que vulgueu desar, feu una còpia de seguretat del tipus de dades que Weblate emmagatzema a cada lloc respectiu.

Suggeriment

If you are doing the manual backups, you might want to silence Weblate’s warning about a lack of backups by adding weblate.I028 to SILENCED_SYSTEM_CHECKS in settings.py or WEBLATE_SILENCED_SYSTEM_CHECKS for Docker.

SILENCED_SYSTEM_CHECKS.append("weblate.I028")

Database

La ubicació d’emmagatzematge real depèn de la configuració de la vostra base de dades.

Suggeriment

La base de dades és l’emmagatzematge més important. Configureu còpies de seguretat periòdiques de la vostra base de dades. Sense la base de dades, totes les traduccions han desaparegut.

Còpia de seguretat de la base de dades nativa

L’enfocament recomanat és desar un bolcat de la base de dades utilitzant eines natives de la base de dades com ara pg_dump. Normalment funciona millor que la còpia de seguretat de Django i restaura taules completes amb totes les seves dades.

You can restore this backup in a newer Weblate release, it will perform all the necessary migrations when running in migrate. Please consult Upgrading Weblate on more detailed info on how to upgrade between versions.

Còpia de seguretat de la base de dades Django

Alternativament, podeu fer una còpia de seguretat de la vostra base de dades mitjançant l’ordre dumpdata de Django. D’aquesta manera, la còpia de seguretat és independent de la base de dades i es pot utilitzar en cas que vulgueu canviar el backend de la base de dades.

Abans de restaurar la base de dades, heu d’executar exactament la mateixa versió de Weblate on es va fer la còpia de seguretat. Això és necessari, ja que l’estructura de la base de dades canvia entre versions i acabareu corrompent les dades d’alguna manera. Després d’instal·lar la mateixa versió, executeu totes les migracions de bases de dades amb migrate.

Després ja es crearan algunes entrades a la base de dades i també les tindreu a la còpia de seguretat de la base de dades. L’enfocament recomanat és suprimir aquestes entrades manualment mitjançant l’intèrpret d’ordres de gestió (vegeu Invocació d’ordres de gestió):

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

Fitxers

Si teniu prou espai de còpia de seguretat, simplement feu una còpia de seguretat de tot el DATA_DIR. Aquesta és una aposta segura fins i tot si inclou alguns fitxers que no voleu. Les seccions següents descriuen què hauríeu de fer una còpia de seguretat i què podeu saltar amb detall.

Dades bolcades per a còpies de seguretat

Canviat a la versió 4.7: L’abocament de l’entorn es va afegir com a environment.yml per ajudar a restaurar els entorns Docker.

Emmagatzemat a DATA_DIR /backups.

Weblate aboca diverses dades aquí i podeu incloure aquests fitxers per obtenir còpies de seguretat més completes. Els fitxers s’actualitzen diàriament (requereix un servidor Celery beats en funcionament, vegeu Tasques de fons amb api). Actualment, això inclou:

  • Configuració del weblate com a settings.py (també hi ha una versió ampliada a settings-expanded.py).

  • Còpia de seguretat de la base de dades PostgreSQL com a database.sql.

  • Abocament d’entorn com a environment.yml.

Les còpies de seguretat de la base de dades es guarden com a text sense format per defecte, però també es poden comprimir o ometre completament mitjançant DATABASE_BACKUP.

Per restaurar la còpia de seguretat de la base de dades, carregueu-la amb eines de base de dades, per exemple:

psql --file=database.sql weblate

Repositoris de control de versions

Emmagatzemat a DATA_DIR /vcs.

Els dipòsits de control de versions contenen una còpia dels vostres dipòsits amunt amb els canvis de Weblate. Si teniu activat Puja en fer una comissió per a tots els vostres components de traducció, tots els canvis de Weblate s’inclouen aigües amunt. No cal fer una còpia de seguretat dels dipòsits al costat de Weblate, ja que es poden clonar de nou des de la ubicació amunt sense pèrdua de dades.

Claus SSH i GPG

Emmagatzemat a DATA_DIR /ssh i DATA_DIR /home.

Si utilitzeu claus SSH o GPG generades per Weblate, hauríeu de fer una còpia de seguretat d’aquestes ubicacions. En cas contrari, perdràs les claus privades i hauràs de regenerar-ne de noves.

Els scripts d’embolcall SSH generats s’emmagatzemen a CACHE_DIR i no cal fer una còpia de seguretat.

Fitxers carregats per l’usuari

Emmagatzemat a DATA_DIR /media.

You should back up all user uploaded files (e.g. Screenshots and visual context).

Tasques d’api

La cua de tasques d’Api pot contenir alguna informació, però normalment no és necessària per a una còpia de seguretat. Com a molt, perdràs les actualitzacions que encara no s’han processat a la memòria de traducció. Es recomana dur a terme l’actualització del text complet o del dipòsit després de la restauració de totes maneres, de manera que no hi ha cap problema a perdre’ls.

Línia d’ordres per a una còpia de seguretat manual

Mitjançant una tasca cron, podeu configurar una ordre Bash per executar-la diàriament, per exemple:

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

Podeu ajustar la llista de carpetes i fitxers segons les vostres necessitats. Per evitar desar la memòria de traducció (a la carpeta de còpies de seguretat), podeu utilitzar:

$ 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

Restauració de la còpia de seguretat manual

  1. Restaura totes les dades de les quals hagis fet una còpia de seguretat.

  2. Actualitzeu tots els repositoris mitjançant updategit.

    weblate updategit --all
    

Moure una instal·lació de Weblate

Canvieu la vostra instal·lació a un sistema diferent seguint les instruccions de còpia de seguretat i restauració anteriors.