Установка с помощью Docker’а¶
With dockerized Weblate deployment you can get your personal Weblate instance up and running in seconds. All of Weblate’s dependencies are already included. PostgreSQL is set up as the default database and Valkey as a caching backend.
Требования к оборудованию¶
Weblate должен без проблем работать на любом современном оборудовании, ниже приведена минимальная конфигурация, необходимая для запуска Weblate на одном сервере (сам Weblate, база данных и веб-сервер):
3 ГБ ОЗУ
2-х ядерный процессор
1 ГБ дискового пространства
Примечание
Фактические требования к вашей установке Weblate сильно зависят от размера управляемых ею переводов.
Использование памяти¶
Чем больше памяти, тем лучше — она используется для кэширования на всех уровнях (на уровне файловой системы, уровне базы данных и уровне Weblate). Для сотен компонентов перевода рекомендуется не менее 4 ГБ оперативной памяти.
Подсказка
Для систем с меньшим, чем рекомендуется, объёмом памяти рекомендуется использовать Однопроцессная установка для производства Celery.
Использование CPU¶
Множество одновременно работающих пользователей увеличивают количество необходимых ядер процессора.
Использование хранилища¶
Типовое использование дискового пространства базой данной находится в районе 300MB на 1 миллион хранимых слов.
Пространство необходимое для клонирования репозиториев разнится, хотя Weblate и пытается поддерживать их размер минимальным, делая поверхностные (shallow) копии.
Узлы¶
For small and medium-sized sites (millions of hosted words), all Weblate components (see Обзор архитектуры) can be run on a single node.
When you grow to hundreds of millions of hosted words, it is recommended to have a dedicated node for database (see Настройка базы данных для Weblate).
Установка¶
Подсказка
В следующих примерах предполагается, что у вас есть работающая среда Docker с установленным плагином docker-compose-plugin. Инструкции см. в документации Docker.
При этом создаётся сервер развёртывания Weblate через HTTP, поэтому вам следует разместить его за завершающим прокси-сервером HTTPS. Вы также можете выполнить развёртывание с помощью HTTPS-прокси, см. Автоматический выпуск SSL-сертификатов с помощью сервиса Let’s Encrypt. Для более крупных настроек см. Масштабирование по горизонтали.
Склонируйте репозиторий weblate-docker:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
Создайте файл
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’ом, он доступен на порту 80 контейнера weblate.
См. также
Выбор реестра образов Docker¶
Контейнеры Weblate публикуются в следующих реестрах:
Docker Hub, см. https://hub.docker.com/r/weblate/weblate
Реестр пакетов GitHub см. https://github.com/WeblateOrg/docker/pkgs/container/weblate
Примечание
Все примеры в настоящее время получают изображения из Docker Hub. Измените конфигурацию соответствующим образом, чтобы использовать другой реестр.
Выбор метки изображения Docker¶
Пожалуйста, выберите метку, которая соответствует вашей среде и ожиданиям:
Имя метки |
Описание |
Пример использования |
|---|---|---|
|
Стабильный выпуск Weblate, соответствует последнему выпуску с метками |
Выполнение обновлений в рабочей среде |
|
Стабильный выпуск Weblate |
Последовательные обновления основной версии в производственной среде |
|
Стабильный выпуск Weblate |
Последовательные обновления второстепенной версии в производственной среде |
|
Стабильный выпуск Weblate |
Хорошо поставленное развёртывание в рабочей среде |
|
Стабильный выпуск Weblate с изменениями в разработке в Docker-контейнере (например, обновленные зависимости) |
Запуск обновлений в среде постановки |
|
Стабильный выпуск Weblate с изменениями в разработке в Docker-контейнере (например, обновленные зависимости) |
Чётко определённое развертывание в среде постановки |
|
Версия разработчика Weblate из Git |
Запуск обновлений для тестирования предстоящих функций Weblate |
|
Версия разработчика Weblate из Git |
Хорошо определённое развёртывание для тестирования предстоящих функций Weblate |
Каждое изображение тестируется нашей непрерывной интеграцией перед публикацией, поэтому даже bleeding (кровоточащая) версия должна быть вполне безопасной для использования.
Полный список опубликованных меток можно найти на странице GitHub Packages
Контейнер Docker с поддержкой HTTPS¶
Общие инструкции по развертыванию, пожалуйста, смотрите в разделе Установка, в этом разделе упоминаются только отличия от той инструкции.
SSL terminating proxy¶
SSL can be terminated outside Weblate container. To make this work well together, several headers need to be passed to the container so that it is aware of its actual environment. In more detail, these headers are described in Работа за обратным прокси.
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
Использование собственных SSL-сертификатов¶
Если вы хотите использовать свой собственный SSL-сертификат, просто поместите его файлы в том данных Weblate (смотрите раздел Тома контейнеров Docker’а):
ssl/fullchain.pem, содержащий сертификат и все необходимые сертификаты центров сертификацииssl/privkey.pem, содержащий закрытый ключ
Обеими этими файлами должен владеть тот же самый пользователь, который запускает контейнер docker ’а, а маска этих файлов должна быть равна 600 (читать и писать в них может только владелец).
Кроме того, контейнер Weblate теперь будет принимать SSL-соединения на порт 4443 и вам нужно будет включить перенаправление портов для HTTPS в переопределении Docker Compose:
version: '3'
services:
weblate:
ports:
- 80:8080
- 443:4443
Если на этом же сервере у вас уже размещены другие сайты, скорее всего, порты 80 и 443 используются обратным прокси, например, NGINX. Для передачи HTTPS соединения из NGINX’а в контейнер docker ’а вы можете использовать следующую конфигурацию:
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 на фактические значения из вашего окружения.
Автоматический выпуск SSL-сертификатов с помощью сервиса Let’s Encrypt¶
Если вы хотите использовать 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 довольно болезненно и в большинстве случаев не приносит особых преимуществ.
Изменено в версии 4.17-1: Начиная с Weblate 4.17-1, контейнер Docker использует Django 4.2, для которого требуется PostgreSQL 12 или новее, обновите его перед обновлением Weblate. См. Обновление контейнера 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 должна быть перенесена автоматически, надобности в дополнительных ручных действиях не возникнет.
Примечание
Обновления через основные версии Weblate не поддерживают. Если вы используете версию 3.x и хотите обновиться до 4.x, сначала выполните обновление до последнего образа 4.0.x-y (на момент написания это 4.0.4-5), которое выполнит миграцию, а затем продолжите обновление до более новых версий.
Также вы можете захотеть обновить репозиторий docker-compose, хотя в большинстве случаев в этом нет необходимости. См. Обновление контейнера PostgreSQL для обновления сервера PostgreSQL.
Обновление контейнера PostgreSQL¶
Контейнеры 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в данной документации.Подправьте файл
docker-compose.yml, чтобы использовать новую версию PostgreSQL.Запустить контейнер базы данных:
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
Вход от имени администратора¶
После настройки контейнера вы можете войти в систему под пользователем admin с паролем, указанным в переменной окружения WEBLATE_ADMIN_PASSWORD, или случайным паролем, сгенерированным при первом запуске, если он не был установлен явно.
Для сброса пароля пользователя admin перезапустите контейнер с переменной WEBLATE_ADMIN_PASSWORD, установленной в новое значение пароля.
Количество процессов и потребление памяти¶
Количество рабочих процессов для WSGI и Celery определяется автоматически на основе количества ЦП. Это хорошо подходит для большинства облачных виртуальных машин, так как они обычно имеют мало процессоров и хороший объём памяти.
Если на вашей машине много процессорных ядер и возникают проблемы, вызванные нехваткой памяти, то попробуйте уменьшить количество рабочих процессов:
environment:
WEBLATE_WORKERS: 2
Вы также можете точно настроить отдельные категории процессов:
environment:
WEB_WORKERS: 4
CELERY_MAIN_OPTIONS: --concurrency 2
CELERY_NOTIFY_OPTIONS: --concurrency 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1
Memory usage can be further reduced by running only a single Celery process:
environment:
CELERY_SINGLE_PROCESS: 1
Масштабирование по горизонтали¶
Добавлено в версии 4.6.
Вы можете запустить несколько Weblate-контейнеров для горизонтального масштабирования сервиса. Том /app/data должен быть общим для всех контейнеров, для этого рекомендуется использовать кластерную файловую систему, например GlusterFS. Том /app/cache должен быть отдельным для каждого контейнера.
Each Weblate container has defined role using WEBLATE_SERVICE
environment variable. Please follow carefully the documentation as some of the
services should be running just once in the cluster, and the order of the
services matters as well.
Пример установки вы можете найти в репозитории docker-compose в виде docker-compose-split.yml.
Переменные окружения Docker¶
Many of Weblate’s Конфигурация can be set in the Docker container using the environment variables described below.
Если вам нужно определить параметр, не отображаемый через переменные среды Docker, см. Конфигурация за пределами переменных среды.
Прохождение кодов¶
Добавлено в версии 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_DEBUG¶
Настраивает отладочный режим Django, используя ее переменную
DEBUG.Пример:
environment: WEBLATE_DEBUG: 1
См. также
- WEBLATE_LOGLEVEL¶
Configures the logging verbosity. Set this to
DEBUGto get more detailed logs.По умолчанию используется
INFO, когдаWEBLATE_DEBUGотключён,DEBUGиспользуется, когда включён режим отладки.Для более тихой регистрации используйте
ERRORилиWARNING.
- WEBLATE_LOGLEVEL_DATABASE¶
Настраивает подробность ведения журнала запросов к базе данных.
- WEBLATE_LOG_GELF_HOST¶
Добавлено в версии 5.9.
Configures remote logging using GELF TCP connection. Can be used to integrate with Graylog.
- WEBLATE_LOG_GELF_PORT¶
Добавлено в версии 5.9.
Use custom port for
WEBLATE_LOG_GELF_HOST, defaults to 12201.
- WEBLATE_SITE_TITLE¶
Изменяет название сайта, показываемое в заголовке всех страниц.
- WEBLATE_SITE_DOMAIN¶
Настраивает домен сайта. Этот параметр является обязательным.
Include port if using a non-standard one.
Пример:
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¶
Whether to sent e-mail to admins upon server error. Turned on by default.
You might want to use other error collection like Sentry or Rollbar and turn this off.
См. также
- WEBLATE_SERVER_EMAIL¶
Адрес электронной почты, с которого отправляются сообщения об ошибках.
- WEBLATE_DEFAULT_FROM_EMAIL¶
Настраивает адрес для исходящих сообщений электронной почты.
- WEBLATE_ADMINS_CONTACT¶
Настраивает параметр
ADMINS_CONTACT.
- WEBLATE_CONTACT_FORM¶
Настраивает поведение контактной формы, смотреть параметр
CONTACT_FORM.
- WEBLATE_ALLOWED_HOSTS¶
Настраивает разрешённые имена HTTP-хостов с помощью параметра
ALLOWED_HOSTS.По умолчанию установлен в
*, что позволяет использовать все имена хостов.Пример:
environment: WEBLATE_ALLOWED_HOSTS: weblate.example.com,example.com
- WEBLATE_REGISTRATION_OPEN¶
Настраивает статус открытия регистрации, переключая параметр
REGISTRATION_OPEN.Пример:
environment: WEBLATE_REGISTRATION_OPEN: 0
- WEBLATE_REGISTRATION_CAPTCHA¶
Добавлено в версии 5.10.
Configures whether captcha is used for registration and other unauthenticated actions, see
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¶
Добавлено в версии 4.16.
Настраивает
REGISTRATION_REBIND.
- WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS¶
Добавлено в версии 5.16.1.
Configures
REGISTRATION_ALLOW_DISPOSABLE_EMAILS.Пример:
environment: WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS: 1
- WEBLATE_TIME_ZONE¶
Настраивает используемый в Weblate часовой пояс, смотрите описание параметра
TIME_ZONE.Примечание
Для изменения часового пояса самого контейнера Docker используйте переменную окружения
TZ.Пример:
environment: WEBLATE_TIME_ZONE: Europe/Prague
- WEBLATE_ENABLE_HTTPS¶
Заставляет Weblate думать, что он работает за обратным HTTPS-прокси, что принуждает Weblate использовать HTTPS в ссылках писем электронной почты и API или устанавливать у кук флаги безопасности.
Подсказка
Смотрите возможные топкие места в документацию к параметру
ENABLE_HTTPS.Примечание
Этот параметр не включает разрешение на прием контейнером Weblate’а соединений по HTTPS, его нужно настроить отдельно, для примеров смотрите раздел Контейнер Docker с поддержкой HTTPS.
Пример:
environment: WEBLATE_ENABLE_HTTPS: 1
- WEBLATE_IP_PROXY_HEADER¶
Позволяет Weblate’у получать IP-адрес из любого заданного HTTP-заголовка. Используйте его при использовании обратного прокси перед контейнером Weblate.
Включает параметр
IP_BEHIND_REVERSE_PROXYи устанавливает параметрIP_PROXY_HEADER.Примечание
Формат должен соответствовать ожиданиям Django. Django трансформирует необработанные имена HTTP-заголовков следующим образом:
переводит все символы в верхний регистр
все дефисы заменяет на подчеркивания
prepends
HTTP_prefix
So
X-Forwarded-Forwould be mapped toHTTP_X_FORWARDED_FOR.Пример:
environment: WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
- WEBLATE_IP_PROXY_OFFSET¶
Добавлено в версии 5.0.1.
Настраивает
IP_PROXY_OFFSET.
- WEBLATE_USE_X_FORWARDED_PORT¶
Добавлено в версии 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_PUBLIC_ENGAGE¶
Enables
PUBLIC_ENGAGE.
- WEBLATE_GOOGLE_ANALYTICS_ID¶
Настраивает идентификатор для Google Analytics, изменяя параметр
GOOGLE_ANALYTICS_ID.
- WEBLATE_DEFAULT_PULL_MESSAGE¶
Настройте заголовок и сообщение по умолчанию для запросов на извлечение через API, изменяя
DEFAULT_PULL_MESSAGE.См. также
- WEBLATE_SIMPLIFY_LANGUAGES¶
Настраивает политику упрощения языка, смотрите описание параметра
SIMPLIFY_LANGUAGES.
- WEBLATE_HIDE_SHARED_GLOSSARY_COMPONENTS¶
Hides glossary components when shared to other projects, see
HIDE_SHARED_GLOSSARY_COMPONENTS.
- WEBLATE_DEFAULT_ACCESS_CONTROL¶
Configures the default Контроль доступа for new projects, see
DEFAULT_ACCESS_CONTROL.
- WEBLATE_DEFAULT_TRANSLATION_REVIEW¶
Добавлено в версии 5.16.
Configures the default value for Включить рецензии, turned off by default.
- WEBLATE_DEFAULT_SOURCE_REVIEW¶
Добавлено в версии 5.16.
Configures the default value for Включить рецензии исходных строк, turned off by default.
- WEBLATE_DEFAULT_RESTRICTED_COMPONENT¶
Configures the default value for Ограниченный доступ for new components, see
DEFAULT_RESTRICTED_COMPONENT.
- WEBLATE_DEFAULT_TRANSLATION_PROPAGATION¶
Configures the default value for Разрешить распространение перевода for new components, see
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_GPG_IDENTITY¶
Настраивает GPG для подписи коммитов, смотрите описание параметра
WEBLATE_GPG_IDENTITY.См. также
- WEBLATE_URL_PREFIX¶
Настраивает префикс URL-адреса, на котором запущен Weblate, смотрите описание параметра
URL_PREFIX.
- 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¶
Позволяет настраивать HTTP-заголовок политики безопасности содержимого Content-Security-Policy.
- WEBLATE_LICENSE_FILTER¶
Настраивает параметр
LICENSE_FILTER.
- WEBLATE_LICENSE_REQUIRED¶
Настройка
LICENSE_REQUIRED.
- WEBLATE_WEBSITE_REQUIRED¶
Настройка
WEBSITE_REQUIRED.
- 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¶
Добавлено в версии 4.6.
Настраивает ограничитель скорости.
Подсказка
Вы можете задать конфигурацию для любого диапазона ограничителя скорости. Для этого добавьте префикс
WEBLATE_к любой из настроек, описанных в разделе Ограничение частоты запросов.
- WEBLATE_API_RATELIMIT_ANON¶
- WEBLATE_API_RATELIMIT_USER¶
Добавлено в версии 4.11.
Настраивает ограничение частоты запросов API. По умолчанию
100/dayдля анонимных пользователей и5000/hourдля авторизованных пользователей.См. также
- WEBLATE_ENABLE_HOOKS¶
Добавлено в версии 4.13.
Настраивает параметр
ENABLE_HOOKS.
- WEBLATE_ENABLE_AVATARS¶
Добавлено в версии 4.6.1.
Настраивает параметр
ENABLE_AVATARS.
- WEBLATE_AVATAR_URL_PREFIX¶
Добавлено в версии 4.15.
Настраивает параметр
AVATAR_URL_PREFIX.
- WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH¶
Добавлено в версии 4.9.
Настраивает параметр
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH.
- WEBLATE_SSH_EXTRA_ARGS¶
Добавлено в версии 4.9.
Настраивает параметр
SSH_EXTRA_ARGS.
- WEBLATE_BORG_EXTRA_ARGS¶
Добавлено в версии 4.9.
Настраивает
BORG_EXTRA_ARGSкак список аргументов, разделённых запятыми.Пример:
environment: WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
- WEBLATE_ENABLE_SHARING¶
Добавлено в версии 4.14.1.
Настраивает параметр
ENABLE_SHARING.
- WEBLATE_SUPPORT_STATUS_CHECK¶
Добавлено в версии 5.5.
Настраивает параметр
SUPPORT_STATUS_CHECK.
- WEBLATE_EXTRA_HTML_HEAD¶
Добавлено в версии 4.15.
Настраивает
EXTRA_HTML_HEAD.
- WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE¶
Добавлено в версии 4.15.
Настраивает
PRIVATE_COMMIT_EMAIL_TEMPLATE.
- WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN¶
Добавлено в версии 4.15.
Настраивает
PRIVATE_COMMIT_EMAIL_OPT_IN.
- WEBLATE_PRIVATE_COMMIT_NAME_TEMPLATE¶
Добавлено в версии 5.16.
Configures
PRIVATE_COMMIT_NAME_TEMPLATE.
- WEBLATE_PRIVATE_COMMIT_NAME_OPT_IN¶
Добавлено в версии 5.16.
Configures
PRIVATE_COMMIT_NAME_OPT_IN.
- WEBLATE_UNUSED_ALERT_DAYS¶
Добавлено в версии 4.17.
Настраивает
UNUSED_ALERT_DAYS.
- WEBLATE_UPDATE_LANGUAGES¶
Добавлено в версии 4.3.2.
Настраивает параметр
UPDATE_LANGUAGES.
- WEBLATE_VCS_ALLOW_HOSTS¶
Добавлено в версии 5.15.
Configures
VCS_ALLOW_HOSTS.
- WEBLATE_VCS_ALLOW_SCHEMES¶
Добавлено в версии 5.15.
Configures
VCS_ALLOW_SCHEMES.
- WEBLATE_VCS_CLONE_DEPTH¶
Добавлено в версии 5.4.
Configures
VCS_CLONE_DEPTH.
- WEBLATE_VCS_API_DELAY¶
Добавлено в версии 5.4.
Configures
VCS_API_DELAY.
- WEBLATE_VCS_API_TIMEOUT¶
Добавлено в версии 5.15.
Configures
VCS_API_TIMEOUT.
- WEBLATE_CORS_ALLOWED_ORIGINS¶
Добавлено в версии 4.16.
Allow CORS requests to API from given origins.
Пример:
environment: WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
- WEBLATE_CORS_ALLOW_ALL_ORIGINS¶
Добавлено в версии 5.6.1: Allows CORS requests to API from all origins.
- CLIENT_MAX_BODY_SIZE¶
Добавлено в версии 4.16.3.
Настраивает максимальный размер тела, принимаемый встроенным веб сервером.
environment: CLIENT_MAX_BODY_SIZE: 200m
Подсказка
В этой переменной намеренно отсутствует префикс
WEBLATE_, поскольку он используется совместно со сторонним контейнером, используемым в Автоматический выпуск SSL-сертификатов с помощью сервиса Let’s Encrypt.
Учётные данные сайтов хостинга кода¶
В контейнере Docker учётные данные хостинга кода могут быть настроены как в отдельных переменных, так и с помощью словаря Python для их одновременного задания. Приведённые ниже примеры относятся к Запрос на извлечение в GitHub, но применимы ко всем Интеграция с системой контроля версий с соответствующим изменением имён переменных.
Важно
All environment variable names must include the WEBLATE_ prefix. For example,
to configure GitHub credentials, use WEBLATE_GITHUB_USERNAME, not GITHUB_USERNAME.
This applies whether you’re configuring for pull requests or any other VCS integration.
An example configuration for GitHub pull requests might look like:
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_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, но их изменение не будет иметь никакого дальнейшего эффекта.
Параметры авторизации¶
Подсказка
The e-mail based authentication is turned on unless disabled by 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¶
- WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_ID¶
Включает Авторизация GitHub.
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.
Azure Active Directory¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET¶
Включает авторизацию через Azure Active Directory, смотрите раздел Microsoft Azure Active Directory.
Azure Active Directory с поддержкой Tenant¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID¶
Включает авторизацию через Azure Active Directory с поддержкой Tenant, смотрите раздел Microsoft Azure Active Directory.
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.
Подсказка
When Keycloak is configured to abstract third-party IDP, you will need to configure
WEBLATE_CSP_FORM_SRCfor the third-party IDP domain.Example when Keycloak is passing authentication to 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¶
Добавлено в версии 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¶
Добавлено в версии 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_IDP_TITLE¶
Настройки провайдера идентификационных данных SAML, смотрите раздел Авторизация через SAML.
- 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¶
Добавлено в версии 4.18.
Сопоставление атрибутов SAML.
Другие параметры авторизации¶
- WEBLATE_NO_EMAIL_AUTH¶
При установке в любое значение отключает авторизацию через электронную почту. См. Отключение авторизации по паролю.
Настройки базы данных PostgreSQL¶
База данных создается в файле docker-compose.yml, поэтому эти настройки влияют как на контейнер Weblate, так и на контейнер PostgreSQL.
См. также
- POSTGRES_PASSWORD¶
Пароль PostgreSQL.
См. также
- POSTGRES_USER¶
Имя пользователя PostgreSQL.
- POSTGRES_DB¶
Имя базы данных PostgreSQL.
- POSTGRES_HOST¶
Имя хоста или IP-адрес сервера PostgreSQL. По умолчанию равен
database.
- POSTGRES_PORT¶
Порт сервера PostgreSQL. По умолчанию не установлен (используется значение по умолчанию).
- POSTGRES_SSL_MODE¶
Настраивает обработку SSL сервером PostgreSQL при соединении с сервером, возможные варианты настройки смотрите документе Описания режимов SSL.
- POSTGRES_ALTER_ROLE¶
Настраивает имя роли PostgreSQL, которую нужно изменить во время миграции базы данных, см. Настройка Weblate для использования PostgreSQL.
По умолчанию
POSTGRES_USER.
- POSTGRES_CONN_MAX_AGE¶
Добавлено в версии 4.8.1.
Время соединения с базой данных, выраженное целым числом секунд. Используйте 0, чтобы закрывать соединения с базой данных в конце каждого запроса (это поведение по умолчанию).
Изменено в версии 5.1: По умолчанию используется неограниченное количество постоянных соединений с базой данных.
Включение сохранения соединений, как правило, приводит к увеличению числа открытых соединений с базой данных. Пожалуйста, настройте конфигурацию базы данных перед включением.
Пример настроек:
environment: POSTGRES_CONN_MAX_AGE: 3600
См. также
- POSTGRES_DISABLE_SERVER_SIDE_CURSORS¶
Добавлено в версии 4.9.1.
Отключите курсоры на стороне сервера в базе данных. Это необходимо в некоторых настройках pgbouncer.
Пример настроек:
environment: POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
- WEBLATE_DATABASES¶
Добавлено в версии 5.1.
Установите значение false, чтобы отключить настройку подключения к базе данных на основе окружения. Используйте Переопределение настроек из тома данных для настройки соединения с базой данных вручную.
Сервер MySQL или MariaDB¶
Ни MySQL, ни MariaDB не могут быть настроены через переменные окружения. Информацию об их использовании см. в разделе Weblate MySQL и MariaDB. Используйте WEBLATE_DATABASES для настройки подключения к базе данных вручную.
Параметры резервного копирования базы данных¶
См. также
- WEBLATE_DATABASE_BACKUP¶
Настраивает ежедневный дамп базы данных с помощью параметра
DATABASE_BACKUP. По умолчанию установлен вplain.
Datastore server setup¶
Using Valkey or Redis is required by the Weblate container and you have to provide a connection parameters when running Weblate in Docker.
См. также
- REDIS_HOST¶
The datastore server hostname or IP address. Defaults to
cache.
- REDIS_PORT¶
The datastore server port. Defaults to
6379.
- REDIS_DB¶
The datastore database number, defaults to
1.
- REDIS_USER¶
Добавлено в версии 5.13: The datastore database user, not used by default.
- REDIS_PASSWORD¶
The datastore server password, not used by default.
См. также
- REDIS_TLS¶
Enables using SSL for the datastore connection.
- REDIS_VERIFY_SSL¶
Can be used to disable SSL certificate verification for the datastore connection.
Настройка почтового сервера¶
Чтобы работала отправка писем электронной почты, необходимо предоставить почтовый сервер.
Пример конфигурации 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¶
Использовать ли неявное TLS (безопасное) соединение при общении с сервером SMTP. В большей части документации по электронной почте этот тип TLS-соединения называется SSL. Он обычно используется на 465-м порту. Если у вас возникли проблемы, попробуйте включить явный TLS параметром
WEBLATE_EMAIL_USE_TLS.Изменено в версии 4.11: Поддержка SSL/TLS включается автоматически на основе
WEBLATE_EMAIL_PORT.
- WEBLATE_EMAIL_USE_TLS¶
Использовать ли TLS (безопасное) соединение при общении с сервером SMTP. Он используется для явных TLS-соединений, обычно на портах 587 или 25. Если ваши соединения зависают, попробуйте включить неявный TLS параметром
WEBLATE_EMAIL_USE_SSL.Изменено в версии 4.11: Поддержка SSL/TLS включается автоматически на основе
WEBLATE_EMAIL_PORT.
- WEBLATE_EMAIL_BACKEND¶
Настраивает бэкенд Django, используемый для отправки сообщений электронной почты.
- WEBLATE_AUTO_UPDATE¶
Настраивает, должен ли Weblate обновлять репозитории и каким образом.
См. также
Примечание
Это логическое значение параметра (используйте
"true"или"false").
Интеграция с сайтом¶
- WEBLATE_GET_HELP_URL¶
Настраивает параметр
GET_HELP_URL.
- WEBLATE_STATUS_URL¶
Настраивает параметр
STATUS_URL.
- WEBLATE_PRIVACY_URL¶
Настраивает параметр
PRIVACY_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¶
Whether to monitor Celery Beat tasks with Sentry, defaults to
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.
CDN локализации¶
- WEBLATE_LOCALIZE_CDN_URL¶
- WEBLATE_LOCALIZE_CDN_PATH¶
Добавлено в версии 4.2.1.
Настройки для CDN локализации JavaScript.
Переменная
WEBLATE_LOCALIZE_CDN_PATHуказывает путь внутри контейнера. Он должен указывать на постоянный том, а не на временное хранилище.Одной из возможных настроек является направление пути внутрь каталога данных Weblate:
environment: WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/ WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn
Примечание
За раздачу файлов, генерируемых Weblate, отвечаете вы, эта переменная только указывает местоположение, куда их надо сохранять.
Changing enabled apps, checks, add-ons, machine translation or autofixes¶
Встроенную конфигурация включённых проверок, надстроек или автоматических исправлений можно изменить с помощью следующих переменных:
- WEBLATE_ADD_APPS¶
- WEBLATE_REMOVE_APPS¶
- WEBLATE_ADD_CHECK¶
- WEBLATE_REMOVE_CHECK¶
- WEBLATE_ADD_AUTOFIX¶
- WEBLATE_REMOVE_AUTOFIX¶
- WEBLATE_ADD_ADDONS¶
- WEBLATE_REMOVE_ADDONS¶
- WEBLATE_ADD_MACHINERY¶
Добавлено в версии 5.6.1.
- WEBLATE_REMOVE_MACHINERY¶
Добавлено в версии 5.6.1.
Пример:
environment:
WEBLATE_REMOVE_AUTOFIX: weblate.trans.autofixes.whitespace.SameBookendingWhitespace
WEBLATE_ADD_ADDONS: customize.addons.MyAddon,customize.addons.OtherAddon
Параметры контейнера¶
- WEBLATE_WORKERS¶
Добавлено в версии 4.6.1.
Базовое количество рабочих процессов, запущенных в контейнере. Если оно не задано, то определяется автоматически при запуске контейнера на основе количества доступных ядер процессора.
Используется для определения
CELERY_MAIN_OPTIONS,CELERY_NOTIFY_OPTIONS,CELERY_MEMORY_OPTIONS,CELERY_TRANSLATE_OPTIONS,CELERY_BACKUP_OPTIONS,CELERY_BEAT_OPTIONS, иWEB_WORKERS. Вы можете использовать эти настройки для точной регулировки.
- CELERY_MAIN_OPTIONS¶
- CELERY_NOTIFY_OPTIONS¶
- CELERY_MEMORY_OPTIONS¶
- CELERY_TRANSLATE_OPTIONS¶
- CELERY_BACKUP_OPTIONS¶
- CELERY_BEAT_OPTIONS¶
Эти переменные позволяют настроить параметры рабочего Celery. Может быть полезно подправить степень параллелизма (
--concurrency 16) или включить использование другой реализации пула (--pool=gevent).По умолчанию количество одновременно обработчиков основано на
WEBLATE_WORKERS.Пример:
environment: CELERY_MAIN_OPTIONS: --concurrency 16
- CELERY_SINGLE_PROCESS¶
Добавлено в версии 5.7.1: This variable can be set to
1to run only one celery process. This reduces memory usage but may impact Weblate performance.environment: CELERY_SINGLE_PROCESS: 1
- WEB_WORKERS¶
Configure how many WSGI workers should be executed.
It defaults to half of
WEBLATE_WORKERS, but is always at least 2.Пример:
environment: WEB_WORKERS: 4
Изменено в версии 5.13:
WEB_WORKERSconfigures how many worker processes will used by granian.
- WEBLATE_SERVICE¶
Определяет, какие службы должны выполняться внутри контейнера. Используйте это для Масштабирование по горизонтали.
Определены следующие услуги:
celery-beatПланировщик задач Celery, должен быть запущен только в одном экземпляре. Этот контейнер также отвечает за миграцию структуры базы данных и должен быть запущен раньше других.
celery-backupОбработчик Celery для резервного копирования, должен быть запущен только один.
celery-celeryОбщий обработчик Celery.
celery-memoryПамять переводов обработчиков Celery.
celery-notifyОбработчики уведомлений Celery.
celery-translateТип фильтра автоматического перевода обработчика Celery.
webВеб-сервер.
См. также
- WEBLATE_ANUBIS_URL¶
Добавлено в версии 5.11.4.
URL of Anubis server to handle subrequest authentication. This can be useful to filter incoming HTTP requests using proof-of-work to stop AI crawlers. You need to configure Anubis for Subrequest Authentication to make it work.
См. также
Тома контейнеров Docker’а¶
There are two volumes (data and cache) exported by the Weblate
container.
Примечание
The other service containers (such as PostgreSQL or Valkey) have their data volumes as well and are required to maintain Weblate persistence.
The PostgreSQL container stores the database in the
/var/lib/postgresql volume and Valkey in the /data volume.
Valkey container does not save the data by default and needs additional
configuration to enable persistence.
Base your configuration on Weblate-provided examples or consult their documentation for more information.
The data volume is mounted as /app/data and is used to store
Weblate persistent data such as cloned repositories or to customize Weblate
installation. DATA_DIR describes in more detail what is stored here.
The data volume is also place to store Weblate customization such as
Переопределение настроек из тома данных, Замена логотипа и других статических файлов or
Customizing code.
Непосредственное размещение этого тома в хост-системе зависит от настроек самого Docker’а, но обычно он хранится в каталоге /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ (путь состоит из имени вашего каталога docker-compose, имён контейнеров и томов).
Том cache монтируется как /app/cache и используется для хранения статических файлов и CACHE_DIR. Его содержимое воссоздаётся при запуске контейнера, и том можно смонтировать с использованием эфемерной файловой системы, такой как tmpfs.
При создании томов вручную, каталоги должны принадлежать UID 1000, так как именно этот пользователь используется внутри контейнера.
Weblate container can also be executed with a read-only root file system. In
this case, two additional tmpfs volumes should be mounted: /tmp and
/run.
См. также
Корневая файловая система только для чтения¶
Добавлено в версии 4.18.
При запуске контейнера с корневой файловой системой, доступной только для чтения, требуются два дополнительных тома tmpfs — /tmp и /run.
Конфигурация за пределами переменных среды¶
Docker environment variables are intended to expose most configuration settings of relevance for Weblate installations.
If you find a setting that is not exposed as an environment variable, and you believe that it should be, feel free to ask for it to be exposed in a future version of Weblate.
If you need to modify a setting that is not exposed as a Docker environment variable, you can still do so, either from the data volume or extending the Docker image.
См. также
Переопределение настроек из тома данных¶
You can create a file at /app/data/settings-override.py, i.e. at the
root of the data volume, to extend or override settings
defined through environment variables.
Переопределение настроек путём расширения образа Docker¶
Чтобы переопределить настройки на уровне образа Docker, а не на уровне тома данных:
Добавьте в свой пакет модуль, который импортирует все настройки из
weblate.settings_docker.Например, в структуре пакета, определенной в Создание модуля Python, вы можете создать файл
weblate_customization/weblate_customization/settings.pyсо следующим исходным кодом:from weblate.settings_docker import *
Создайте собственный
Dockerfile, который унаследован от официального образа Docker Weblate, а затем установите ваш пакет и укажите переменную среды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
Вместо использования официального образа Docker Weblate создайте собственный образ из этого файла
Dockerfile.Не существует чистого способа сделать это с помощью
docker-compose.override.yml. Вы можете добавитьbuild: .в узелweblateв этом файле, но тогда ваше собственное изображение будет помечено в вашей системе какweblate/weblate, что может быть проблематичным.Итак, вместо использования
docker-compose.ymlпрямо из официального репозитория, без изменений и расширения его черезdocker-compose .override.yml, вы можете сделать копию официального файлаdocker-compose.ymlи отредактировать свою копию, заменивimage: weblate/weblateнаbuild: ..См. «Справочник по сборке файла Compose» для получения подробной информации о создании образов из исходного кода при использовании
docker-compose.Расширьте свой модуль пользовательских настроек, чтобы определить или переопределить настройки.
Вы можете определить параметры до или после приведенного выше оператора импорта, чтобы определить, какие параметры имеют приоритет. Настройки, определенные до оператора импорта, могут быть переопределены переменными среды и переопределениями настроек, определенными в томе данных. Параметр, определенный после оператора импорта, не может быть переопределен.
Вы также можете пойти дальше. Например, вы можете воспроизвести некоторые действия, которые
weblate.docker_settingsделает <https://github.com/WeblateOrg/weblate/blob/main/weblate/settings_docker.py>`__, например, раскрывает настройки в качестве переменных среды или разрешить переопределение настроек из файлов Python в томе данных.
Замена логотипа и других статических файлов¶
Статические файлы, поставляемые с Weblate, можно переопределить, поместив их в каталог /app/data/python/customize/static (смотрите раздел Тома контейнеров Docker’а). Например, создав файл /app/data/python/customize/static/favicon.ico, вы замените им иконку сайта.
Подсказка
При запуске контейнера файлы копируются в соответствующее место, поэтому после изменения содержимого тома Weblate требуется перезапустить.
Этот подход также можно использовать для переопределения шаблонов Weblate. Например, документы Legal module могут быть помещены в /app/data/python/customize/templates/legal/documents.
В качестве альтернативы вы также можете включить свой собственный модуль (смотрите раздел Настройка Weblate) и добавить его в контейнер Docker’а отдельным томом, например:
weblate:
volumes:
- weblate-data:/app/data
- ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
environment:
WEBLATE_ADD_APPS: weblate_customization
Customizing code¶
Примечание
The internal Weblate API may vary significantly between releases and is not meant to be stable. Please review your custom code interacting with Weblate internals on each upgrade.
You can place additional Python code into /app/data/python/customize
(see Тома контейнеров Docker’а). It is already installed as a Django application
inside Weblate (this is used for customizing templates and static files as
described above).
This can be used to place any code (for example Написание собственных проверок) or to add custom maintenance tasks to the Celery task scheduler.
/app/data/python/customize/tasks.py.¶"""Custom scheduled task."""
import subprocess
from celery.schedules import crontab
from weblate.utils.celery import app
@app.task
def custom_task() -> None:
"""Execute custom task code."""
subprocess.run(["sleep", "1"], check=True)
@app.on_after_finalize.connect
def setup_periodic_tasks(sender, **kwargs) -> None:
"""Configure when periodic task is triggered."""
sender.add_periodic_task(
crontab(hour=1, minute=0), custom_task.s(), name="custom-task"
)
Integrating third-party containers¶
The Weblate Docker setup can be extended with additional containers to provide complementary services such as machine translation, spell checking, or other tools that enhance the translation workflow. These services can be integrated into your Docker Compose configuration and work alongside Weblate.
When adding third-party containers, consider the following:
Network connectivity: Ensure containers can communicate with each other by placing them on the same Docker network
Data persistence: Use volumes for services that need to persist data
Security: Configure appropriate access controls and avoid exposing unnecessary ports
LibreTranslate Docker container integration¶
LibreTranslate is a free and open-source machine translation service that can be self-hosted. Integrating it with Weblate provides offline machine translation capabilities without relying on external services.
You can incorporate the LibreTranslate service into your Weblate deployment by including it in a docker-compose.override.yml file. Since it runs within the Docker network, it’s only accessible to Weblate and not exposed to the public internet.
Basic setup using 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:
For GPU-accelerated translation (if you have NVIDIA GPU available):
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:
After starting the services with docker compose down && docker compose up -d,
configure LibreTranslate in Weblate:
Access the Weblate admin interface
Navigate to Machine translation → Automatic suggestions
Add a new LibreTranslate service with:
- Сервис:
LibreTranslate
- URL-адрес API:
http://libretranslate:5000- API-ключ:
Leave empty
LibreTranslate is now configured and available for machine translation in Weblate.
Примечание
The LibreTranslate service runs without the web UI (
--disable-web-ui) and is only accessible via the API within the Docker network.Models are automatically updated when the container starts. (
LT_UPDATE_MODELS: true)Data is persisted using Docker volumes for optimal performance and data safety.
Health checks ensure that the Docker engine properly observes the state of the service.
For GPU acceleration, use the CUDA image variant and ensure your system has NVIDIA Docker support. This container runs as a privileged user to be able to use the GPU.
No external ports are exposed, making the setup secure by default.
Anubis Docker container integration¶
Anubis is a web AI firewall utility to block AI scrapers and other disruptive traffic on the server. It is typically needed for publicly open Weblate installations to avoid excessive load caused by scraping.
Anubis can be deployed using 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:
Примечание
The anubis-data volume in the above configuration is expected to contain
botPolicies.yaml with a bot policy configured to your needs.
At minimum, you need to adjust status codes as described in https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth.
It is also recommended to configure persistent storage backend as described in https://anubis.techaro.lol/docs/admin/policies/#storage-backends.
You can then turn on the Anubis usage in Weblate using:
environment:
WEBLATE_ANUBIS_URL: http://anubis:8923
См. также
Настройка сервера PostgreSQL¶
Контейнер PostgreSQL использует конфигурацию PostgreSQL по умолчанию, которая неэффективно использует ядра процессора или память. Рекомендуется настроить конфигурацию для повышения производительности.
Конфигурацию можно изменить, как описано в разделе Конфигурация базы данных по адресу https://hub.docker.com/_/postgres. Конфигурацию, соответствующую вашей среде, можно сгенерировать с помощью https://pgtune.leopard.in.ua/.
Внутренние свойства контейнера¶
Контейнер использует supervisor для запуска отдельных сервисов. В случае Масштабирование по горизонтали он запускает только один сервис в контейнере.
Для проверки состояния услуг используйте:
docker compose exec --user weblate weblate supervisorctl status
Для каждой очереди Celery существуют отдельные службы (подробности см. в разделе Фоновые задачи с использованием Celery). Вы можете остановить обработку некоторых задач, остановив соответствующего исполнителя:
docker compose exec --user weblate weblate supervisorctl stop celery-translate