Установка с помощью 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 с поддержкой 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 и просто извлекая последние образы с последующим перезапуском контейнера:
docker-compose stop
docker-compose pull
docker-compose up
При первом запуске база данных 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
, установленной в новое значение пароля.
Number of processes and memory consumption¶
The number of worker processes for both uWSGI and Celery is determined automatically based on number of CPUs. This works well for most cloud virtual machines as these typically have few CPUs and good amount of memory.
Если на вашей машине много процессорных ядер и возникают проблемы, вызванные нехваткой памяти, то попробуйте уменьшить количество рабочих процессов:
environment:
UWSGI_WORKERS: 4
CELERY_MAIN_OPTIONS: --concurrency 2
CELERY_NOTIFY_OPTIONS: --concurrency 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1
Scaling horizontally¶
Добавлено в версии 4.6.
Предупреждение
This feature is a technology preview.
You can run multiple Weblate containers to scale the service horizontally. The
/app/data
volume has to be shared by all containers, it is recommended
to use cluster filesystem such as GlusterFS for this. The /app/cache
volume should be separate for each container.
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 ordering of the
services matters as well.
You can find example setup in the docker-compose
repo as
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_SERVER_EMAIL
¶
-
WEBLATE_DEFAULT_FROM_EMAIL
¶ Настраивает адрес для исходящих сообщений электронной почты.
См.также
-
WEBLATE_CONTACT_FORM
¶ Configures contact form behavior, see
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
¶ Configures
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.
Configures rate limiter.
Подсказка
You can set configuration for any rate limiter scopes. To do that add
WEBLATE_
prefix to any of setting described in Ограничение частоты запросов.
Параметры машинного перевода¶
-
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_VERSION
¶ Настраивает используемую версию API DeepL, смотрите описание параметра
MT_DEEPL_API_VERSION
.
-
WEBLATE_MT_GOOGLE_KEY
¶ Включает машинный перевод от Google Translate и устанавливает параметр
MT_GOOGLE_KEY
-
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
¶
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.
Настройки базы данных PostgreSQL¶
База данных создается в файле docker-compose.yml
, поэтому эти настройки влияют как на контейнер Weblate, так и на контейнер PostgreSQL.
См.также
-
POSTGRES_PASSWORD
¶ Пароль PostgreSQL.
-
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.
Параметры резервного копирования базы данных¶
-
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_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, используемый для отправки сообщений электронной почты.
Site integration¶
-
WEBLATE_GET_HELP_URL
¶ Configures
GET_HELP_URL
.
-
WEBLATE_STATUS_URL
¶ Configures
STATUS_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
См.также
Параметры контейнера¶
-
CELERY_MAIN_OPTIONS
¶
-
CELERY_NOTIFY_OPTIONS
¶
-
CELERY_MEMORY_OPTIONS
¶
-
CELERY_TRANSLATE_OPTIONS
¶
-
CELERY_BACKUP_OPTIONS
¶
-
CELERY_BEAT_OPTIONS
¶ Эти переменные позволяют настроить параметры рабочего Celery. Может быть полезно подправить степень параллелизма (
--concurrency 16
) или включить использование другой реализации пула (--pool=gevent
).По умолчанию количество параллельных рабочих соответствует количеству процессоров (за исключением рабочего создания резервных копий, который должен быть запущен в единственном экземпляре).
Пример:
environment: CELERY_MAIN_OPTIONS: --concurrency 16
-
UWSGI_WORKERS
¶ Настраивает количество выполняемых рабочих процессов uWSGI.
По умолчанию установлена в количество процессоров + 1.
Пример:
environment: UWSGI_WORKERS: 32
-
WEBLATE_SERVICE
¶ Defines which services should be executed inside the container. Use this for Scaling horizontally.
Following services are defined:
celery-beat
Celery task scheduler, only one instance should be running. This container is also responsible for the database structure migrations and it should be started prior others.
celery-backup
Celery worker for backups, only one instance should be running.
celery-celery
Generic Celery worker.
celery-memory
Translation memory Celery worker.
celery-notify
Notifications Celery worker.
celery-translate
Automatic translation Celery worker.
web
Web server.
Тома контейнеров Docker’а¶
There are two volumes (data and cache) exported by the Weblate container. The other service containers (PostgreSQL or Redis) have their data volumes as well, but those are not covered by this document.
Том данных используется для хранения таких постоянных данных Weblate, как склонированные репозитории, или для настройки установки Weblate.
Непосредственное размещение этого тома в хост-системе зависит от настроек самого Docker’а, но обычно он хранится в каталоге /var/lib/docker/volumes/weblate-docker_weblate-data/_data/
. В контейнере он монтируется под именем /app/data
.
The cache volume is mounted as /app/cache
and is used to store static
files. Its content is recreated on container startup and the volume can be
mounted using ephemeral filesystem such as tmpfs.
См.также
Дальнейшая настройка¶
Вы можете и дальше настраивать установку 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, скорее всего, через пользовательские файлы настроек.
См.также
Выбор вашей машины — локальные или облачные провайдеры¶
С помощью Docker Machine вы можете развернуть Weblate как на локальной машине, так и на любом большом количестве облачных развёртываний, например на Amazon AWS, Greenhost и на многих других провайдерах.