Weblate 백업 및 이전¶
프로젝트 수준 백업¶
Added in version 4.14.
프로젝트 백업은 Weblate의 모든 번역 콘텐츠(프로젝트, 구성요소, 번역, 문자열 의견, 제안 또는 검사)를 백업합니다. 프로젝트를 다른 Weblate 인스턴스로 전송하는 데 적합합니다.
작업 ↓ 백업 에서 프로젝트 백업을 수행할 수 있습니다. 백업은 프로젝트 생성 시 복원할 수 있습니다 ( 번역 프로젝트 및 구성요소 추가 참조).
참고
Project backups can also be created, listed, and downloaded through the Weblate의 REST API since version 2026.7;
현재 백업에는 접근 제어 정보와 히스토리가 포함되지 않습니다.
의견과 제안은 작성한 사용자의 사용자 이름과 함께 백업됩니다. 가져올 때 일치하는 사용자에게 할당됩니다. 해당 사용자 이름의 사용자가 없으면 익명 사용자에게 할당됩니다.
생성된 백업은 PROJECT_BACKUP_KEEP_DAYS 및 PROJECT_BACKUP_KEEP_COUNT 설정에 따라 서버에 보관됩니다 (기본값: 최대 30일간 최대 3개 백업 보관).
업로드된 프로젝트 백업의 가져오기 검증은 다음 설정을 사용하여 미세 조정할 수 있음: 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.
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.
생성된 파일을 번역 프로젝트 및 구성요소 추가 또는 import_projectbackup 에서 프로젝트를 가져오는 데 사용하세요.
참고
복원 서버에 언어 정의 세트가 다르거나 SIMPLIFY_LANGUAGES 구성이 다른 경우 백업 복원이 실패할 수 있습니다. 복원 시 처리할 수 없는 언어 코드를 알려주며, 누락된 언어 정의를 수동으로 추가할 수 있습니다.
BorgBackup을 사용한 자동 백업¶
Weblate에는 BorgBackup 을 사용한 서비스 백업 생성 기능이 내장되어 있습니다. Borg는 클라우드에 안전하게 저장할 수 있는 공간 효율적인 암호화 백업을 생성합니다. 백업은 관리 인터페이스의 백업 탭에서 제어할 수 있습니다.
버전 4.4.1에서 변경: PostgreSQL 데이터베이스는 자동 백업에 포함됩니다.
Borg를 사용하는 백업은 증분 방식이며 Weblate는 다음 백업을 보관하도록 설정됩니다:
14일간의 일일 백업
8주간의 주간 백업
6개월간의 월간 백업
Borg 암호화 키¶
BorgBackup 은 암호화된 백업을 생성하며 암호가 없으면 백업을 복원할 수 없습니다. 비밀번호는 새 백업 서비스를 추가할 때 생성되므로 복사하여 안전한 곳에 보관해야 합니다.
Weblate 프로비저닝 백업 저장소 를 사용하는 경우, 개인 SSH 키를 백업하여 백업에 액세스하는 데 사용됩니다.
더 보기
백업 사용자 정의¶
데이터베이스 백업은
DATABASE_BACKUP을 통해 구성할 수 있습니다.백업 생성은
BORG_EXTRA_ARGS를 사용하여 사용자 지정할 수 있습니다.
Weblate 프로비저닝 백업 저장소¶
Weblate 인스턴스를 백업하는 가장 쉬운 방법은 에서 DeepL 백업 서비스를 구입하는 것입니다. 이렇게 하면 실행할 수 있습니다:
https://weblate.org/support/#backup에서 백업 서비스 를 구매합니다.
관리 인터페이스에 받은 키를 입력합니다 ( 지원 통합 참조).
Weblate가 클라우드 서비스에 연결하여 백업 접근 정보를 가져옵니다.
백업 탭에서 새 백업 설정을 활성화합니다.
백업을 복원할 수 있도록 Borg 자격 증명을 백업하세요 ( Borg 암호화 키 참조).
힌트
모든 것을 수동으로 활성화하는 단계는 안전을 위한 것입니다. 동의 없이는 등록 프로세스를 통해 획득한 백업 저장소로 데이터가 전송되지 않습니다.
사용자 정의 백업 저장소 사용¶
직접 만든 저장소를 백업에 사용할 수도 있습니다. SSH를 사용하여 원격 대상에 백업을 저장할 수 있으며, 대상 서버에 BorgBackup 이 설치되어 있어야 합니다.
더 보기
Borg 문서의 General
로컬 파일 시스템¶
로컬 백업에는 절대 경로를 지정하는 것이 좋습니다 (예: /path/to/backup). 디렉터리는 Weblate를 실행하는 사용자가 쓸 수 있어야 합니다 ( 파일 시스템 권한 참조). 디렉터리가 없으면 Weblate가 생성을 시도하지만 적절한 권한이 필요합니다.
힌트
Docker에서 Weblate를 실행할 때, 백업 위치가 Weblate 컨테이너의 볼륨으로 노출되도록 하세요. 그렇지 않으면 컨테이너를 다시 시작할 때 Docker가 백업을 삭제합니다.
한 가지 방법은 기존 볼륨 (예: /app/data/borgbackup)에 백업을 배치하는 것입니다. 이는 컨테이너의 기존 볼륨입니다.
Docker Compose 파일에서 예를 들어 /borgbackup 을 사용하여 백업용 새 컨테이너를 추가할 수도 있음:
services:
weblate:
volumes:
- /home/weblate/data:/app/data
- /home/weblate/borgbackup:/borgbackup
백업이 저장될 디렉터리는 UID 1000이 소유해야 합니다. 그렇지 않으면 Weblate가 그곳에 백업을 쓸 수 없습니다.
원격 백업¶
원격 백업을 만들기 위해서는 Weblate SSH 키를 사용하여 SSH를 통해 Weblate 배포에 액세스하는 또 다른 서버에 BorgBackup 를 설치해야 합니다:
백업이 저장될 서버를 준비합니다.
SSH 서버를 설치합니다 (대부분의 Linux 배포판에서는 기본으로 설치됩니다).
해당 서버에 BorgBackup 을 설치합니다. 대부분의 Linux 배포판에서 패키지를 제공합니다 (Installation 참조).
기존 사용자를 선택하거나 백업에 사용할 새 사용자를 만드세요.
Weblate가 비밀번호 없이 SSH로 서버에 접속할 수 있도록 사용자의 .ssh/authorized_keys 파일에 Weblate SSH 키를 추가하세요 ( Weblate SSH 키 참조).
Weblate가 원격으로 Borg 백업 저장소를 설정할 수 있는 사용자 쓰기 가능 디렉터리를 만드세요. 예: 홈 디렉터리 (
/home/borg/backups).Weblate에서 백업 위치를
user@host:/home/borg/backups또는ssh://user@host:port/home/borg/backups로 설정하세요.이 기능이 활성화되면 백업이 매일 자동으로 실행됩니다. 또한 Weblate UI에서 또는 backup 를 사용하여 수동으로 백업을 실행할 수도 있습니다.
힌트
Weblate 프로비저닝 백업 저장소 는 별도의 노력 없이 자동 원격 백업을 제공합니다.
더 보기
BorgBackup에서 복원¶
백업 저장소에 대한 접근을 복원하고 백업 암호문구를 준비하세요.
borg list REPOSITORY를 사용하여 서버의 모든 백업을 나열합니다.borg extract REPOSITORY::ARCHIVE를 사용하여 원하는 백업을 현재 디렉터리에 복원합니다.Weblate 데이터 디렉터리의
backup디렉터리에 있는 SQL 덤프에서 데이터베이스를 복원합니다 ( 백업용 덤프 데이터 참조).Weblate 설정 (
backups/settings.py, 백업용 덤프 데이터 참조)을 올바른 위치에 복사합니다 ( 설정 조정 참조).Docker 컨테이너를 사용하는 경우, 설정 파일은 이미 컨테이너에 포함되어 있으므로 원래 환경 변수를 복원해야 합니다.
environment.yml파일이 도움이 될 수 있습니다 ( 백업용 덤프 데이터 참조).복원된 전체 데이터 디렉터리를
DATA_DIR로 설정된 위치에 복사합니다.Docker 컨테이너를 사용하는 경우 데이터를 데이터 볼륨에 배치합니다 ( Docker 컨테이너 볼륨 참조).
파일의 소유권과 권한이 올바른지 확인하세요 ( 파일 시스템 권한 참조).
Borg 세션은 다음과 같음:
$ 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:
더 보기
Docker 기반 설정 복원¶
다음 단계는 번들 PostgreSQL 및 Valkey 서비스를 사용하는 공식 Docker Compose 설정을 기준으로 합니다 ( Docker를 사용한 설치 참조). 배포에서 외부 데이터베이스 또는 사용자 정의 Compose 파일을 사용하는 경우 해당 환경에 맞게 데이터베이스 및 볼륨 단계를 조정하세요.
복원된 배포에 맞는 Docker Compose 체크아웃부터 시작합니다. 원래 Compose 오버라이드, 시크릿, 환경 변수를 복원합니다. 백업용 덤프 데이터 의 environment.yml 파일이 도움이 될 수 있지만 자동으로 가져오지는 않습니다.
BorgBackup에서 복원 를 사용하여 백업 아카이브를 복원하거나 수동 백업을 풀어서 Weblate 데이터 디렉터리와
backups/database.sql을 사용할 수 있도록 하세요.데이터베이스 또는 데이터 볼륨에 쓸 수 있는 서비스를 중지함:
docker compose stop weblate cache
PostgreSQL 볼륨을 다시 생성합니다.
docker compose stop database docker compose rm -v database docker volume remove weblate-docker_postgres-data
볼륨 이름은 Compose 프로젝트 이름에 따라 다르며
weblate-docker_postgres-data와 다를 수 있습니다. 볼륨을 제거하기 전에 설정을 확인하세요.데이터베이스 서비스를 시작함:
docker compose up -d database
데이터베이스 덤프를 복원함:
cat backups/database.sql | docker compose exec -T database psql --username weblate --dbname weblate
데이터베이스 이름이 Compose 설정의
POSTGRES_DB와 일치하는지, 사용자가POSTGRES_USER와 일치하는지 확인하세요.Weblate 데이터 디렉터리를
/app/data로 마운트된 Docker 데이터 볼륨에 복원합니다 ( Docker 컨테이너 볼륨 참조). 이 볼륨의 파일은 UID 1000이 소유해야 합니다 ( 파일 시스템 권한 참조).나머지 서비스를 시작하고 로그를 확인함:
docker compose up -d docker compose logs -f
Weblate 컨테이너는 시작 시 데이터베이스 마이그레이션을 수행합니다. Weblate를 업그레이드하는 경우 Docker 컨테이너 업그레이드 를 따르세요.
복원 후 저장소를 새로 고칩니다:
docker compose exec --user weblate weblate weblate updategit --all
수동 백업¶
저장하려는 항목에 따라 Weblate가 각 위치에 저장하는 데이터 유형을 백업하세요.
힌트
수동 백업을 수행하는 경우, settings.py 의 SILENCED_SYSTEM_CHECKS 에 weblate.I028 를 추가하거나 Docker의 경우 WEBLATE_SILENCED_SYSTEM_CHECKS 를 설정하여 Weblate의 백업 부재 경고를 무시할 수 있습니다.
SILENCED_SYSTEM_CHECKS.append("weblate.I028")
데이터베이스¶
실제 저장 위치는 데이터베이스 설정에 따라 다릅니다.
힌트
데이터베이스는 가장 중요한 저장소입니다. 데이터베이스의 정기 백업을 설정하세요. 데이터베이스가 없으면 모든 번역이 사라집니다.
네이티브 데이터베이스 백업¶
권장 방법은 pg_dump 와 같은 데이터베이스 네이티브 도구를 사용하여 데이터베이스 덤프를 저장하는 것입니다. 일반적으로 Django 백업보다 성능이 좋으며, 모든 데이터가 포함된 완전한 테이블을 복원합니다.
이 백업을 최신 Weblate 릴리스에서 복원할 수 있으며, migrate 실행 시 모든 필요한 마이그레이션을 수행합니다. 버전 간 업그레이드에 대한 자세한 정보는 Weblate 업그레이드 를 참조하세요.
Django 데이터베이스 백업¶
또는 Django의 dumpdata 명령을 사용하여 데이터베이스를 백업할 수 있습니다. 이렇게 하면 백업이 데이터베이스에 독립적이므로 데이터베이스 백엔드를 변경하려는 경우에 사용할 수 있습니다.
데이터베이스를 복원하기 전에 백업이 생성된 것과 정확히 동일한 Weblate 버전을 실행해야 합니다. 릴리스 간에 데이터베이스 구조가 변경되므로 이를 준수하지 않으면 데이터가 손상될 수 있습니다. 동일한 버전을 설치한 후 migrate 를 사용하여 모든 데이터베이스 마이그레이션을 실행하세요.
그 후 일부 항목이 이미 데이터베이스에 생성되어 있고 데이터베이스 백업에도 포함됩니다. 권장 방법은 관리 셸 ( 관리 명령 호출 참조)을 사용하여 해당 항목을 수동으로 삭제하는 것임:
weblate shell
>>> from weblate.auth.models import User
>>> User.objects.get(username='anonymous').delete()
파일¶
충분한 백업 공간이 있으면 DATA_DIR 전체를 백업하세요. 원하지 않는 파일이 포함되어 있어도 안전한 방법입니다. 다음 섹션에서 백업해야 할 항목과 건너뛸 수 있는 항목을 자세히 설명합니다.
백업용 덤프 데이터¶
버전 4.7에서 변경: 환경 덤프는 Docker 환경에서의 복원을 돕기 위해 environment.yml 로 추가되었습니다.
DATA_DIR /backups 에 저장됩니다.
Weblate는 여기에 다양한 데이터를 덤프하며, 이 파일을 포함하면 더 완전한 백업이 됩니다. 파일은 매일 업데이트됩니다 (실행 중인 Celery 비트 서버 필요, Celery를 사용한 백그라운드 작업 참조). 현재 포함되는 항목:
Weblate 설정
settings.py(확장 버전settings-expanded.py도 있음).PostgreSQL 데이터베이스 백업
database.sql.환경 덤프
environment.yml.
데이터베이스 백업은 기본적으로 일반 텍스트로 저장되지만, DATABASE_BACKUP 를 사용하여 압축하거나 완전히 건너뛸 수도 있습니다.
데이터베이스 백업을 복원하려면 데이터베이스 도구를 사용하여 로드합니다. 예:
psql --file=database.sql weblate
버전 관리 저장소¶
DATA_DIR /vcs 에 저장됩니다.
버전 관리 저장소에는 Weblate 변경 사항이 포함된 업스트림 저장소의 복사본이 포함됩니다. 모든 번역 구성요소에 커밋 시 푸시 이 활성화된 경우, 모든 Weblate 변경 사항이 업스트림에 포함됩니다. 업스트림 위치에서 데이터 손실 없이 다시 클론할 수 있으므로 Weblate 측의 저장소를 백업할 필요가 없습니다.
SSH 및 GPG 키¶
DATA_DIR /ssh 및 DATA_DIR /home 에 저장됩니다.
Weblate에서 생성한 SSH 또는 GPG 키를 사용하는 경우 이 위치를 백업해야 합니다. 그렇지 않으면 개인 키를 잃게 되며 새 키를 다시 생성해야 합니다.
생성된 SSH 래퍼 스크립트는 CACHE_DIR 에 저장되며 백업할 필요가 없습니다.
사용자 업로드 파일¶
DATA_DIR /media 에 저장됩니다.
사용자가 업로드한 모든 파일 (예: 스크린샷 및 시각적 컨텍스트)을 백업해야 합니다.
Celery 작업¶
Celery 작업 큐에는 일부 정보가 포함될 수 있지만 백업에 일반적으로 필요하지 않습니다. 최악의 경우 번역 메모리에 아직 처리되지 않은 업데이트를 잃게 됩니다. 어차피 복원 시 전체 텍스트 또는 저장소 업데이트를 수행하는 것이 권장되므로 이를 잃어도 문제가 되지 않습니다.
더 보기
수동 백업 커맨드라인¶
cron 작업을 사용하여 매일 실행되는 Bash 명령을 설정할 수 있습니다. 예:
$ tar -Jcf ~/backup/weblate-backup-$(date -u +%Y-%m-%d_%H%M%S).xz backups vcs ssh home media fonts secret
필요에 따라 폴더 및 파일 목록을 조정할 수 있습니다. 번역 메모리 (백업 폴더 내)를 저장하지 않으려면 다음을 사용하세요:
$ 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
수동 백업 복원¶
백업한 모든 데이터를 복원합니다.
updategit를 사용하여 모든 저장소를 업데이트합니다.weblate updategit --all
Weblate 설치 이전¶
위의 백업 및 복원 지침에 따라 설치를 다른 시스템으로 이전합니다.