Установка с помощью Docker’а
С помощью докеризированного развертывания Weblate вы можете обзавестись своим личный экземпляр Weblate за считаные секунды. Все зависимости Weblate уже включены в образ. В качестве базы данных по умолчанию настроена PostgreSQL.
Требования к оборудованию
Weblate должен без проблем работать на любом современном оборудовании, ниже приведена минимальная конфигурация, необходимая для запуска Weblate на одном сервере (сам Weblate, база данных и веб-сервер):
2 ГБ оперативной памяти
2-х ядерный процессор
1 ГБ дискового пространства
Чем больше памяти, тем лучше — она используется для кэширования на всех уровнях (на уровне файловой системы, уровне базы данных и уровне Weblate).
Множество одновременно работающих пользователей увеличивают количество необходимых ядер процессора. Для сотен компонентов перевода рекомендуется не менее 4 Гб оперативной памяти.
Типовое использование дискового пространства базой данной находится в районе 300MB на 1 миллион хранимых слов. Пространство необходимое для клонирования репозиториев разнится, хотя Weblate и пытается поддерживать их размер минимальным, делая поверхностные (shallow) копии.
Примечание
Фактические требования к вашей установке Weblate сильно зависят от размера управляемых ею переводов.
Установка
В следующих примерах предполагается, что у вас есть рабочее окружение Docker’а, в котором установлен docker-compose
. Для получения конкретных инструкций ознакомьтесь с документацией к Docker’у.
Склонируйте репозиторий weblate-docker:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
Создайте файл
docker-compose.override.yml
со своими настройками. Полный список переменных окружения приведен в разделе Переменные окружения Docker’а.version: '3' services: weblate: ports: - 80:8080 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
Примечание
Если переменная
WEBLATE_ADMIN_PASSWORD
не установлена, то пользователь-администратор создаётся со случайным паролем, отображаемым при первом запуске.Приведённый пример настраивает Weblate на прослушку порта 80, чтобы его изменить, отредактируйте отображение портов в файле
docker-compose.override.yml
.Запустите контейнеры Weblate:
docker-compose up
Наслаждайтесь своим развернутым Weblate’ом, он доступен на порту 80 контейнера weblate
.
Изменено в версии 2.15-2: Недавно настройка изменилась, ранее существовал отдельный контейнер веб-сервера, но с версии 2.15-2 веб-сервер встроен в контейнер Weblate.
Изменено в версии 3.7.1-6: С июля 2019 года (начиная с метки 3.7.1-6) контейнеры больше не запускают своё содержимое под пользователем root. Это изменение привело к изменению открытого порта с 80 на 8080.
См.также
Выбор метки для Docker hub
Вы можете использовать следующие метки на Docker hub, полный список доступных меток см. на https://hub.docker.com/r/weblate/weblate/tags/.
Имя метки |
Описание |
Пример использования |
---|---|---|
|
Стабильный выпуск Weblate, соответствует последнему выпуску с метками |
Выполнение обновлений в рабочей среде |
|
Стабильный выпуск Weblate |
Хорошо поставленное развёртывание в рабочей среде |
|
Стабильный выпуск Weblate с изменениями в разработке в Docker-контейнере (например, обновленные зависимости) |
Запуск обновлений в среде постановки |
|
Стабильный выпуск Weblate с изменениями в разработке в Docker-контейнере (например, обновленные зависимости) |
Чётко определённое развертывание в среде постановки |
|
Версия разработчика Weblate из Git |
Запуск обновлений для тестирования предстоящих функций Weblate |
|
Версия разработчика Weblate из Git |
Хорошо определённое развёртывание для тестирования предстоящих функций Weblate |
Каждое изображение тестируется нашей непрерывной интеграцией перед публикацией, поэтому даже bleeding (кровоточащая) версия должна быть вполне безопасной для использования.
Контейнер Docker с поддержкой HTTPS
Общие инструкции по развертыванию, пожалуйста, смотрите в разделе Установка, в этом разделе упоминаются только отличия от той инструкции.
Использование собственных SSL-сертификатов
Добавлено в версии 3.8-3.
Если вы хотите использовать свой собственный 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;
listen [::]:443;
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 довольно болезненно и в большинстве случаев не приносит особых преимуществ.
Вы можете сделать это, оставаясь с существующим 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 должна быть перенесена автоматически, надобности в дополнительных ручных действиях не возникнет.
Примечание
Обновления через версию 3.0 Weblate не поддерживает. Если вы используете версию 2.x и хотите обновиться до версии 3.x, сначала выполните обновление до последней версии 3.0.1-x (на момент написания этого документа это образ 3.0.1-7
), которая выполнит миграцию, а затем продолжите обновление до более новых версий.
Также вы можете захотеть обновить репозиторий docker-compose
, хотя в большинстве случаев необходимости в этом нет. Пожалуйста, остерегайтесь в этом случае изменений версии PostgreSQL, поскольку обновление базы данных является не простым делом, более подробную информацию смотрите в этом замечании на GitHub’е.
Вход от имени администратора
После настройки контейнера вы можете войти в систему под пользователем admin с паролем, указанным в переменной окружения WEBLATE_ADMIN_PASSWORD
, или случайным паролем, сгенерированным при первом запуске, если он не был установлен явно.
Для сброса пароля пользователя admin перезапустите контейнер с переменной WEBLATE_ADMIN_PASSWORD
, установленной в новое значение пароля.
Количество процессов и потребление памяти
Количество рабочих процессов для uWSGI и Celery определяется автоматически на основе количества ЦП. Это хорошо подходит для большинства облачных виртуальных машин, так как они обычно имеют мало процессоров и хороший объём памяти.
Если на вашей машине много процессорных ядер и возникают проблемы, вызванные нехваткой памяти, то попробуйте уменьшить количество рабочих процессов:
environment:
WEBLATE_WORKERS: 2
Вы также можете точно настроить отдельные категории процессов:
environment:
UWSGI_WORKERS: 4
CELERY_MAIN_OPTIONS: --concurrency 2
CELERY_NOTIFY_OPTIONS: --concurrency 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1
Масштабирование горизонтально
Добавлено в версии 4.6.
Предупреждение
Эта функция является предварительным просмотром технологии.
Вы можете запустить несколько Weblate-контейнеров для горизонтального масштабирования сервиса. Том /app/data
должен быть общим для всех контейнеров, для этого рекомендуется использовать кластерную файловую систему, например GlusterFS. Том /app/cache
должен быть отдельным для каждого контейнера.
Каждый контейнер Weblate имеет определенную роль с помощью переменной окружения WEBLATE_SERVICE
. Пожалуйста, внимательно изучите документацию, так как некоторые сервисы должны быть запущены только один раз в кластере, и порядок следования сервисов также имеет значение.
Пример установки вы можете найти в репозитории docker-compose
в виде docker-compose-split.yml.
Переменные окружения Docker’а
Многие параметры конфигурации Weblate в контейнере Docker могут быть установлены через переменные окружения:
Общие параметры
- WEBLATE_DEBUG
Настраивает отладочный режим Django, используя ее переменную
DEBUG
.Пример:
environment: WEBLATE_DEBUG: 1
См.также
- WEBLATE_LOGLEVEL
Настраивает подробность ведения журнала.
- WEBLATE_SITE_TITLE
Изменяет название сайта, показываемое в заголовке всех страниц.
- WEBLATE_SITE_DOMAIN
Настраивает домен сайта. Этот параметр является обязательным.
- 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_PASSWORD_FILE
Устанавливает путь к файлу с паролем для пользователя admin.
См.также
- WEBLATE_SERVER_EMAIL
- WEBLATE_DEFAULT_FROM_EMAIL
Настраивает адрес для исходящих сообщений электронной почты.
См.также
- 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_ALLOW_BACKENDS
Настраивает через параметр
REGISTRATION_ALLOW_BACKENDS
методы аутентификации, которые можно использовать для создания новой учетной записи.Пример:
environment: WEBLATE_REGISTRATION_OPEN: 0 WEBLATE_REGISTRATION_ALLOW_BACKENDS: azuread-oauth2,azuread-tenant-oauth2
- 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-заголовков следующим образом:
переводит все символы в верхний регистр
все дефисы заменяет на подчеркивания
добавляет префикс `` HTTP_``
Таким образом, заголовок
X-Forwarded-For` отображается на ``HTTP_X_FORWARDED_FOR
.Пример:
environment: WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
- 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_LOGIN_REQUIRED_URLS_EXCEPTIONS
- WEBLATE_ADD_LOGIN_REQUIRED_URLS_EXCEPTIONS
- WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS
Добавляет исключения из URL-адресов (для которых требование аутентификации установлено глобально для всего Weblate) с помощью параметра
LOGIN_REQUIRED_URLS_EXCEPTIONS
.Вы можете либо заменить все настройки целиком, либо изменить значение по умолчанию с помощью переменных
ADD
иREMOVE
.
- WEBLATE_GOOGLE_ANALYTICS_ID
Настраивает идентификатор для Google Analytics, изменяя параметр
GOOGLE_ANALYTICS_ID
.
- WEBLATE_GITHUB_USERNAME
Настраивает имя пользователя GitHub для GitHub’овских запросов на извлечение, изменяя параметр
GITHUB_USERNAME
.См.также
- WEBLATE_GITHUB_TOKEN
Добавлено в версии 4.3.
Настраивает GitHub’овский токен персонального доступа для GitHub’овских запросов на извлечение через API, изменяя параметр
GITHUB_TOKEN
.См.также
- WEBLATE_GITLAB_USERNAME
Настраивает имя пользователя GitLab для GitLab’овских запросов на слияние, изменяя параметр
GITLAB_USERNAME
См.также
- WEBLATE_GITLAB_TOKEN
Настраивает GitLab’овский токен персонального доступа для GitLab’овских запросов на слияние через API, изменяя параметр
GITLAB_TOKEN
См.также
- WEBLATE_PAGURE_USERNAME
Настраивает имя пользователя Pagure для Pagure’вских запросов на слияние, изменяя параметр
PAGURE_USERNAME
См.также
- WEBLATE_PAGURE_TOKEN
Настраивает Pagure’вский токен персонального доступа для Pagure’вских запросов на слияние через API, изменяя параметр
Pagure_TOKEN
См.также
- WEBLATE_SIMPLIFY_LANGUAGES
Настраивает политику упрощения языка, смотрите описание параметра
SIMPLIFY_LANGUAGES
.
- 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_AKISMET_API_KEY
Настраивает API-ключ Akismet, смотрите описание параметра
AKISMET_API_KEY
.
- 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
Позволяет настраивать HTTP-заголовок политики безопасности содержимого
Content-Security-Policy
.
- WEBLATE_LICENSE_FILTER
Настраивает параметр
LICENSE_FILTER
.
- WEBLATE_LICENSE_REQUIRED
Настройка
LICENSE_FILTER
- WEBLATE_WEBSITE_REQUIRED
Настройка
DEFAULT_AUTO_WATCH
- 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_ENABLE_AVATARS
Добавлено в версии 4.6.1.
Настраивает параметр
ENABLE_AVATARS
.
- 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
.
Параметры машинного перевода
Подсказка
Настройка ключа API для сервиса автоматически настраивает его в MT_SERVICES
.
- WEBLATE_MT_APERTIUM_APY
Включает машинный перевод от Apertium и устанавливает параметр
MT_APERTIUM_APY
- WEBLATE_MT_AWS_REGION
- WEBLATE_MT_AWS_ACCESS_KEY_ID
- WEBLATE_MT_AWS_SECRET_ACCESS_KEY
Настраивает машинный перевод от AWS.
environment: WEBLATE_MT_AWS_REGION: us-east-1 WEBLATE_MT_AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE WEBLATE_MT_AWS_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
- WEBLATE_MT_DEEPL_KEY
Включает машинный перевод от DeepL и устанавливает параметр
MT_DEEPL_KEY
- WEBLATE_MT_DEEPL_API_URL
Настраивает используемую версию API DeepL, смотрите описание параметра
MT_DEEPL_API_URL
.
- WEBLATE_MT_LIBRETRANSLATE_KEY
Включает машинный перевод LibreTranslate и устанавливает
MT_LIBRETRANSLATE_KEY
- WEBLATE_MT_LIBRETRANSLATE_API_URL
Настраивает экземпляр API LibreTranslate для использования, см.
MT_LIBRETRANSLATE_API_URL
.
- WEBLATE_MT_GOOGLE_KEY
Включает машинный перевод от Google Переводчик и устанавливает параметр
MT_GOOGLE_KEY
- WEBLATE_MT_GOOGLE_CREDENTIALS
Включает машинный перевод от Google Translate API V3 (расширенный) и устанавливает параметр
MT_GOOGLE_CREDENTIALS
- WEBLATE_MT_GOOGLE_PROJECT
Включает машинный перевод от Google Translate API V3 (расширенный) и устанавливает параметр
MT_GOOGLE_PROJECT
- WEBLATE_MT_GOOGLE_LOCATION
Включает машинный перевод от Google Translate API V3 (расширенный) и устанавливает параметр
MT_GOOGLE_LOCATION
- WEBLATE_MT_MICROSOFT_COGNITIVE_KEY
Включает машинный перевод от Переводчика Microsoft Cognitive Services и устанавливает параметр
MT_MICROSOFT_COGNITIVE_KEY
- WEBLATE_MT_MICROSOFT_ENDPOINT_URL
Устанавливает параметр
MT_MICROSOFT_ENDPOINT_URL
, обратите внимание, что он должен содержать только доменное имя.
- WEBLATE_MT_MICROSOFT_REGION
Устанавливает параметр
MT_MICROSOFT_REGION
- WEBLATE_MT_MICROSOFT_BASE_URL
Устанавливает параметр
MT_MICROSOFT_BASE_URL
- WEBLATE_MT_MODERNMT_KEY
Включает машинный перевод от ModernMT и устанавливает параметр
MT_MODERNMT_KEY
.
- WEBLATE_MT_MYMEMORY_ENABLED
Включает машинный перевод от MyMemory и устанавливает параметр
MT_MYMEMORY_EMAIL
в значение переменной окруженияWEBLATE_ADMIN_EMAIL
.Пример:
environment: WEBLATE_MT_MYMEMORY_ENABLED: 1
- WEBLATE_MT_GLOSBE_ENABLED
Включает машинный перевод от Glosbe.
environment: WEBLATE_MT_GLOSBE_ENABLED: 1
- WEBLATE_MT_MICROSOFT_TERMINOLOGY_ENABLED
Включает машинный перевод от терминологической службы Майкрософт.
environment: WEBLATE_MT_MICROSOFT_TERMINOLOGY_ENABLED: 1
- WEBLATE_MT_SAP_BASE_URL
- WEBLATE_MT_SAP_SANDBOX_APIKEY
- WEBLATE_MT_SAP_USERNAME
- WEBLATE_MT_SAP_PASSWORD
- WEBLATE_MT_SAP_USE_MT
Настраивает машинный перевод от SAP Translation Hub.
environment: WEBLATE_MT_SAP_BASE_URL: "https://example.hana.ondemand.com/translationhub/api/v1/" WEBLATE_MT_SAP_USERNAME: "user" WEBLATE_MT_SAP_PASSWORD: "password" WEBLATE_MT_SAP_USE_MT: 1
Параметры аутентификации
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
Включает аутентификацию через GitHub.
Bitbucket
- WEBLATE_SOCIAL_AUTH_BITBUCKET_KEY
- WEBLATE_SOCIAL_AUTH_BITBUCKET_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.
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
Включает аутентификацию через Keycloak, смотрите документацию.
Поставщики Linux
Вы можете включить аутентификацию с помощью сервисов аутентификации поставщиков Linux, установив следующие переменные в любое значение.
- WEBLATE_SOCIAL_AUTH_FEDORA
- WEBLATE_SOCIAL_AUTH_OPENSUSE
- WEBLATE_SOCIAL_AUTH_UBUNTU
Slack
- WEBLATE_SOCIAL_AUTH_SLACK_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
Настройки провайдера идентификационных данных SAML, смотрите раздел Аутентификация через SAML.
Другие параметры аутентификации
- WEBLATE_NO_EMAIL_AUTH
При установке в любое значение отключает аутентификацию через электронную почту.
Настройки базы данных PostgreSQL
База данных создается в файле docker-compose.yml
, поэтому эти настройки влияют как на контейнер Weblate, так и на контейнер PostgreSQL.
См.также
- POSTGRES_PASSWORD
Пароль PostgreSQL.
- POSTGRES_PASSWORD_FILE
Путь к файлу, содержащему пароль PostgreSQL. Используйте в качестве альтернативы POSTGRES_PASSWORD.
- POSTGRES_USER
Имя пользователя PostgreSQL.
- POSTGRES_DATABASE
Имя базы данных PostgreSQL.
- POSTGRES_HOST
Имя хоста или IP-адрес сервера PostgreSQL. По умолчанию равен
database
.
- POSTGRES_PORT
Порт сервера PostgreSQL. По умолчанию не установлен (используется значение по умолчанию).
- POSTGRES_SSL_MODE
Настраивает обработку SSL сервером PostgreSQL при соединении с сервером, возможные варианты настройки смотрите документе Описания режимов SSL
- POSTGRES_ALTER_ROLE
Устанавливает имя роли, которую Weblate будет настраивать во время миграции, смотреть раздел Настройка Weblate для использования PostgreSQL.
- POSTGRES_CONN_MAX_AGE
Добавлено в версии 4.8.1.
Время соединения с базой данных, как целое число секунд. Используйте 0, чтобы закрывать соединения с базой данных в конце каждого запроса (это поведение по умолчанию).
Включение сохранения соединений, как правило, приводит к увеличению числа открытых соединений с базой данных. Пожалуйста, настройте конфигурацию базы данных перед включением.
Пример настроек:
environment: POSTGRES_CONN_MAX_AGE: 3600
См.также
- POSTGRES_DISABLE_SERVER_SIDE_CURSORS
Добавлено в версии 4.9.1.
Отключите курсоры на стороне сервера в базе данных. Это необходимо в некоторых настройках pgbouncer.
Пример настроек:
environment: POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
Параметры резервного копирования базы данных
- WEBLATE_DATABASE_BACKUP
Настраивает ежедневный дамп базы данных с помощью параметра
DATABASE_BACKUP
. По умолчанию установлен вplain
.
Настройка сервера кэширования
Weblate настоятельно рекомендует использовать Redis и при запуске Weblate’а в Docker’е вы должны предоставить экземпляр Redis’а.
См.также
- REDIS_HOST
Имя хоста или IP-адрес сервера Redis. По умолчанию установлен в
cache
.
- REDIS_PORT
Порт сервера Redis. По умолчанию установлен в
6379
.
- REDIS_DB
Номер базы данных Redis, по умолчанию установлен в
1
.
- REDIS_PASSWORD
Пароль сервера Redis, по умолчанию не используется.
- REDIS_TLS
Включает использование SSL для соединения с Redis.
- REDIS_VERIFY_SSL
Может использоваться для отключения проверки SSL-сертификата для соединениий с Redis.
Настройка почтового сервера
Чтобы работала отправка писем электронной почты, необходимо предоставить почтовый сервер.
Пример конфигурации 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_HOST_PASSWORD_FILE
Пароль для аутентификации по электронной почте.
См.также
- WEBLATE_EMAIL_USE_SSL
Использовать ли неявное TLS (безопасное) соединение при общении с сервером SMTP. В большей части документации по электронной почте этот тип TLS-соединения называется SSL. Он обычно используется на 465-м порту. Если у вас возникли проблемы, попробуйте включить явный TLS параметром
WEBLATE_EMAIL_USE_TLS
.См.также
- WEBLATE_EMAIL_USE_TLS
Использовать ли TLS (безопасное) соединение при общении с сервером SMTP. Он используется для явных TLS-соединений, обычно на портах 587 или 25. Если ваши соединения зависают, попробуйте включить неявный TLS параметром
WEBLATE_EMAIL_USE_SSL
.См.также
- 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
Ваш DSN Sentry.
- SENTRY_ENVIRONMENT
Ваше окружение Sentry (необязательная).
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, отвечаете вы, эта переменная только указывает местоположение, куда их надо сохранять.
Изменение включённых приложений, проверок, надстроек или автоматических исправлений
Добавлено в версии 3.8-5.
Встроенную конфигурация включённых проверок, надстроек или автоматических исправлений можно изменить с помощью следующих переменных:
- WEBLATE_ADD_APPS
- WEBLATE_REMOVE_APPS
- WEBLATE_ADD_CHECK
- WEBLATE_REMOVE_CHECK
- WEBLATE_ADD_AUTOFIX
- WEBLATE_REMOVE_AUTOFIX
- WEBLATE_ADD_ADDONS
- WEBLATE_REMOVE_ADDONS
Пример:
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
, иUWSGI_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
- UWSGI_WORKERS
Настраивает количество выполняемых рабочих процессов uWSGI.
По умолчанию это означает
WEBLATE_WORKERS
.Пример:
environment: UWSGI_WORKERS: 32
- WEBLATE_SERVICE
Определяет, какие службы должны выполняться внутри контейнера. Используйте это для Масштабирование горизонтально.
Определены следующие услуги:
celery-beat
Планировщик задач Celery, должен быть запущен только в одном экземпляре. Этот контейнер также отвечает за миграцию структуры базы данных и должен быть запущен раньше других.
celery-backup
Обработчик Celery для резервного копирования, должен быть запущен только один.
celery-celery
Общий обработчик Celery.
celery-memory
Память переводов обработчиков Celery.
celery-notify
Обработчики уведомлений Celery.
celery-translate
Тип фильтра автоматического перевода обработчика Celery.
web
Веб-сервер.
Тома контейнеров Docker’а
Контейнер Weblate экспортирует только два тома (данные и кэш). Контейнеры других сервисов (PostgreSQL или Redis) имеют свои собственные тома данных, которые в настоящем документе не рассматриваются.
Том данных используется для хранения таких постоянных данных Weblate, как склонированные репозитории, или для настройки установки Weblate.
Непосредственное размещение этого тома в хост-системе зависит от настроек самого Docker’а, но обычно он хранится в каталоге /var/lib/docker/volumes/weblate-docker_weblate-data/_data/
(путь состоит из имени вашего каталога docker-compose, имён контейнеров и томов). В контейнере он монтируется под именем /app/data
.
Том кэша монтируется как /app/cache
и используется для хранения статических файлов. Его содержимое воссоздаётся при запуске контейнера, и том может быть смонтирован с использованием эфемерной файловой системы, такой как tmpfs.
При создании томов вручную, каталоги должны принадлежать UID 1000, так как именно этот пользователь используется внутри контейнера.
См.также
Дальнейшая настройка
Вы можете и дальше настраивать установку Weblate в томе данных, смотрите раздел Тома контейнеров Docker’а.
Пользовательские файлы конфигурации
В дополнение ко всему вы можете переопределить параметры в файле /app/data/settings-override.py
(смотреть раздел Тома контейнеров Docker’а). Этот файл выполняется в самом конце встроенных настроек, после загрузки всех настроек из переменных окружения, так что вы можете подстроить или переопределить их.
Замена логотипа и других статических файлов
Добавлено в версии 3.8-5.
Статические файлы, поставляемые с Weblate, можно переопределить, поместив их в каталог /app/data/python/customize/static
(смотрите раздел Тома контейнеров Docker’а). Например, создав файл /app/data/python/customize/static/favicon.ico
, вы замените им иконку сайта.
Подсказка
При запуске контейнера файлы копируются в соответствующее место, поэтому после изменения содержимого тома Weblate требуется перезапустить.
В качестве альтернативы вы также можете включить свой собственный модуль (смотрите раздел Настройка Weblate) и добавить его в контейнер Docker’а отдельным томом, например:
weblate:
volumes:
- weblate-data:/app/data
- ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
environment:
WEBLATE_ADD_APPS: weblate_customization
Добавление собственных модулей Python
Добавлено в версии 3.8-5.
Собственные модули Python вы можете разместить в каталоге /app/data/python/
(смотрите раздел Тома контейнеров Docker’а) — в дальнейшем они могут быть загружены в Weblate, скорее всего, через пользовательские файлы настроек.
См.также