Docker를 사용한 설치¶
도커화된 Weblate 배포를 사용하면 몇 초 만에 개인 Weblate 인스턴스를 가동할 수 있습니다. Weblate의 모든 종속성이 이미 포함되어 있습니다. PostgreSQL이 기본 데이터베이스로, Valkey가 캐싱 백엔드로 설정됩니다.
하드웨어 요구사항¶
Weblate는 모든 최신 하드웨어에서 문제없이 실행되어야 합니다. 다음은 단일 호스트(Weblate, 데이터베이스 및 웹 서버)에서 Weblate를 실행하는 데 필요한 최소 설정임:
RAM 3GB
CPU 코어 2개
저장 공간 1GB
참고
Weblate 설치의 실제 요구사항은 관리되는 번역의 크기에 따라 크게 달라집니다.
메모리 사용¶
메모리는 많을수록 좋습니다 - 모든 수준(파일 시스템, 데이터베이스 및 Weblate)에서 캐싱에 사용됩니다. 수백 개의 번역 구성요소의 경우 최소 4GB RAM이 권장됩니다.
힌트
권장보다 메모리가 적은 시스템에서는 단일 프로세스 Celery 설정 가 권장됩니다.
CPU 사용¶
많은 동시 사용자는 필요한 CPU 코어 수를 증가시킵니다.
Weblate 2026.8 introduced NumPy as a required dependency. On x86-64 systems, the optimized NumPy build bundled in the Docker image requires an x86-64-v2 compatible CPU. Without the required CPU features, NumPy fails to load and Weblate cannot start.
Before upgrading, check for the required SSE4.2 CPU feature on the Linux system running Docker:
grep sse4_2 /proc/cpuinfo
Empty output indicates that a required CPU feature is unavailable. This is a preliminary check; finding SSE4.2 does not verify all x86-64-v2 CPU features.
If Docker runs in a virtual machine, run the check inside the guest. Virtual machines can hide CPU features supported by the host. Configure the virtual machine to expose the required host CPU features, then reboot the guest. If the physical CPU lacks the required features, upgrade the hardware.
저장공간 사용¶
일반적인 데이터베이스 저장 공간 사용량은 호스팅되는 단어 100만 개당 약 300MB입니다.
클론된 저장소에 필요한 저장 공간은 다양하지만, Weblate는 얕은 클론을 수행하여 크기를 최소화하려고 합니다.
Storage performance¶
Version control operations perform many filesystem metadata lookups. The
vcs subdirectory in DATA_DIR therefore needs low read
latency; storage with slow metadata access can make operations such as
git status take a long time even when its bulk throughput is good.
Keep CACHE_DIR on low-latency local or temporary storage when
possible.
The deployment checks measure metadata lookup latency for both locations and warn when the median latency exceeds 10 milliseconds. This is an approximate point-in-time measurement affected by filesystem and system load. Rerun weblate check --deploy before changing the storage configuration.
노드¶
중소규모 사이트(호스팅되는 단어 수백만 개)의 경우 모든 Weblate 구성요소 ( 아키텍처 개요 참조)를 단일 노드에서 실행할 수 있습니다.
호스팅되는 단어가 수억 개로 늘어나면 데이터베이스 전용 노드를 두는 것이 권장됩니다 ( Weblate 데이터베이스 설정 참조).
설치¶
힌트
다음 예시는 docker-compose-plugin 이 설치된 작동하는 Docker 환경이 있다고 가정합니다. 지침은 Docker 문서를 확인하세요.
이것은 HTTP를 통해 Weblate 배포 서버를 생성하므로 HTTPS 종료 프록시 뒤에 배치해야 합니다. HTTPS 프록시로 배포할 수도 있습니다 ( Let’s Encrypt를 사용한 자동 SSL 인증서 참조). 대규모 설정은 수평 확장 을 참조하세요.
weblate-docker 저장소를 클론함:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
참고
The Docker Compose files are example deployment configurations. Operators typically customize them for their own deployment and maintain those local changes. Weblate application updates are delivered through Docker image tags; there is no release-bound update path for customized Compose files.
설정으로
docker-compose.override.yml파일을 만드세요. 전체 환경 변수 목록은 Docker 환경 변수 를 참조하세요.services: weblate: image: weblate/weblate:latest environment: WEBLATE_EMAIL_HOST: smtp.example.com WEBLATE_EMAIL_HOST_USER: user WEBLATE_EMAIL_HOST_PASSWORD: pass WEBLATE_SERVER_EMAIL: weblate@example.com WEBLATE_DEFAULT_FROM_EMAIL: weblate@example.com WEBLATE_SITE_DOMAIN: weblate.example.com WEBLATE_ADMIN_PASSWORD: password for the admin user WEBLATE_ADMIN_EMAIL: weblate.admin@example.com ports: - 80:8080
참고
WEBLATE_ADMIN_PASSWORD가 설정되지 않으면 관리자 사용자가 첫 시작 시 표시되는 무작위 비밀번호로 생성됩니다.제공된 예시는 Weblate가 포트 80에서 수신 대기하도록 합니다. 변경하려면
docker-compose.override.yml파일에서 포트 매핑을 편집하세요.Weblate 컨테이너를 시작함:
docker compose up
Weblate 배포를 즐기세요. weblate 컨테이너의 포트 80에서 접근할 수 있습니다.
더 보기
Docker 이미지 레지스트리 선택¶
Weblate 컨테이너는 다음 레지스트리에 게시됨:
Docker Hub, https://hub.docker.com/r/weblate/weblate 참조
GitHub Packages 레지스트리, https://github.com/WeblateOrg/docker/pkgs/container/weblate 참조
참고
모든 예시는 현재 Docker Hub에서 이미지를 가져옵니다. 다른 레지스트리를 사용하려면 설정에 맞게 조정하세요.
Docker 이미지 태그 선택¶
환경과 기대에 맞는 태그를 선택하세요:
태그 이름 |
설명 |
사용 사례 |
|---|---|---|
|
Weblate 안정 릴리스, 최신 태그된 릴리스와 일치 |
프로덕션 환경에서 롤링 업데이트 |
|
Weblate 안정 릴리스 |
프로덕션 환경에서 한 역년 안의 롤링 업데이트 |
|
Weblate 안정 릴리스 |
프로덕션 환경에서 월간 릴리스 안의 롤링 업데이트 |
|
Weblate 안정 릴리스 |
프로덕션 환경에서 명확하게 정의된 배포 |
|
Docker 컨테이너에 개발 변경사항이 포함된 Weblate 안정 릴리스 (예: 업데이트된 종속성) |
스테이징 환경에서 롤링 업데이트 |
|
Docker 컨테이너에 개발 변경사항이 포함된 Weblate 안정 릴리스 (예: 업데이트된 종속성) |
스테이징 환경에서 명확하게 정의된 배포 |
|
Git에서 가져온 개발 버전 Weblate |
다가오는 Weblate 기능을 테스트하기 위한 롤링 업데이트 |
|
Git에서 가져온 개발 버전 Weblate |
다가오는 Weblate 기능을 테스트하기 위한 명확하게 정의된 배포 |
모든 이미지는 게시되기 전에 CI에 의해 테스트되므로, bleeding 버전도 사용하기에 꽤 안전합니다.
게시된 태그의 전체 목록은 GitHub Packages 에서 확인할 수 있습니다
HTTPS 지원이 포함된 Docker 컨테이너¶
일반적인 배포 지침은 설치 를 참조하세요. 이 섹션에서는 그것과 비교한 차이점만 언급합니다.
SSL 종료 프록시¶
Weblate 컨테이너 외부에서 SSL을 종료할 수 있습니다. 이것이 잘 작동하려면 실제 환경을 인식할 수 있도록 여러 헤더를 컨테이너에 전달해야 합니다. 자세한 내용은 리버스 프록시 뒤에서 실행 에서 설명합니다.
location / {
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 3600s;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
WEBLATE_ENABLE_HTTPS=1
WEBLATE_IP_PROXY_HEADER=HTTP_X_FORWARDED_FOR
WEBLATE_TRUSTED_PROXY_ADDRESSES=192.0.2.10
Replace the example trusted proxy address with the address or network of the reverse proxy as seen by the Weblate container. Make sure that untrusted clients cannot reach a published container port by bypassing the reverse proxy.
자체 SSL 인증서 사용¶
사용하려는 자체 SSL 인증서가 있는 경우 Weblate 데이터 볼륨에 파일을 배치하기만 하면 됩니다 ( Docker 컨테이너 볼륨 참조):
필요한 CA 인증서를 포함한 인증서가 포함된
ssl/fullchain.pem개인키가 포함된
ssl/privkey.pem
이 두 파일 모두 Docker 컨테이너를 시작하는 사용자가 소유해야 하며 파일 마스크가 600 (소유한 사용자만 읽기 및 쓰기 가능)으로 설정되어야 합니다.
추가로 Weblate 컨테이너는 이제 포트 4443에서 SSL 연결을 수락합니다. docker compose override에 HTTPS 포트 포워딩을 포함해야 함:
version: '3'
services:
weblate:
ports:
- 80:8080
- 443:4443
동일한 서버에서 이미 다른 사이트를 호스팅하는 경우, 포트 80 과 443 은 NGINX와 같은 리버스 프록시에 의해 사용되고 있을 가능성이 높습니다. NGINX에서 Docker 컨테이너로 HTTPS 연결을 전달하려면 다음 설정을 사용할 수 있음:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name <SITE_URL>;
ssl_certificate /etc/letsencrypt/live/<SITE>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<SITE>/privkey.pem;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass https://127.0.0.1:<EXPOSED_DOCKER_PORT>;
}
}
<SITE_URL>, <SITE> 및 <EXPOSED_DOCKER_PORT> 를 환경의 실제 값으로 바꾸세요.
Let’s Encrypt를 사용한 자동 SSL 인증서¶
공개 설치에서 Let’s Encrypt 로 자동 생성된 SSL 인증서를 사용하려면, 추가 Docker 컨테이너로 리버스 HTTPS 프록시를 추가해야 하며, 이를 위해 https-portal 가 사용됩니다. 이것은 docker-compose-https.yml 파일에서 활용됩니다. 그런 다음 설정으로 docker-compose-https.override.yml 파일을 만드세요:
version: '3'
services:
weblate:
environment:
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_HOST_USER: user
WEBLATE_EMAIL_HOST_PASSWORD: pass
WEBLATE_SITE_DOMAIN: weblate.example.com
WEBLATE_ADMIN_PASSWORD: password for admin user
https-portal:
environment:
DOMAINS: 'weblate.example.com -> http://weblate:8080'
docker compose 를 호출할 때마다 두 파일을 모두 전달한 다음 다음을 수행하세요:
docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml build
docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml up
Docker 컨테이너 업그레이드¶
일반적으로 Weblate 컨테이너만 업데이트하고 PostgreSQL 컨테이너를 현재 버전으로 유지하는 것이 좋습니다. PostgreSQL 업그레이드는 꽤 번거롭고 대부분의 경우 큰 이점을 가져오지 않습니다.
기존 docker-compose를 유지하고 최신 이미지를 가져온 다음 다시 시작하면 됨:
# Fetch latest versions of the images
docker compose pull
# Stop and destroy the containers
docker compose down
# Spawn new containers in the background
docker compose up -d
# Follow the logs during upgrade
docker compose logs -f
Weblate 데이터베이스는 첫 시작 시 자동으로 마이그레이션되어야 하며, 추가적인 수동 작업이 필요하지 않습니다.
참고
직접 업그레이드는 현재 또는 이전 역년의 릴리스에서만 지원됩니다. 더 오래된 릴리스에서 업그레이드해야 한다면 먼저 버전별 지침 에 나열된 중간 버전으로 업그레이드하세요.
If you use the example Compose files without local changes, you can also
review updates in the docker-compose repository, though this is not needed
for most Weblate upgrades. Customized Compose files need to be maintained as
part of your deployment. See PostgreSQL 컨테이너 업그레이드 for upgrading the
PostgreSQL server.
PostgreSQL 컨테이너 업그레이드¶
참고
PostgreSQL 18은 컨테이너 내부의 기본 데이터 디렉터리를 변경했습니다. 기존의 일반적인 설정은 데이터베이스 볼륨을 /var/lib/postgresql/data 에 마운트했지만, PostgreSQL 18은 이제 기본적으로 /var/lib/postgresql 을 사용합니다.
이전 버전에서 업그레이드하는 경우, Docker 설정에서 마운트 대상을 새 경로로 업데이트하거나, 이전 마운트 대상을 유지하고 PGDATA 를相应하게 설정하세요.
PGDATA 를 설정하지 않고 이전 마운트 대상을 변경하지 않으면 PostgreSQL이 영구 볼륨 외부에 데이터를 쓸 수 있습니다.
자세한 내용은 PGDATA 문서 를 참조하세요.
PostgreSQL 컨테이너는 버전 간 자동 업그레이드를 지원하지 않으므로 수동으로 업그레이드를 수행해야 합니다. 다음 단계는 업그레이드 옵션 중 하나를 보여줍니다.
Weblate 컨테이너 중지:
docker compose stop weblate cache
데이터베이스 백업:
docker compose exec database pg_dumpall --clean --if-exists --username weblate > backup.sql
데이터베이스 컨테이너 중지:
docker compose stop database
PostgreSQL 볼륨 제거:
docker compose rm -v database docker volume remove weblate-docker_postgres-data
힌트
볼륨 이름에는 Docker Compose 프로젝트 이름이 포함됩니다. 기본값은 디렉터리 이름이며 이 문서에서는
weblate-docker입니다.새 PostgreSQL 버전을 사용하도록
docker-compose.yml을 조정하세요.데이터베이스 컨테이너 시작:
docker compose up -d database
백업에서 데이터베이스 복원:
cat backup.sql | docker compose exec -T database psql --username weblate --dbname weblate
힌트
데이터베이스 이름이
POSTGRES_DB와 일치하는지 확인하세요.(선택사항) Weblate 사용자의 비밀번호를 업데이트하세요. 비밀번호 저장 방식이 변경되었으므로 PostgreSQL 14 또는 15로 마이그레이션할 때 필요할 수 있음:
docker compose exec -T database psql --username weblate --dbname weblate -c "ALTER USER weblate WITH PASSWORD 'weblate'"
힌트
데이터베이스 이름이
POSTGRES_DB와 일치하는지 확인하세요.나머지 모든 컨테이너 시작:
docker compose up -d
관리자 로그인¶
컨테이너 설정 후 WEBLATE_ADMIN_PASSWORD 에 제공된 비밀번호 또는 설정되지 않은 경우 첫 시작 시 생성된 무작위 비밀번호로 admin 사용자로 로그인할 수 있습니다.
admin 비밀번호를 재설정하려면 WEBLATE_ADMIN_PASSWORD 를 새 비밀번호로 설정하고 컨테이너를 다시 시작하세요.
프로세스 수 및 메모리 소비¶
The number of worker processes for both the web application and Celery is determined automatically based on number of CPUs. This works well for most cloud virtual machines as these typically have few CPUs and good amount of memory.
By default, one combined Celery worker handles all task queues using a prefork
pool with three times WEBLATE_WORKERS processes. Sharing the initial
application memory between all Celery workers reduces memory usage while the
higher process count increases task throughput.
많은 CPU 코어가 있고 메모리 부족 문제가 발생하는 경우 워커 수를 줄여 보세요:
environment:
WEBLATE_WORKERS: 2
You can fine-tune the combined worker:
environment:
CELERY_COMBINED_OPTIONS: --concurrency 12 --prefetch-multiplier 1
Alternatively, use the split mode to run and fine-tune individual worker categories:
environment:
CELERY_WORKER_MODE: split
WEB_WORKERS: 4
WEB_BLOCKING_THREADS: 4
CELERY_MAIN_OPTIONS: --concurrency 2 --prefetch-multiplier 1
CELERY_NOTIFY_OPTIONS: --concurrency 1 --prefetch-multiplier 4
CELERY_MEMORY_OPTIONS: --concurrency 1 --prefetch-multiplier 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1 --prefetch-multiplier 1
CELERY_BACKUP_OPTIONS: --concurrency 1 --prefetch-multiplier 1
The prefetch multiplier controls how many tasks each worker execution slot can reserve. The default of one avoids reserving additional long-running or payload-heavy tasks. The notification worker uses four in this example because its short tasks can benefit from buffering. Increase the value only after measuring queue latency and worker memory usage.
Memory usage can be further reduced by running Celery in a single process:
environment:
CELERY_WORKER_MODE: single
수평 확장¶
Added in version 4.6.
여러 Weblate 컨테이너를 실행하여 서비스를 수평으로 확장할 수 있습니다. /app/data 볼륨은 모든 컨테이너에서 공유되어야 하며, 이를 위해 GlusterFS와 같은 클러스터 파일 시스템을 사용하는 것이 권장됩니다. /app/cache 볼륨은 각 컨테이너마다 별도여야 합니다.
각 Weblate 컨테이너는 WEBLATE_SERVICE 환경 변수를 사용하여 정의된 역할을 가집니다. 일부 서비스는 클러스터에서 한 번만 실행되어야 하며 서비스 순서도 중요하므로 문서를 주의 깊게 따르세요.
docker-compose 저장소에서 docker-compose-split.yml 로 예시 설정을 확인할 수 있습니다.
Startup configuration warnings¶
The Docker container records actionable configuration warnings from startup
in the shared /app/data volume. They are shown by
weblate check --deploy and in the 성능 보고서
management interface, in addition to being written to the container log.
Each container reports its warnings separately. This keeps warnings from
containers with different WEBLATE_SERVICE roles visible in a
horizontally scaled deployment. Reports are refreshed while their container is
running and are removed during an orderly container shutdown. Reports left by
an abrupt shutdown expire after five minutes, and stale report files are
cleaned up automatically by later container startups.
Docker 환경 변수¶
Weblate의 많은 설정 는 아래 설명된 환경 변수를 사용하여 Docker 컨테이너에서 설정할 수 있습니다.
Docker 환경 변수를 통해 노출되지 않는 설정을 정의해야 하는 경우 환경 변수를 넘어서는 설정 를 참조하세요.
암호 전달¶
Added in version 5.0.
Weblate 컨테이너는 파일로 암호를 전달하는 것을 지원합니다. 이를 활용하려면 환경 변수에 _FILE 접미사를 추가하고 Docker를 통해 암호 파일을 전달하세요.
관련 docker-compose.yml 은 다음과 같이 보일 수 있음:
services:
weblate:
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
database:
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
secrets:
db_password:
file: db_password.txt
일반 설정¶
- WEBLATE_LOGLEVEL¶
로깅 상세 수준을 구성합니다. 더 자세한 로그를 보려면
DEBUG로 지정하세요.WEBLATE_DEBUG가 꺼져 있으면 기본값은INFO이며, 디버그 모드가 켜져 있으면DEBUG가 사용됩니다.더 조용한 로깅을 위해
ERROR또는WARNING을 사용하세요.
- WEBLATE_LOGLEVEL_DATABASE¶
데이터베이스 쿼리 상세 수준의 로깅을 구성합니다.
- WEBLATE_LOG_GELF_HOST¶
Added in version 5.9.
GELF TCP 연결을 사용하여 원격 로깅을 구성합니다. Graylog와 통합하는 데 사용할 수 있습니다.
- WEBLATE_LOG_GELF_PORT¶
Added in version 5.9.
WEBLATE_LOG_GELF_HOST에 사용자 정의 포트를 사용합니다. 기본값은 12201입니다.
- WEBLATE_SITE_TITLE¶
모든 페이지의 헤더에 표시되는 사이트 제목을 변경합니다.
- WEBLATE_SITE_DOMAIN¶
Configures the site domain. This parameter is required and accepts a hostname or IPv4 address.
Include a port between 1 and 65535 if using a non-standard one. IPv6 addresses are not currently supported.
예시:
environment: WEBLATE_SITE_DOMAIN: example.com:8080
- WEBLATE_ADMIN_NAME¶
- WEBLATE_ADMIN_EMAIL¶
사이트 관리자의 이름과 이메일을 구성합니다.
ADMINS설정과 admin 사용자 생성 양쪽에 사용됩니다 (자세한 내용은WEBLATE_ADMIN_PASSWORD참조).예시:
environment: WEBLATE_ADMIN_NAME: Weblate admin WEBLATE_ADMIN_EMAIL: noreply@example.com
더 보기
- WEBLATE_ADMIN_PASSWORD¶
admin 사용자의 비밀번호를 지정합니다.
지정되지 않았고 admin 사용자가 존재하지 않으면, 첫 컨테이너 시작 시 표시되는 무작위 비밀번호로 생성됩니다.
지정되지 않았고 admin 사용자가 이미 존재하면, 아무 작업도 수행되지 않습니다.
지정된 경우 매 컨테이너 시작 시 admin 사용자가
WEBLATE_ADMIN_PASSWORD,WEBLATE_ADMIN_NAME,WEBLATE_ADMIN_EMAIL에 맞게 조정됩니다.
경고
구성 파일에 비밀번호를 저장하는 것은 보안 위험이 될 수 있습니다. 이 변수는 초기 설정(또는 첫 시작 시 Weblate가 무작위 비밀번호를 생성하도록 하기) 또는 비밀번호 복구에만 사용하는 것을 고려하세요.
- WEBLATE_ADMIN_NOTIFY_ERROR¶
서버 오류 시 관리자에게 이메일을 보낼지 여부입니다. 기본적으로 켜져 있습니다.
Sentry나 Rollbar 같은 다른 오류 수집 서비스를 사용하고 이 기능을 끄고 싶을 수 있습니다.
- WEBLATE_SERVER_EMAIL¶
오류 메시지가 발송되는 이메일 주소입니다.
더 보기
- WEBLATE_DEFAULT_FROM_EMAIL¶
발신 이메일 주소를 구성합니다.
- WEBLATE_ADMINS_CONTACT¶
ADMINS_CONTACT를 구성합니다.
- WEBLATE_CONTACT_FORM¶
문의 양식 동작을 구성합니다.
CONTACT_FORM참조.
- WEBLATE_ALLOWED_HOSTS¶
ALLOWED_HOSTS를 사용하여 허용된 HTTP 호스트명을 구성합니다.기본값은
*이며, 모든 호스트명을 허용합니다.예시:
environment: WEBLATE_ALLOWED_HOSTS: weblate.example.com,example.com
- WEBLATE_REGISTRATION_OPEN¶
REGISTRATION_OPEN을 토글하여 등록 가능 여부를 구성합니다.예시:
environment: WEBLATE_REGISTRATION_OPEN: 0
- WEBLATE_REGISTRATION_CAPTCHA¶
Added in version 5.10.
등록 및 기타 비인증 작업에 captcha가 사용되는지 여부를 구성합니다.
REGISTRATION_CAPTCHA참조.예시:
environment: WEBLATE_REGISTRATION_CAPTCHA: 0
- WEBLATE_REGISTRATION_ALLOW_BACKENDS¶
REGISTRATION_ALLOW_BACKENDS를 통해 새 계정 생성에 사용할 수 있는 인증 방법을 구성합니다.예시:
environment: WEBLATE_REGISTRATION_OPEN: 0 WEBLATE_REGISTRATION_ALLOW_BACKENDS: azuread-oauth2,azuread-tenant-oauth2
- WEBLATE_REGISTRATION_REBIND¶
Added in version 4.16.
REGISTRATION_REBIND를 구성합니다.
- WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS¶
Added in version 5.16.1.
REGISTRATION_ALLOW_DISPOSABLE_EMAILS를 구성합니다.예시:
environment: WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS: 1
- WEBLATE_PROJECT_WEB_RESTRICT_PRIVATE¶
Added in version 5.17.
PROJECT_WEB_RESTRICT_PRIVATE를 구성합니다.기본값은 활성화입니다.
- WEBLATE_PROJECT_WEB_RESTRICT_ALLOWLIST¶
Added in version 5.17.
PROJECT_WEB_RESTRICT_ALLOWLIST를 구성합니다.신뢰할 수 있는 프로젝트 슬러그의 쉼표로 구분된 목록을 기대합니다.
- WEBLATE_WEBHOOK_RESTRICT_PRIVATE¶
Added in version 5.17.
WEBHOOK_RESTRICT_PRIVATE를 구성합니다.기본값은 활성화입니다.
- WEBLATE_WEBHOOK_PRIVATE_ALLOWLIST¶
Added in version 5.17.
WEBHOOK_PRIVATE_ALLOWLIST를 구성합니다.신뢰할 수 있는 호스트 이름 또는 도메인의 쉼표로 구분된 목록을 기대합니다.
- WEBLATE_ALLOWED_ASSET_SIZE¶
Added in version 2025.7.
Configures
ALLOWED_ASSET_SIZE.
- WEBLATE_ASSET_RESTRICT_PRIVATE¶
Added in version 2025.5.
ASSET_RESTRICT_PRIVATE를 구성합니다.기본값은 활성화입니다.
- WEBLATE_ASSET_PRIVATE_ALLOWLIST¶
Added in version 2025.5.
ASSET_PRIVATE_ALLOWLIST를 구성합니다.신뢰할 수 있는 호스트 이름 또는 도메인의 쉼표로 구분된 목록을 기대합니다.
- WEBLATE_TIME_ZONE¶
Weblate에서 사용되는 시간대를 구성합니다.
TIME_ZONE참조.참고
Docker 컨테이너 자체의 시간대를 변경하려면
TZ환경 변수를 사용하세요.예시:
environment: WEBLATE_TIME_ZONE: Europe/Prague
- WEBLATE_ENABLE_HTTPS¶
Weblate가 리버스 HTTPS 프록시 뒤에서 운영된다고 가정하게 하여, 이메일 및 API 링크에서 HTTPS를 사용하거나 쿠키에 보안 플래그를 지정합니다.
힌트
가능한 주의사항은
ENABLE_HTTPS문서를 참조하세요.참고
이것은 Weblate 컨테이너가 HTTPS 연결을 수락하게 하지는 않습니다. 이것도 별도로 구성해야 합니다. 예시는 HTTPS 지원이 포함된 Docker 컨테이너 을 참조하세요.
예시:
environment: WEBLATE_ENABLE_HTTPS: 1
- WEBLATE_NGINX_IPV6¶
Added in version 5.17.
번들 NGINX가 IPv6 주소에서 수신 대기하는지 여부를 제어합니다.
지원되는 값:
auto는 컨테이너 런타임에서 IPv6를 사용할 수 있을 때만 IPv6 리스너를 활성화합니다. 이것이 기본값입니다.on은 항상 IPv6 리스너를 활성화합니다.off는 IPv6 리스너를 비활성화합니다.
예시:
environment: WEBLATE_NGINX_IPV6: auto
- WEBLATE_IP_PROXY_HEADER¶
Weblate가 지정된 HTTP 헤더에서 IP 주소를 가져오도록 합니다. Weblate 컨테이너 앞에서 리버스 프록시를 사용할 때 사용하세요.
IP_BEHIND_REVERSE_PROXY를 활성화하고IP_PROXY_HEADER를 지정합니다.When set to
HTTP_X_FORWARDED_FOR, the bundled nginx resolves the client address usingWEBLATE_TRUSTED_PROXY_ADDRESSES, uses that address in its logs, and forwards one normalized address to Weblate.버전 2026.9에서 변경: The bundled nginx no longer trusts
X-Forwarded-Forfrom all network addresses. Trusted proxy addresses have to be configured explicitly.참고
The format must conform to Django’s expectations. Django transforms raw HTTP header names as follows:
모든 문자를 대문자로 변환
모든 하이픈을 밑줄로 대체
HTTP_접두사를 앞에 추가
따라서
X-Forwarded-For는HTTP_X_FORWARDED_FOR로 매핑됩니다.예시:
environment: WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR WEBLATE_TRUSTED_PROXY_ADDRESSES: "192.0.2.10 2001:db8::/64 proxy"
- WEBLATE_TRUSTED_PROXY_ADDRESSES¶
Added in version 2026.9.
Configures the IPv4 or IPv6 addresses, networks, or hostnames of reverse proxies trusted by the bundled nginx to supply
X-Forwarded-For. Separate multiple values by whitespace.This setting is used only when
WEBLATE_IP_PROXY_HEADERisHTTP_X_FORWARDED_FOR. If the list is empty, nginx uses the immediate TCP peer in its logs and forwards that address to Weblate.Only list proxies under your control, and do not expose the Weblate container through a path which bypasses them.
예시:
environment: WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR WEBLATE_TRUSTED_PROXY_ADDRESSES: "192.0.2.10 2001:db8::/64 proxy"
- WEBLATE_IP_PROXY_OFFSET¶
Added in version 5.0.1.
IP_PROXY_OFFSET를 구성합니다.When
WEBLATE_IP_PROXY_HEADERisHTTP_X_FORWARDED_FOR, the bundled nginx forwards one normalized address and the container uses an effective offset of0.
- WEBLATE_USE_X_FORWARDED_PORT¶
Added in version 5.0.1.
X-Forwarded-Port 헤더를 SERVER_PORT META 변수 대신 우선 사용할지 여부를 지정하는 부울 값입니다. 이 헤더를 설정하는 프록시를 사용하는 경우에만 활성화해야 합니다.
더 보기
참고
부울 설정입니다 (
"true"또는"false"를 사용).
- WEBLATE_SECURE_PROXY_SSL_HEADER¶
요청이 안전함을 나타내는 HTTP 헤더/값 조합을 나타내는 튜플입니다. Weblate가 SSL 종료를 수행하지만 표준 HTTPS 헤더를 전달하지 않는 리버스 프록시 뒤에서 실행될 때 필요합니다.
예시:
environment: WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
- WEBLATE_REQUIRE_LOGIN¶
REQUIRE_LOGIN을 활성화하여 전체 Weblate에서 인증을 강제합니다.예시:
environment: WEBLATE_REQUIRE_LOGIN: 1
- WEBLATE_LEGAL_INTEGRATION¶
Docker 배포에서 법적 모듈 모듈을 활성화합니다. 기본적으로 통합은 비활성화되어 있습니다. 비활성화하려면 이 변수를 설정하지 않거나 비워 두세요.
지원되는 값:
tos-confirmto enable the legal module and enforce legal document confirmation during social authentication and for signed-in users.wllegal은 동일한 통합을 활성화하고 추가로wllegal에서 호스팅되는 법률 문서 템플릿을 로드합니다. 이 템플릿은 Weblate s.r.o.가 운영하는 서비스에서 사용되며 일반 사용을 위한 것이 아닙니다.
Docker에서 자체 법률 문서를 제공하려면
/app/data/python/customize/templates/legal/documents에서 템플릿을 재정의하세요. 로고 및 기타 정적 파일 교체 참조.Recreate the Docker container after changing this environment variable, for example using docker compose up -d. Restarting an existing container does not apply changed environment values.
예시:
environment: WEBLATE_LEGAL_INTEGRATION: tos-confirm
더 보기
- WEBLATE_LEGAL_DOCUMENT_CSS_CLASS¶
Configures
LEGAL_DOCUMENT_CSS_CLASSin Docker deployments withWEBLATE_LEGAL_INTEGRATIONenabled.Set this to the class targeted by your custom legal stylesheet. Set it to an empty string to render legal documents without a wrapper class.
예시:
environment: WEBLATE_LEGAL_DOCUMENT_CSS_CLASS: ""
- WEBLATE_LEGAL_HIDDEN_DOCUMENTS¶
Configures
LEGAL_HIDDEN_DOCUMENTSin Docker deployments withWEBLATE_LEGAL_INTEGRATIONenabled.Provide a comma-separated list of legal document page identifiers.
External legal documents are used as fallbacks for hidden internal pages. The following configuration links both documents externally and requires one agreement covering the terms of service and privacy policy:
예시:
environment: WEBLATE_LEGAL_INTEGRATION: tos-confirm WEBLATE_LEGAL_HIDDEN_DOCUMENTS: terms,privacy WEBLATE_LEGAL_URL: https://example.com/terms/ WEBLATE_PRIVACY_URL: https://example.com/privacy/
- WEBLATE_PUBLIC_ENGAGE¶
PUBLIC_ENGAGE를 활성화합니다.
- WEBLATE_GOOGLE_ANALYTICS_ID¶
GOOGLE_ANALYTICS_ID를 변경하여 Google Analytics ID를 구성합니다.
- WEBLATE_DEFAULT_PULL_MESSAGE¶
DEFAULT_PULL_MESSAGE를 변경하여 API를 통한 풀 리퀘스트의 기본 제목과 메시지를 구성합니다.더 보기
- WEBLATE_SIMPLIFY_LANGUAGES¶
언어 단순화 정책을 구성합니다.
SIMPLIFY_LANGUAGES참조.
- WEBLATE_HIDE_SHARED_GLOSSARY_COMPONENTS¶
다른 프로젝트에 공유된 용어집 구성요소를 숨깁니다.
HIDE_SHARED_GLOSSARY_COMPONENTS참조.
- WEBLATE_DEFAULT_ACCESS_CONTROL¶
새 프로젝트의 기본 접근 제어 을 구성합니다.
DEFAULT_ACCESS_CONTROL참조.
- WEBLATE_DEFAULT_RESTRICTED_COMPONENT¶
새 구성요소의 접근 제한 기본값을 구성합니다.
DEFAULT_RESTRICTED_COMPONENT참조.
- WEBLATE_DEFAULT_TRANSLATION_PROPAGATION¶
새 구성요소의 번역 전파 허용 기본값을 구성합니다.
DEFAULT_TRANSLATION_PROPAGATION참조.
- WEBLATE_DEFAULT_COMMITER_EMAIL¶
DEFAULT_COMMITER_EMAIL을 구성합니다.
- WEBLATE_DEFAULT_COMMITER_NAME¶
DEFAULT_COMMITER_NAME을 구성합니다.
- WEBLATE_DEFAULT_SHARED_TM¶
DEFAULT_SHARED_TM을 구성합니다.
- WEBLATE_DEFAULT_AUTOCLEAN_TM¶
DEFAULT_AUTOCLEAN_TM을 구성합니다.
- WEBLATE_COMMIT_PENDING_HOURS¶
새 구성요소의 커밋할 변경사항의 경과 시간 기본값을 구성합니다.
COMMIT_PENDING_HOURS참조.
- WEBLATE_GPG_IDENTITY¶
커밋의 GPG 서명을 구성합니다.
WEBLATE_GPG_IDENTITY참조.더 보기
- WEBLATE_URL_PREFIX¶
Configures URL prefix where Weblate is running, see
URL_PREFIX. Leave it empty to serve Weblate at the root, or use slash-separated path segments starting with a slash, for example/translationsor/tools/translations. Each segment can contain ASCII letters, digits,_, and-.
- WEBLATE_SILENCED_SYSTEM_CHECKS¶
표시하지 않으려는 검사를 구성합니다.
SILENCED_SYSTEM_CHECKS참조.
- WEBLATE_CSP_SCRIPT_SRC¶
- WEBLATE_CSP_IMG_SRC¶
- WEBLATE_CSP_CONNECT_SRC¶
- WEBLATE_CSP_STYLE_SRC¶
- WEBLATE_CSP_FONT_SRC¶
- WEBLATE_CSP_FORM_SRC¶
Content-Security-Policy HTTP 헤더를 사용자 정의할 수 있습니다.
- WEBLATE_LICENSE_FILTER¶
LICENSE_FILTER를 구성합니다.
- WEBLATE_LICENSE_REQUIRED¶
LICENSE_REQUIRED를 구성합니다.
- WEBLATE_WEBSITE_REQUIRED¶
WEBSITE_REQUIRED를 구성합니다.
- WEBLATE_VERSION_DISPLAY¶
VERSION_DISPLAY를 구성합니다.
- WEBLATE_HIDE_VERSION¶
HIDE_VERSION를 구성합니다.
- WEBLATE_BASIC_LANGUAGES¶
BASIC_LANGUAGES를 구성합니다.
- WEBLATE_DEFAULT_AUTO_WATCH¶
DEFAULT_AUTO_WATCH를 구성합니다.
- WEBLATE_RATELIMIT_ATTEMPTS¶
- WEBLATE_RATELIMIT_LOCKOUT¶
- WEBLATE_RATELIMIT_WINDOW¶
Added in version 4.6.
속도 제한을 구성합니다.
힌트
모든 속도 제한 범위에 대한 구성을 지정할 수 있습니다. 이렇게 하려면 속도 제한 에 설명된 설정에
WEBLATE_접두사를 추가하세요.
- WEBLATE_API_RATELIMIT_ANON¶
- WEBLATE_API_RATELIMIT_USER¶
Added in version 4.11.
Configures
API_RATELIMIT_ANONandAPI_RATELIMIT_USER. Defaults to100/dayfor anonymous and5000/hourfor authenticated users.더 보기
- WEBLATE_API_RATELIMIT_USER_OVERRIDES¶
- WEBLATE_API_RATELIMIT_IP_OVERRIDES¶
Added in version 2026.10.
JSON mappings configuring
API_RATELIMIT_USER_OVERRIDESandAPI_RATELIMIT_IP_OVERRIDES. Both default to empty objects. Use JSONnullto exempt a user, IP address, or network from API throttling.For example, in
compose.override.yaml:services: weblate: environment: WEBLATE_API_RATELIMIT_USER_OVERRIDES: '{"automation":"20000/hour"}' WEBLATE_API_RATELIMIT_IP_OVERRIDES: '{"192.0.2.42":null,"198.51.100.0/24":"10000/hour"}'
Username rules take precedence over IP rules. See API 속도 제한 for counting behavior and proxy configuration requirements.
- WEBLATE_ENABLE_HOOKS¶
Added in version 4.13.
ENABLE_HOOKS를 구성합니다.
- WEBLATE_ENABLE_AVATARS¶
Added in version 4.6.1.
ENABLE_AVATARS를 구성합니다.
- WEBLATE_AVATAR_URL_PREFIX¶
Added in version 4.15.
AVATAR_URL_PREFIX를 구성합니다.
- WEBLATE_AVATAR_URL_TEMPLATE¶
Added in version 2026.10.
Configures
AVATAR_URL_TEMPLATE.
- WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH¶
Added in version 4.9.
- WEBLATE_SSH_EXTRA_ARGS¶
Added in version 4.9.
SSH_EXTRA_ARGS를 구성합니다.
- WEBLATE_BORG_EXTRA_ARGS¶
Added in version 4.9.
BORG_EXTRA_ARGS를 쉼표로 구분된 인수 목록으로 구성합니다.예시:
environment: WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
- WEBLATE_ENABLE_SHARING¶
Added in version 4.14.1.
ENABLE_SHARING를 구성합니다.
- WEBLATE_SUPPORT_STATUS_CHECK¶
Added in version 5.5.
SUPPORT_STATUS_CHECK를 구성합니다.
- WEBLATE_EXTRA_HTML_HEAD¶
Added in version 4.15.
EXTRA_HTML_HEAD를 구성합니다.
- WEBLATE_INTERNAL_BOT_EMAIL_TEMPLATE¶
Added in version 2026.7.1.
Configures
INTERNAL_BOT_EMAIL_TEMPLATE.
- WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE¶
Added in version 4.15.
PRIVATE_COMMIT_EMAIL_TEMPLATE을 구성합니다.
- WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN¶
Added in version 4.15.
PRIVATE_COMMIT_EMAIL_OPT_IN을 구성합니다.
- WEBLATE_PRIVATE_COMMIT_NAME_TEMPLATE¶
Added in version 5.16.
PRIVATE_COMMIT_NAME_TEMPLATE을 구성합니다.
- WEBLATE_PRIVATE_COMMIT_NAME_OPT_IN¶
Added in version 5.16.
PRIVATE_COMMIT_NAME_OPT_IN을 구성합니다.To use private commit e-mails and names by default, set both opt-in variables to
Falseindocker-compose.override.yml:services: weblate: environment: WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN: "False" WEBLATE_PRIVATE_COMMIT_NAME_OPT_IN: "False" WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE: "user-{user_id}@users.noreply.{site_domain}" WEBLATE_PRIVATE_COMMIT_NAME_TEMPLATE: "{site_title} user {user_id}"
The template variables are optional customizations. This e-mail template uses the user ID instead of the username included in the default template. Setting the templates alone leaves private commit identities opt-in.
These defaults apply to new and existing users without explicit commit identity choices. Users can still select their account identity. Existing commits are unchanged.
After changing the environment, run
docker compose up -dto recreate the affected containers. Apply the same configuration to separately deployed workers so both web and worker processes use the new defaults.
- WEBLATE_UNUSED_ALERT_DAYS¶
Added in version 4.17.
UNUSED_ALERT_DAYS를 구성합니다.
- WEBLATE_REPORT_EXPIRY¶
Added in version 2026.8.
Configures
REPORT_EXPIRY.
- WEBLATE_UPDATE_LANGUAGES¶
Added in version 4.3.2.
UPDATE_LANGUAGES를 구성합니다.
- WEBLATE_VCS_ALLOW_HOSTS¶
Added in version 5.15.
VCS_ALLOW_HOSTS를 구성합니다.
- WEBLATE_VCS_PRIVATE_ALLOWLIST¶
Added in version 2026.9.
Configures
VCS_PRIVATE_ALLOWLIST.
- WEBLATE_VCS_ALLOW_SCHEMES¶
Added in version 5.15.
VCS_ALLOW_SCHEMES를 구성합니다.
- WEBLATE_VCS_RESTRICT_PRIVATE¶
Added in version 5.17.
VCS_RESTRICT_PRIVATE를 구성합니다.
- WEBLATE_VCS_CLONE_DEPTH¶
Added in version 5.4.
VCS_CLONE_DEPTH를 구성합니다.
- WEBLATE_VCS_API_DELAY¶
Added in version 5.4.
VCS_API_DELAY를 구성합니다.
- WEBLATE_VCS_API_TIMEOUT¶
Added in version 5.15.
VCS_API_TIMEOUT를 구성합니다.
- WEBLATE_CORS_ALLOWED_ORIGINS¶
Added in version 4.16.
지정된 원본에서 API로의 CORS 요청을 허용합니다.
예시:
environment: WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
- WEBLATE_CORS_ALLOW_ALL_ORIGINS¶
Added in version 5.6.1: 모든 원본에서 API로의 CORS 요청을 허용합니다.
- WEBLATE_WEBSITE_ALERTS_ENABLED¶
Added in version 5.17.
WEBSITE_ALERTS_ENABLED를 구성합니다.
- CLIENT_MAX_BODY_SIZE¶
Added in version 4.16.3.
Configures maximal body size accepted by the built-in web server. Use a non-negative integer with an optional
k,m, orgsuffix. The suffix is case-insensitive, and0disables the request body size limit.environment: CLIENT_MAX_BODY_SIZE: 200m
힌트
이 변수는 Let’s Encrypt를 사용한 자동 SSL 인증서 에서 사용되는 서드파티 컨테이너와 공유되므로 의도적으로
WEBLATE_접두사가 없습니다.
- WEBLATE_TRANSLATION_UPLOAD_MAX_SIZE¶
TRANSLATION_UPLOAD_MAX_SIZE를 구성합니다.값은 바이트 단위입니다.
- WEBLATE_COMPONENT_ZIP_UPLOAD_MAX_SIZE¶
COMPONENT_ZIP_UPLOAD_MAX_SIZE를 구성합니다.값은 바이트 단위입니다.
- WEBLATE_PROJECT_BACKUP_UPLOAD_MAX_SIZE¶
PROJECT_BACKUP_UPLOAD_MAX_SIZE를 구성합니다.값은 바이트 단위입니다.
CLIENT_MAX_BODY_SIZE도 업로드된 백업 파일에 충분히 큰지 확인하세요.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_MEMBERS¶
Added in version 2026.5.
PROJECT_BACKUP_IMPORT_MAX_MEMBERS를 구성합니다.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE¶
Added in version 2026.5.
PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE를 구성합니다.값은 바이트 단위입니다.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE¶
Added in version 2026.5.
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE를 구성합니다.값은 바이트 단위입니다.
- WEBLATE_PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE¶
Added in version 2026.5.
PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE를 구성합니다.값은 바이트 단위입니다.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO¶
Added in version 2026.5.
Code-hosting sites credentials¶
In the Docker container, the code-hosting credentials can be configured either in separate variables or using a Python dictionary to set them at once. The following examples are for GitHub 풀 리퀘스트, but apply to all 버전 관리 통합 with appropriately changed variable names.
중요
모든 환경 변수명은 WEBLATE_ 접두사를 포함해야 합니다. 예를 들어 GitHub 자격 증명을 구성하려면 GITHUB_USERNAME 이 아닌 WEBLATE_GITHUB_USERNAME 을 사용하세요. 이는 풀 리퀘스트든 다른 VCS 통합이든 구성할 때 동일하게 적용됩니다.
GitHub 풀 리퀘스트의 예시 구성은 다음과 같습니다:
WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com
다음과 같이 사용됩니다:
GITHUB_CREDENTIALS = {
"api.github.com": {
"username": "api-user",
"token": "api-token",
}
}
또는 Python 사전을 문자열로 제공할 수도 있습니다:
WEBLATE_GITHUB_CREDENTIALS='{ "api.github.com": { "username": "api-user", "token": "api-token", } }'
또는 Python 사전을 포함하는 파일의 경로:
echo '{ "api.github.com": { "username": "api-user", "token": "api-token", } }' > /path/to/github-credentials
WEBLATE_GITHUB_CREDENTIALS_FILE='/path/to/github-credentials'
- WEBLATE_GITHUB_USERNAME¶
- WEBLATE_GITHUB_TOKEN¶
- WEBLATE_GITHUB_HOST¶
- WEBLATE_GITHUB_CREDENTIALS¶
GitHub 풀 리퀘스트 를
GITHUB_CREDENTIALS를 변경하여 구성합니다.
- WEBLATE_GITHUB_LEGACY_APP_WEBHOOK_SECRET¶
Added in version 2026.8.
Configures
GITHUB_LEGACY_APP_WEBHOOK_SECRET. The_FILEvariant can be used to load the secret from a file.
GitHub Apps registered through the in-app manifest flow are stored in the database and do not need environment variables. See GitHub 알림.
- WEBLATE_GITLAB_USERNAME¶
- WEBLATE_GITLAB_TOKEN¶
- WEBLATE_GITLAB_HOST¶
- WEBLATE_GITLAB_CREDENTIALS¶
GitLab 병합 요청 를
GITLAB_CREDENTIALS를 변경하여 구성합니다.
- WEBLATE_GITEA_USERNAME¶
- WEBLATE_GITEA_TOKEN¶
- WEBLATE_GITEA_HOST¶
- WEBLATE_GITEA_CREDENTIALS¶
Gitea 풀 리퀘스트 를
GITEA_CREDENTIALS를 변경하여 구성합니다.
- WEBLATE_PAGURE_USERNAME¶
- WEBLATE_PAGURE_TOKEN¶
- WEBLATE_PAGURE_HOST¶
- WEBLATE_PAGURE_CREDENTIALS¶
Pagure 병합 요청 를
PAGURE_CREDENTIALS를 변경하여 구성합니다.
- WEBLATE_BITBUCKETSERVER_USERNAME¶
- WEBLATE_BITBUCKETSERVER_TOKEN¶
- WEBLATE_BITBUCKETSERVER_HOST¶
- WEBLATE_BITBUCKETSERVER_CREDENTIALS¶
Bitbucket Data Center 풀 리퀘스트 를
BITBUCKETSERVER_CREDENTIALS를 변경하여 구성합니다.
- WEBLATE_BITBUCKETCLOUD_USERNAME¶
- WEBLATE_BITBUCKETCLOUD_WORKSPACE¶
- WEBLATE_BITBUCKETCLOUD_TOKEN¶
- WEBLATE_BITBUCKETCLOUD_HOST¶
- WEBLATE_BITBUCKETCLOUD_CREDENTIALS¶
Bitbucket Cloud 풀 리퀘스트 를
BITBUCKETCLOUD_CREDENTIALS를 변경하여 구성합니다.
- WEBLATE_AZURE_DEVOPS_USERNAME¶
- WEBLATE_AZURE_DEVOPS_ORGANIZATION¶
- WEBLATE_AZURE_DEVOPS_TOKEN¶
- WEBLATE_AZURE_DEVOPS_HOST¶
- WEBLATE_AZURE_DEVOPS_CREDENTIALS¶
Azure DevOps 풀 리퀘스트 를
AZURE_DEVOPS_CREDENTIALS를 변경하여 구성합니다.
자동 제안 설정¶
버전 4.13에서 변경: 자동 제안 서비스는 이제 사용자 인터페이스에서 구성됩니다. 자동 제안 참조.
기존 환경 변수는 Weblate 4.13으로 마이그레이션하는 동안 가져오지만, 변경해도 더 이상 효과가 없습니다.
인증 설정¶
힌트
WEBLATE_NO_EMAIL_AUTH 에 의해 비활성화되지 않는 한 이메일 기반 인증이 켜집니다.
LDAP¶
- WEBLATE_AUTH_LDAP_SERVER_URI¶
- WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE¶
- WEBLATE_AUTH_LDAP_USER_ATTR_MAP¶
- WEBLATE_AUTH_LDAP_BIND_DN¶
- WEBLATE_AUTH_LDAP_BIND_PASSWORD¶
- WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS¶
- WEBLATE_AUTH_LDAP_USER_SEARCH¶
- WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER¶
- WEBLATE_AUTH_LDAP_USER_SEARCH_UNION¶
- WEBLATE_AUTH_LDAP_USER_SEARCH_UNION_DELIMITER¶
LDAP 인증 구성.
직접 바인딩 예시:
environment: WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE: uid=%(user)s,ou=People,dc=example,dc=net # map weblate 'full_name' to ldap 'name' and weblate 'email' attribute to 'mail' ldap attribute. # another example that can be used with OpenLDAP: 'full_name:cn,email:mail' WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
검색 및 바인딩 예시:
environment: WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_BIND_PASSWORD: password WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com
통합 검색 및 바인딩 예시:
environment: WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_BIND_PASSWORD: password WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail WEBLATE_AUTH_LDAP_USER_SEARCH_UNION: ou=users,dc=example,dc=com|ou=otherusers,dc=example,dc=com
Active Directory에 대한 검색 및 바인딩 예시:
environment: WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_BIND_PASSWORD: password WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS: 0 WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER: (sAMAccountName=%(user)s)
GitHub¶
- WEBLATE_SOCIAL_AUTH_GITHUB_KEY¶
- WEBLATE_SOCIAL_AUTH_GITHUB_SECRET¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ORG_KEY¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ORG_SECRET¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ORG_NAME¶
- WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_KEY¶
- WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_SECRET¶
GitHub Enterprise Edition¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_URL¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE¶
GitHub EE 인증 를 활성화합니다.
Bitbucket¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET¶
Bitbucket 인증 를 활성화합니다.
Facebook¶
- WEBLATE_SOCIAL_AUTH_FACEBOOK_KEY¶
- WEBLATE_SOCIAL_AUTH_FACEBOOK_SECRET¶
Facebook OAuth 2 를 활성화합니다.
Google¶
- WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET¶
- WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS¶
- WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_EMAILS¶
Google OAuth 2 를 활성화합니다.
GitLab¶
- WEBLATE_SOCIAL_AUTH_GITLAB_KEY¶
- WEBLATE_SOCIAL_AUTH_GITLAB_SECRET¶
- WEBLATE_SOCIAL_AUTH_GITLAB_API_URL¶
GitLab OAuth 2 를 활성화합니다.
Gitea¶
- WEBLATE_SOCIAL_AUTH_GITEA_API_URL¶
- WEBLATE_SOCIAL_AUTH_GITEA_KEY¶
- WEBLATE_SOCIAL_AUTH_GITEA_SECRET¶
Gitea 인증을 활성화합니다.
Microsoft Entra ID¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET¶
Microsoft Entra ID 인증을 활성화합니다. Microsoft Entra ID 참조.
Tenant 지원이 포함된 Microsoft Entra ID¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID¶
Tenant 지원이 포함된 Microsoft Entra ID 인증을 활성화합니다. Microsoft Entra ID 참조.
Keycloak¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_KEY¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_SECRET¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ALGORITHM¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ACCESS_TOKEN_URL¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_TITLE¶
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_IMAGE¶
Keycloak 인증을 활성화합니다. Keycloak - Open Source Red Hat SSO 참조.
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ID_KEY¶
Added in version 5.17.
Keycloak에서 고유 사용자 식별자로 사용되는 클레임을 구성합니다. 기본값은
email입니다.힌트
Keycloak이 서드파티 IDP를 추상화하도록 구성된 경우, 서드파티 IDP 도메인에 대해
WEBLATE_CSP_FORM_SRC를 구성해야 합니다.Keycloak이 Microsoft에 인증을 전달하는 예시입니다.¶environment: WEBLATE_CSP_FORM_SRC: login.microsoftonline.com
Linux 벤더¶
다음 변수를任意 값으로 지정하여 Linux 벤더 인증 서비스를 사용한 인증을 활성화할 수 있습니다.
- WEBLATE_SOCIAL_AUTH_FEDORA¶
- WEBLATE_SOCIAL_AUTH_OPENSUSE¶
- WEBLATE_SOCIAL_AUTH_OPENINFRA¶
- WEBLATE_SOCIAL_AUTH_UBUNTU¶
Slack¶
- WEBLATE_SOCIAL_AUTH_SLACK_KEY¶
OpenID Connect¶
Added in version 4.13-1.
- WEBLATE_SOCIAL_AUTH_OIDC_OIDC_ENDPOINT¶
- WEBLATE_SOCIAL_AUTH_OIDC_KEY¶
- WEBLATE_SOCIAL_AUTH_OIDC_SECRET¶
- WEBLATE_SOCIAL_AUTH_OIDC_USERNAME_KEY¶
- WEBLATE_SOCIAL_AUTH_OIDC_TITLE¶
- WEBLATE_SOCIAL_AUTH_OIDC_IMAGE¶
일반 OpenID Connect 통합을 구성합니다.
Fedora OpenID Connect¶
Added in version 5.15.
- WEBLATE_SOCIAL_AUTH_FEDORA_OIDC_KEY¶
SAML¶
자체 서명된 SAML 키는 첫 컨테이너 시작 시 자동으로 생성됩니다. 자체 키를 사용하려면 인증서와 개인 키를 /app/data/ssl/saml.crt 및 /app/data/ssl/saml.key 에 배치하세요.
- WEBLATE_SAML_IDP_ENTITY_ID¶
- WEBLATE_SAML_IDP_URL¶
- WEBLATE_SAML_IDP_X509CERT¶
- WEBLATE_SAML_IDP_IMAGE¶
- WEBLATE_SAML_SECURITY_CONFIG¶
Added in version 2026.6.
SAML security configuration as a JSON object, passed to
SOCIAL_AUTH_SAML_SECURITY_CONFIG. For example, to disable therequestedAuthnContext(needed for some identity providers such as Microsoft Entra ID with multi-factor authentication):environment: WEBLATE_SAML_SECURITY_CONFIG: '{"requestedAuthnContext": false}'
- WEBLATE_SAML_ID_ATTR_FULL_NAME¶
- WEBLATE_SAML_ID_ATTR_FIRST_NAME¶
- WEBLATE_SAML_ID_ATTR_LAST_NAME¶
- WEBLATE_SAML_ID_ATTR_USERNAME¶
- WEBLATE_SAML_ID_ATTR_EMAIL¶
- WEBLATE_SAML_ID_ATTR_USER_PERMANENT_ID¶
Added in version 4.18.
SAML 속성 매핑입니다.
기타 인증 설정¶
- WEBLATE_NO_EMAIL_AUTH¶
임의의 값으로 설정하면 이메일 인증이 비활성화됩니다 ( 비밀번호 인증 비활성화 참조).
PostgreSQL 데이터베이스 설정¶
데이터베이스는 docker-compose.yml 에 의해 생성되므로, 이 설정은 Weblate와 PostgreSQL 컨테이너 모두에 영향을 미칩니다.
더 보기
- POSTGRES_USER¶
PostgreSQL 사용자 이름입니다.
- POSTGRES_DB¶
PostgreSQL 데이터베이스 이름입니다.
- POSTGRES_HOST¶
PostgreSQL 서버 호스트 이름 또는 IP 주소입니다. 기본값은
database입니다.
- POSTGRES_PORT¶
PostgreSQL 서버 포트입니다. 기본값은 없음(기본값 사용)입니다.
- POSTGRES_SSL_MODE¶
PostgreSQL이 서버 연결에서 SSL을 처리하는 방법을 설정합니다. 가능한 선택지는 SSL Mode Descriptions 를 참조하세요.
- POSTGRES_ALTER_ROLE¶
데이터베이스 마이그레이션 중 변경할 PostgreSQL 역할의 이름을 설정합니다 ( Weblate에서 PostgreSQL 사용 설정 참조).
기본값은
POSTGRES_USER입니다.
- POSTGRES_CONN_MAX_AGE¶
Added in version 4.8.1.
데이터베이스 연결의 수명(초 단위 정수)입니다. 각 요청이 끝날 때 데이터베이스 연결을 닫으려면 0을 사용하세요.
버전 5.1에서 변경: 기본 동작은 무제한 영구 데이터베이스 연결입니다.
연결 지속을 활성화하면 일반적으로 데이터베이스에 대한 열린 연결이 더 많아집니다. 활성화하기 전에 데이터��이터베이스 설정을 조정하세요.
예시 설정:
environment: POSTGRES_CONN_MAX_AGE: 3600
- POSTGRES_DISABLE_SERVER_SIDE_CURSORS¶
Added in version 4.9.1.
데이터베이스에서 서버 측 커서를 비활성화합니다. 일부 pgbouncer 설정에서 필요합니다.
예시 설정:
environment: POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
- WEBLATE_DATABASES¶
Added in version 5.1.
false로 설정하면 데이터베이스 연결의 환경 기반 구성이 비활성화됩니다. 데이터베이스 연결을 수동으로 구성하려면 데이터 볼륨에서 설정 재정의 를 사용하세요.
데이터베이스 백업 설정¶
더 보기
- WEBLATE_DATABASE_BACKUP¶
DATABASE_BACKUP를 사용하여 일일 데이터��이터베이스 덤프를 설정합니다. 기본값은plain입니다.
데이터 저장소 서버 설정¶
Weblate 컨테이너에는 Valkey 또는 Redis가 필요하며, Docker에서 Weblate를 실행할 때 연결 매개변수를 제공해야 합니다.
더 보기
- REDIS_HOST¶
데이터 저장소 서버 호스트 이름 또는 IP 주소입니다. 기본값은
cache입니다.
- REDIS_PORT¶
데이터 저장소 서버 포트입니다. 기본값은
6379입니다.
- REDIS_DB¶
데이터 저장소 데이터베이스 번호입니다. 기본값은
1입니다.
- REDIS_USER¶
Added in version 5.13: 데이터 저장소 데이터베이스 사용자입니다. 기본적으로 사용되지 않습니다.
- REDIS_TLS¶
데이터 저장소 연결에 SSL 사용을 활성화합니다.
- REDIS_VERIFY_SSL¶
데이터 저장소 연결에 대한 SSL 인증서 검증을 비활성화하는 데 사용할 수 있습니다.
이메일 서버 설정¶
발신 이메일이 작동하려면 메일 서버를 제공해야 합니다.
TLS 설정 예시:
environment:
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_HOST_USER: user
WEBLATE_EMAIL_HOST_PASSWORD: pass
SSL 설정 예시:
environment:
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_PORT: 465
WEBLATE_EMAIL_HOST_USER: user
WEBLATE_EMAIL_HOST_PASSWORD: pass
WEBLATE_EMAIL_USE_TLS: 0
WEBLATE_EMAIL_USE_SSL: 1
더 보기
- WEBLATE_EMAIL_HOST¶
메일 서버 호스트 이름 또는 IP 주소입니다.
- WEBLATE_EMAIL_PORT¶
메일 서버 포트입니다. 기본값은 25입니다.
더 보기
- WEBLATE_EMAIL_HOST_USER¶
이메일 인증 사용자입니다.
더 보기
- WEBLATE_EMAIL_HOST_PASSWORD¶
이메일 인증 비밀번호입니다.
더 보기
- WEBLATE_EMAIL_USE_SSL¶
SMTP 서버에 연결할 때 암묵적 TLS(보안) 연결을 사용할지 여부입니다. 대부분의 이메일 문서에서 이 유형의 TLS 연결을 SSL이라고 합니다. 일반적으로 포트 465에서 사용됩니다. 문제가 발생하면 명시적 TLS 설정
WEBLATE_EMAIL_USE_TLS를 참조하세요.버전 4.11에서 변경: SSL/TLS 지원은
WEBLATE_EMAIL_PORT에 따라 자동으로 활성화됩니다.
- WEBLATE_EMAIL_USE_TLS¶
SMTP 서버에 연결할 때 TLS(보안) 연결을 사용할지 여부입니다. 명시적 TLS 연결에 사용되며, 일반적으로 포트 587 또는 25에서 사용됩니다. 연결이 멈추는 문제가 발생하면 암묵적 TLS 설정
WEBLATE_EMAIL_USE_SSL을 참조하세요.버전 4.11에서 변경: SSL/TLS 지원은
WEBLATE_EMAIL_PORT에 따라 자동으로 활성화됩니다.
- WEBLATE_EMAIL_BACKEND¶
이메일 발송에 사용할 Django 백엔드를 설정합니다.
Set to
django_ses.SESBackendto use AWS SES.더 보기
- WEBLATE_AWS_SES_REGION_NAME¶
AWS region for SES (e.g.
us-east-1). SetsAWS_SES_REGION_NAMEand derivesWEBLATE_AWS_SES_REGION_ENDPOINTautomatically unless that variable is set explicitly. If not set, the region must be available through the standard boto3 credential chain (e.g.AWS_DEFAULT_REGIONor an AWS profile).
- WEBLATE_AWS_SES_REGION_ENDPOINT¶
SES endpoint hostname. When set, it is passed to django-ses directly regardless of
WEBLATE_AWS_SES_REGION_NAME. When not set butWEBLATE_AWS_SES_REGION_NAMEis provided, defaults toemail.<region>.amazonaws.com. Override when using a VPC or custom endpoint.
- WEBLATE_USE_SES_V2¶
Set to
trueto use the SES v2 API (SendEmail) instead of the legacySendRawEmailcall. Boolean setting (use"true"or"false").
- WEBLATE_AUTO_UPDATE¶
Weblate가 저장소를 업데이트할지 여부와 방법을 설정합니다.
The default,
"false", fetches remote changes daily without merging them into the working copy; it does not disable daily updates. Set to"true"to also merge remote changes into the working copy.더 보기
AUTO_UPDATEfor details on how updates are scheduled throughout the day.참고
부울 설정입니다 (
"true"또는"false"를 사용).
사이트 연동¶
- WEBLATE_GET_HELP_URL¶
GET_HELP_URL을 설정합니다.
- WEBLATE_STATUS_URL¶
STATUS_URL을 설정합니다.
- WEBLATE_PRIVACY_URL¶
PRIVACY_URL을 설정합니다.
- WEBLATE_PASSWORD_RESET_URL¶
PASSWORD_RESET_URL을 설정합니다.
오류 보고 수집 및 성능 모니터링¶
설치에서 발생하는 오류를 체계적으로 수집하는 것이 권장됩니다 ( 오류 보고 수집 및 성능 모니터링 참조).
Rollbar 지원을 활성화하려면 다음을 설정하세요:
- ROLLBAR_KEY¶
Rollbar 포스트 서버 액세스 토큰입니다.
- ROLLBAR_ENVIRONMENT¶
Rollbar 환경입니다. 기본값은
production입니다.
Sentry 지원을 활성화하려면 다음을 설정하세요:
- SENTRY_DSN¶
Sentry DSN입니다 (
SENTRY_DSN참조).
- SENTRY_ENVIRONMENT¶
Sentry 환경(선택 사항)입니다. 기본값은
WEBLATE_SITE_DOMAIN입니다.
- SENTRY_MONITOR_BEAT_TASKS¶
Sentry로 Celery Beat 작업을 모니터링할지 여부입니다. 기본값은
True입니다.
- SENTRY_TRACES_SAMPLE_RATE¶
SENTRY_TRACES_SAMPLE_RATE를 설정합니다.예시:
environment: SENTRY_TRACES_SAMPLE_RATE: 0.5
- SENTRY_PROFILES_SAMPLE_RATE¶
SENTRY_PROFILES_SAMPLE_RATE를 설정합니다.예시:
environment: SENTRY_PROFILES_SAMPLE_RATE: 0.5
- SENTRY_SEND_PII¶
SENTRY_SEND_PII를 설정합니다.
Google Cloud Error Reporting 지원을 활성화하려면 다음을 설정하세요:
- GOOGLE_CLOUD_ERROR_REPORTING_ENABLED¶
GOOGLE_CLOUD_ERROR_REPORTING을 활성화합니다. 기본값은False입니다.
- GOOGLE_CLOUD_ERROR_REPORTING_PROJECT¶
오류를 보고할 Google Cloud 프로젝트입니다. 생략하면 Google 클라이언트가 애플리케이션 기본 자격 증명을 사용해 프로젝트를 감지합니다.
- GOOGLE_CLOUD_ERROR_REPORTING_SERVICE¶
Google Cloud Error Reporting에서 사용할 서비스 이름입니다. 기본값은
weblate입니다.
OpenTelemetry 추적 지원을 활성화하려면 다음을 설정하세요:
- OPENTELEMETRY_ENABLED¶
OPENTELEMETRY_ENABLED를 활성화합니다. 기본값은False입니다.
- OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT¶
OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT를 구성합니다.예시:
environment: OPENTELEMETRY_ENABLED: true OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT: https://collector.example.com/v1/traces OPENTELEMETRY_TRACES_SAMPLE_RATE: 0.1
- OPENTELEMETRY_EXPORTER_OTLP_HEADERS¶
OPENTELEMETRY_EXPORTER_OTLP_HEADERS를 쉼표로 구분된name:value매핑으로 구성합니다.
- OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTES¶
OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTES를 쉼표로 구분된name:value매핑으로 구성합니다.
- OPENTELEMETRY_SERVICE_NAME¶
OPENTELEMETRY_SERVICE_NAME을 구성합니다.
- OPENTELEMETRY_TRACES_SAMPLE_RATE¶
OPENTELEMETRY_TRACES_SAMPLE_RATE를 구성합니다.
현지화 CDN¶
- WEBLATE_LOCALIZE_CDN_URL¶
- WEBLATE_LOCALIZE_CDN_PATH¶
Added in version 4.2.1.
자바스크립트 현지화 CDN 및 번역 파일 CDN 를 포함한 CDN 애드온 설정입니다.
WEBLATE_LOCALIZE_CDN_PATH는 컨테이너 내부의 경로입니다. 임시 저장소가 아닌 영구 볼륨에 저장해야 합니다.가능한 방법 중 하나는 Weblate 데이터 디렉터리 안에 저장하는 것임:
environment: WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/ WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn
참고
Weblate가 생성한 파일을 제공하도록 설정하는 책임은 사용자에게 있습니다. Weblate는 구성된 위치에 파일을 저장만 합니다. 안전한 제공 지침은 현지화 CDN 를 참조하세요.
활성화된 앱, 검사, 형식, 애드온, 기계 번역 또는 자동 수정 변경¶
활성화된 검사, 파일 형식, 애드온, 기계 번역 또는 자동 수정의 내장 구성은 다음 변수로 조정할 수 있습니다:
- WEBLATE_ADD_APPS¶
- WEBLATE_REMOVE_APPS¶
- WEBLATE_ADD_CHECK¶
- WEBLATE_REMOVE_CHECK¶
- WEBLATE_ADD_AUTOFIX¶
- WEBLATE_REMOVE_AUTOFIX¶
- WEBLATE_ADD_FORMATS¶
- WEBLATE_REMOVE_FORMATS¶
- WEBLATE_ADD_ADDONS¶
- WEBLATE_REMOVE_ADDONS¶
- WEBLATE_ADD_MACHINERY¶
Added in version 5.6.1.
- WEBLATE_REMOVE_MACHINERY¶
Added in version 5.6.1.
예시:
environment:
WEBLATE_REMOVE_AUTOFIX: weblate.trans.autofixes.whitespace.SameBookendingWhitespace
WEBLATE_REMOVE_FORMATS: weblate.formats.ttkit.PoFormat
WEBLATE_ADD_ADDONS: customize.addons.MyAddon,customize.addons.OtherAddon
컨테이너 설정¶
- WEBLATE_WORKERS¶
Added in version 4.6.1.
컨테이너에서 실행되는 워커 프로세스의 기본 수입니다. 설정하지 않으면 컨테이너 시작 시 사용 가능한 CPU 코어 수를 기반으로 자동으로 결정됩니다.
It is used to determine
CELERY_MAIN_OPTIONS,CELERY_COMBINED_OPTIONS,CELERY_NOTIFY_OPTIONS,CELERY_MEMORY_OPTIONS,CELERY_TRANSLATE_OPTIONS,CELERY_BACKUP_OPTIONS,WEB_WORKERS, andWEB_BLOCKING_THREADS. You can use these settings to fine-tune.
- CELERY_WORKER_MODE¶
Added in version 2026.9.1.
Selects how Celery workers are run in the container. Supported modes are:
combinedRuns one prefork worker for all queues. This is the default and reduces memory usage by sharing the application startup memory. Its concurrency defaults to three times
WEBLATE_WORKERS, and its prefetch multiplier defaults to one.splitRuns a separate prefork worker for each queue. This matches the behavior of container versions before 2026.9.1 and allows each queue to be tuned independently.
singleRuns all queues in one process using the solo pool. This minimizes memory usage, but noticeably reduces task throughput.
Explicit
WEBLATE_SERVICEselection takes precedence over this setting in horizontally scaled deployments.
- CELERY_COMBINED_OPTIONS¶
Added in version 2026.9.1.
Configures the worker used by
CELERY_WORKER_MODE=combined. By default, its concurrency is three timesWEBLATE_WORKERS. The worker uses a prefetch multiplier of one unless overridden here.environment: CELERY_COMBINED_OPTIONS: --concurrency 12 --prefetch-multiplier 1
- CELERY_MAIN_OPTIONS¶
- CELERY_NOTIFY_OPTIONS¶
- CELERY_MEMORY_OPTIONS¶
- CELERY_TRANSLATE_OPTIONS¶
- CELERY_BACKUP_OPTIONS¶
These variables allow you to adjust Celery worker options in
CELERY_WORKER_MODE=split. It can be useful to adjust concurrency (--concurrency 16), prefetching (--prefetch-multiplier 4), or use different pool implementation (--pool=gevent). Command-line options take precedence over corresponding Celery settings, allowing each worker category to use a different prefetch multiplier. When any of these variables is set incombinedorsinglemode, the container logs a startup warning that it is ignored.기본적으로 동시 워커 수는
WEBLATE_WORKERS를 기반으로 합니다.예시:
environment: CELERY_MAIN_OPTIONS: --concurrency 16 --prefetch-multiplier 1
- CELERY_BEAT_OPTIONS¶
Configures the Celery beat scheduler in all worker modes.
- CELERY_SINGLE_OPTIONS¶
Configures the worker used by
CELERY_WORKER_MODE=single.
- CELERY_SINGLE_PROCESS¶
Added in version 5.7.1.
버전 2026.9.1부터 폐지됨.
Compatibility alias for
CELERY_WORKER_MODE=single. When set to1withoutCELERY_WORKER_MODE, the container starts insinglemode and logs a warning asking you to update the setting. If both variables are set,CELERY_WORKER_MODEtakes precedence.더 보기
- WEBLATE_ASGI¶
Added in version 2026.8.
Set to
1to run the web application using ASGI instead of WSGI. This is an opt-in setting intended for testing the transition to ASGI. WSGI remains the default for now, but a future release will run ASGI only and remove this setting.environment: WEBLATE_ASGI: 1
- WEB_WORKERS¶
Configure how many web application workers should be executed.
기본값은
WEBLATE_WORKERS의 절반이지만 항상 최소 2입니다.예시:
environment: WEB_WORKERS: 4
버전 5.13에서 변경:
WEB_WORKERSconfigures how many worker processes will be used by granian.
- WEB_BLOCKING_THREADS¶
Configure how many blocking WSGI threads each granian worker can use. It defaults to twice
WEBLATE_WORKERSand is ignored whenWEBLATE_ASGIis enabled.The maximum number of simultaneous WSGI requests is approximately
WEB_WORKERSmultiplied byWEB_BLOCKING_THREADS. Each thread can hold its own database connection, so keep the resulting total within the database connection limit.예시:
environment: WEB_WORKERS: 2 WEB_BLOCKING_THREADS: 8
- WEBLATE_SERVICE¶
컨테이너 내에서 실행할 서비스를 정의합니다. 수평 확장 에 사용합니다.
다음과 같은 서비스가 정의되어 있음:
celery-beatCelery 작업 스케줄러입니다. 하나의 인스턴스만 실행해야 합니다. 이 컨테이너는 데이터��이터베이스 구조 마이그레이션도 담당하며 다른 컨테이너보다 먼저 시작해야 합니다.
celery-backup백업용 Celery 워커입니다. 하나의 인스턴스만 실행해야 합니다.
celery-combinedCombined Celery worker for all task queues.
celery-celery일반 Celery 워커입니다.
celery-memory번역 메모리 Celery 워커입니다.
celery-notify알림 Celery 워커입니다.
celery-singleSingle-process Celery worker for all task queues.
celery-translate자동 번역 Celery 워커입니다.
web웹 서버입니다.
더 보기
- WEBLATE_ANUBIS_URL¶
Added in version 5.11.4.
하위 요청 인증을 처리하는 Anubis 서버의 URL입니다. 작업 증명을 사용하여 들어오는 HTTP 요청을 필터링하여 AI 크롤러를 차단하는 데 유용합니다. 작동하려면 Anubis for Subrequest Authentication 을 설정해야 합니다.
Use an
http://orhttps://URL with a valid hostname or IPv4 address. The URL can include a port and a simple slash-separated path using ASCII letters, digits,_, and-. Credentials, queries, fragments, and IPv6 addresses are not supported.
Docker 컨테이너 볼륨¶
Weblate 컨테이너에 의해 내보내지는 두 개의 볼륨(data 및 cache)이 있습니다.
참고
다른 서비스 컨테이너(PostgreSQL 또는 Valkey 등)에도 자체 데이터 볼륨이 있으며, Weblate 지속성을 유지하는 데 필요합니다.
PostgreSQL 컨테이너는 /var/lib/postgresql 볼륨에 데이터��이터베이스를 저장하고, Valkey는 /data 볼륨에 저장합니다. Valkey 컨테이너는 기본적으로 데이터를 저장하지 않으며 지속성을 활성화하려면 추가 설정이 필요합니다.
Weblate가 제공하는 예시를 기반으로 설정하거나 자세한 정보는 해당 문서를 참조하세요.
data 볼륨은 /app/data 로 마운트되며, 클론된 저장소와 같은 Weblate 영구 데이터를 저장하거나 Weblate 설치를 사용자 정의하는 데 사용됩니다. DATA_DIR 에 여기에 저장되는 내용이 자세히 설명되어 있습니다.
data 볼륨은 데이터 볼륨에서 설정 재정의, 로고 및 기타 정적 파일 교체 또는 코드 사용자 정의 와 같은 Weblate 사용자 정의를 저장하는 곳이기도 합니다.
호스트 시스템에서 Docker 볼륨의 위치는 Docker 설정에 따라 다르지만, 일반적으로 /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ 에 저장됩니다(경로는 docker-compose 디렉터리 이름, 컨테이너 이름, 볼륨 이름으로 구성됨).
cache 볼륨은 /app/cache 로 마운트되며 정적 파일과 CACHE_DIR 를 저장하는 데 사용됩니다. 컨테이너 시작 시 내용이 다시 생성되며 tmpfs 같은 임시 파일시스템으로 마운트할 수 있지만, Weblate가 생성된 도우미 파일을 그곳에 저장하므로 마운트는 실행을 허용해야 합니다.
Docker Compose에서 /app/cache 를 명시적으로 tmpfs 로 마운트할 때는 실행을 활성화하세요:
tmpfs:
- /app/cache:exec
소유권 옵션도 지정하는 경우 exec 옵션을 유지하세요:
tmpfs:
- /app/cache:exec,uid=1000,gid=1000
볼륨을 수동으로 생성할 때, 디렉터리는 컨테이너 내부에서 사용되는 사용자인 UID 1000이 소유해야 합니다.
Weblate 컨테이너는 읽기 전용 루트 파일시스템으로도 실행할 수 있습니다. 이 경우 두 개의 추가 tmpfs 볼륨(/tmp 및 /run)을 마운트해야 합니다.
읽기 전용 루트 파일시스템¶
Added in version 4.18.
읽기 전용 루트 파일시스템으로 컨테이너를 실행할 때는 두 개의 추가 tmpfs 볼륨(/tmp 및 /run)이 필요합니다.
환경 변수를 넘어서는 설정¶
Docker 환경 변수 는 Weblate 설치와 관련된 대부분의 설정 을 노출하기 위한 것입니다.
환경 변수로 노출되지 않는 설정을 발견하고 그것이 노출되어야 한다고 생각되면, 향후 Weblate 버전에서 노출되도록 요청 하실 수 있습니다.
Docker 환경 변수로 노출되지 않는 설정을 수정해야 하는 경우, 데이터 볼륨에서 또는 Docker 이미지를 확장하여 수정할 수 있습니다.
더 보기
데이터 볼륨에서 설정 재정의¶
/app/data/settings-override.py (즉, 데이터 볼륨 의 루트)에 파일을 만들어 환경 변수로 정의된 설정을 확장하거나 재정의할 수 있습니다.
Docker 이미지를 확장하여 설정 재정의¶
데이터 볼륨 대신 Docker 이미지 수준에서 설정을 재정의하려면:
패키지에
weblate.settings_docker에서 모든 설정을 가져오는 모듈을 추가합니다.예를 들어, Python 모듈 생성 에 정의된 예시 패키지 구조 내에서 다음 초기 코드로
weblate_customization/weblate_customization/settings.py파일을 만들 수 있음:from weblate.settings_docker import *
공식 Weblate Docker 이미지를 상속하는 사용자 정의
Dockerfile을 만든 다음 패키지를 설치하고DJANGO_SETTINGS_MODULE환경 변수를 설정 모듈로 지정합니다:FROM weblate/weblate USER root COPY weblate_customization /usr/src/weblate_customization RUN source /app/venv/bin/activate && uv pip install --no-cache-dir /usr/src/weblate_customization ENV DJANGO_SETTINGS_MODULE=weblate_customization.settings USER 1000
공식 Weblate Docker 이미지 대신 이
Dockerfile파일에서 사용자 정의 이미지를 빌드하세요.docker-compose.override.yml로 이것을 수행하는 깔끔한 방법 은 없습니다. 해당 파일의weblate노드에build: .을 추가 할 수는 있지만, 그러면 사용자 정의 이미지가 시스템에서weblate/weblate로 태그되어 문제가 될 수 있습니다.따라서 공식 저장소 에서 직접 가져온
docker-compose.yml을 수정 없이 사용하고docker-compose.override.yml로 확장하는 대신, 공식docker-compose.yml파일의 복사본을 만들어image: weblate/weblate를build: .로 바꾸는 것이 좋습니다.docker-compose를 사용할 때 소스에서 이미지를 빌드하는 자세한 내용은 Compose file build reference 를 참조하세요.사용자 정의 설정 모듈을 확장하여 설정을 정의하거나 재정의합니다.
위의 가져오기 문 앞이나 뒤에 설정을 정의하여 어떤 설정이 우선하는지 결정할 수 있습니다. 가져오기 문 앞에 정의된 설정은 환경 변수와 데이터 볼륨에 정의된 설정 재정의에 의해 재정의될 수 있습니다. 가져오기 문 뒤에 정의된 설정은 재정의할 수 없습니다.
더 나아갈 수도 있습니다. 예를 들어
weblate.docker_settings가 수행하는 일부 작업을 재현할 수 있습니다. 설정을 환경 변수로 노출하거나 데이터 볼륨의 Python 파일에서 설정을 재정의할 수 있도록 하는 것 등이 있습니다.
로고 및 기타 정적 파일 교체¶
Weblate와 함께 제공되는 정적 파일은 /app/data/python/customize/static 에 배치하여 재정의할 수 있습니다 ( Docker 컨테이너 볼륨 참조). 예를 들어 /app/data/python/customize/static/favicon.ico 를 만들면 파비콘이 교체됩니다.
힌트
파일은 컨테이너 시작 시 해당 위치로 복사되므로, 볼륨의 내용을 변경한 후 Weblate를 다시 시작해야 합니다.
This approach can be also used to override Weblate templates. For example, custom 법적 모듈 documents and styles can be provided as described in Customizing legal documents and styles.
또한 자체 모듈( Weblate 사용자 정의 참조)을 포함하고 이를 별도의 볼륨으로 Docker 컨테이너에 추가할 수도 있습니다. 예를 들어:
weblate:
volumes:
- weblate-data:/app/data
- ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
environment:
WEBLATE_ADD_APPS: weblate_customization
코드 사용자 정의¶
참고
Weblate 내부 API는 릴리스 간에 크게 달라질 수 있으며 안정성이 보장되지 않습니다. 업그레이드할 때마다 Weblate 내부와 통신하는 사용자 정의 코드를 검토하세요.
추가 Python 코드를 /app/data/python/customize 에 배치할 수 있습니다 ( Docker 컨테이너 볼륨 참조). 이미 Weblate 내부에 Django 애플리케이션으로 설치되어 있습니다(위에서 설명한 대로 템플릿과 정적 파일을 사용자 정의하는 데 사용).
이것은 모든 코드(예: 자체 검사 작성)를 배치하거나 Celery 작업 스케줄러에 사용자 정의 유지보수 작업을 추가하는 데 사용할 수 있습니다.
/app/data/python/customize/tasks.py.¶"""Custom scheduled task."""
from __future__ import annotations
# ruff: ignore[suspicious-subprocess-import]
import subprocess
from typing import TYPE_CHECKING
from celery.schedules import crontab
from weblate.utils.celery import app
if TYPE_CHECKING:
from celery import Celery
@app.task
def custom_task() -> None:
"""Execute custom task code."""
# ruff: ignore[start-process-with-partial-path]
subprocess.run(["sleep", "1"], check=True)
@app.on_after_finalize.connect
def setup_periodic_tasks(sender: Celery, **kwargs: object) -> None:
"""Configure when periodic task is triggered."""
sender.add_periodic_task(
crontab(hour=1, minute=0), custom_task.s(), name="custom-task"
)
서드파티 컨테이너 통합¶
Weblate Docker 설정은 기계 번역, 맞춤법 검사 또는 번역 워크플로를 향상시키는 기타 도구와 같은 보완 서비스를 제공하기 위해 추가 컨테이너로 확장할 수 있습니다. 이 서비스들은 Docker Compose 설정에 통합되어 Weblate와 함께 작동할 수 있습니다.
서드파티 컨테이너를 추가할 때 다음을 고려하세요:
네트워크 연결: 동일한 Docker 네트워크에 배치하여 컨테이너가 서로 통신할 수 있도록 합니다
데이터 지속성: 데이터를 지속해야 하는 서비스에는 볼륨을 사용합니다
보안: 적절한 접근 제어를 설정하고 불필요한 포트를 노출하지 않습니다
LibreTranslate Docker 컨테이너 통합¶
LibreTranslate 는 자체 호스팅 가능한 무료 공개 소스 기계 번역 서비스입니다. Weblate와 통합하면 외부 서비스에 의존하지 않는 오프라인 기계 번역 기능을 제공합니다.
docker-compose.override.yml 파일에 포함하여 LibreTranslate 서비스를 Weblate 배포에 통합할 수 있습니다. Docker 네트워크 내에서 실행되므로 Weblate에서만 접근할 수 있으며 공개 인터넷에 노출되지 않습니다.
docker-compose.override.yml 을 사용한 기본 설정:
services:
libretranslate:
image: libretranslate/libretranslate:latest
command: --disable-web-ui
restart: unless-stopped
environment:
LT_UPDATE_MODELS: true
volumes:
- libretranslate_models:/home/libretranslate/.local:rw
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
interval: 10s
timeout: 4s
retries: 4
start_period: 5s
volumes:
libretranslate_models:
GPU 가속 번역을 위해 (NVIDIA GPU가 있는 경우):
services:
libretranslate:
image: libretranslate/libretranslate:latest-cuda
command: --disable-web-ui
restart: unless-stopped
environment:
LT_UPDATE_MODELS: true
PUID: root
volumes:
- libretranslate_models:/home/libretranslate/.local:rw
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
interval: 10s
timeout: 4s
retries: 4
start_period: 5s
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
volumes:
libretranslate_models:
docker compose down && docker compose up -d 로 서비스를 시작한 후 Weblate에서 LibreTranslate를 설정함:
Weblate 관리자 인터페이스에 접속합니다
기계 번역 → 자동 제안 으로 이동합니다
다음으로 새 LibreTranslate 서비스를 추가함:
- 서비스:
LibreTranslate
- API URL:
http://libretranslate:5000- API 키:
비워 두기
LibreTranslate가 설정되었으며 Weblate에서 기계 번역을 사용할 수 있습니다.
참고
LibreTranslate 서비스는 웹 UI 없이(
--disable-web-ui) 실행되며 Docker 네트워크 내에서 API를 통해서만 접근할 수 있습니다.컨테이너 시작 시 모델이 자동으로 업데이트됩니다 (
LT_UPDATE_MODELS: true)최적의 성능과 데이터 안전을 위해 Docker 볼륨을 사용하여 데이터를 지속합니다.
헬스 체크를 통해 Docker 엔진이 서비스 상태를 올바르게 모니터링합니다.
GPU 가속을 위해 CUDA 이미지 변형을 사용하고 시스템에 NVIDIA Docker 지원이 있는지 확인하세요. 이 컨테이너는 GPU를 사용할 수 있도록 권한 있는 사용자로 실행됩니다.
외부 포트가 노출되지 않으므로 설정이 기본적으로 안전합니다.
Anubis Docker 컨테이너 통합¶
Anubis 는 서버에서 AI 스크래퍼 및 기타 방해 트래픽을 차단하는 웹 AI 방화벽 유틸리티입니다. 일반적으로 공개적으로 열린 Weblate 설치에서 스크래핑으로 인한 과도한 부하를 방지하기 위해 필요합니다.
Anubis는 Docker Compose를 사용하여 배포할 수 있음:
anubis:
image: ghcr.io/techarohq/anubis:latest
environment:
BIND: ":8923"
DIFFICULTY: "4"
METRICS_BIND: ":9090"
SERVE_ROBOTS_TXT: "false"
OG_PASSTHROUGH: "false"
# The single space in TARGET enables subrequest authentication
TARGET: " "
# The redirect domain has to match WEBLATE_SITE_DOMAIN
REDIRECT_DOMAINS: weblate.example.com
# Generate a random private key using: openssl rand -hex 32
ED25519_PRIVATE_KEY_HEX: "..."
# Customize your Anubis policy
POLICY_FNAME: /data/botPolicies.yaml
healthcheck:
test: ["CMD", "anubis", "--healthcheck"]
interval: 5s
timeout: 30s
retries: 5
start_period: 500ms
volumes:
- anubis-data:/data
volumes:
anubis-data:
참고
위 설정의 anubis-data 볼륨에는 필요에 따라 설정된 봇 정책이 포함된 botPolicies.yaml 이 있어야 합니다.
최소한 https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth에 설명된 대로 상태 코드를 조정해야 합니다.
https://anubis.techaro.lol/docs/admin/policies/#storage-backends에 설명된 대로 영구 저장소 백엔드를 설정하는 것도 권장됩니다.
그런 다음 다음을 사용하여 Weblate에서 Anubis 사용을 켤 수 있음:
environment:
WEBLATE_ANUBIS_URL: http://anubis:8923
더 보기
PostgreSQL 서버 설정¶
PostgreSQL 컨테이너는 기본 PostgreSQL 설정을 사용하므로 CPU 코어나 메모리를 효율적으로 활용하지 못합니다. 성능을 향상시키려면 설정을 사용자 정의하는 것이 권장됩니다.
설정은 https://hub.docker.com/_/postgres의 Database Configuration 에 설명된 대로 조정할 수 있습니다. 환경에 맞는 설정은 https://pgtune.leopard.in.ua/를 사용하여 생성할 수 있습니다.
컨테이너 내부¶
컨테이너는 supervisor 를 사용하여 개별 서비스를 시작합니다. 수평 확장 의 경우 컨테이너에서 단일 서비스만 시작합니다.
서비스 상태를 확인하려면 다음을 사용하세요:
docker compose exec --user weblate weblate supervisorctl status
The Celery services depend on CELERY_WORKER_MODE. The default
combined mode runs celery-combined, while single mode runs
celery-single. You can stop all task processing in the default mode using:
docker compose exec --user weblate weblate supervisorctl stop celery-combined
The split mode runs an individual service for each Celery queue (see
Celery를 사용한 백그라운드 작업 for details). In this mode, you can stop processing some tasks by
stopping the appropriate worker:
docker compose exec --user weblate weblate supervisorctl stop celery-translate