Установка с помощью 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 довольно болезненно и в большинстве случаев не приносит особых преимуществ.
Изменено в версии 4.10-1: С момента выпуска Weblate 4.10-1 контейнер Docker использует Django 4.0. Это требует установки PostgreSQL 10 или более новой версии. Пожалуйста, обновите его перед обновлением Weblate. Подробное описание в ref: upgrade-4.10 и Обновление контейнера 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 --username weblate > backup.sql
Остановка контейнера базы данных:
docker-compose stop database
Удаление тома PostgreSQL:
docker-compose rm -v database docker volume remove weblate_postgres-data
Подправьте файл
docker-compose.yml
, чтобы использовать новую версию PostgreSQL.Запустить контейнер базы данных:
docker-compose up -d database
Восстановите данные из резервной копии:
cat backup.sql | docker-compose exec -T database psql --username weblate --dbname postgres
Запустить все оставшиеся контейнеры:
docker-compose up -d
Вход от имени администратора
После настройки контейнера вы можете войти в систему под пользователем admin с паролем, указанным в переменной окружения WEBLATE_ADMIN_PASSWORD
, или случайным паролем, сгенерированным при первом запуске, если он не был установлен явно.
Для сброса пароля пользователя admin перезапустите контейнер с переменной WEBLATE_ADMIN_PASSWORD
, установленной в новое значение пароля.
Количество процессов и потребление памяти
Количество рабочих процессов для uWSGI и Celery определяется автоматически на основе количества ЦП. Это хорошо подходит для большинства облачных виртуальных машин, так как они обычно имеют мало процессоров и хороший объём памяти.
Если на вашей машине много процессорных ядер и возникают проблемы, вызванные нехваткой памяти, то попробуйте уменьшить количество рабочих процессов:
environment:
WEBLATE_WORKERS: 2
Вы также можете точно настроить отдельные категории процессов:
environment:
WEB_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_LOGLEVEL_DATABASE
Настраивает подробность ведения журнала запросов к базе данных.
- 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_INTERLEDGER_PAYMENT_POINTERS
Добавлено в версии 4.12.1.
Lets Weblate set the meta[name=monetization] field in the head of the document. If multiple are specified, chooses one randomly.
См.также
- 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
- WEBLATE_GITHUB_TOKEN
- WEBLATE_GITHUB_HOST
Configures GitHub pull-requests integration by changing
GITHUB_CREDENTIALS
(ifWEBLATE_GITHUB_HOST
is set), orGITHUB_USERNAME
andGITHUB_TOKEN
.См.также
- WEBLATE_GITLAB_USERNAME
- WEBLATE_GITLAB_TOKEN
- WEBLATE_GITLAB_HOST
Configures GitLab merge-requests integration by changing
GITLAB_CREDENTIALS
(ifWEBLATE_GITLAB_HOST
is set), orGITLAB_USERNAME
andGITLAB_TOKEN
.См.также
- WEBLATE_GITEA_USERNAME
- WEBLATE_GITEA_TOKEN
- WEBLATE_GITEA_HOST
Configures Gitea pull-requests integration by changing
GITEA_CREDENTIALS
(ifWEBLATE_GITEA_HOST
is set), orGITEA_USERNAME
andGITEA_TOKEN
.См.также
- WEBLATE_PAGURE_USERNAME
- WEBLATE_PAGURE_TOKEN
- WEBLATE_PAGURE_HOST
Configures Pagure merge-requests integration by changing
PAGURE_CREDENTIALS
(ifWEBLATE_PAGURE_HOST
is set), orPAGURE_USERNAME
andPAGURE_TOKEN
.См.также
- WEBLATE_DEFAULT_PULL_MESSAGE
Настройте заголовок и сообщение по умолчанию для запросов на извлечение через API, изменяя
DEFAULT_PULL_MESSAGE
См.также
- 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_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_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
.
- WEBLATE_ENABLE_SHARING
Добавлено в версии 4.14.1.
Configures
ENABLE_SHARING
.
Настройки автоматических предложений
Изменено в версии 4.13: Службы автоматических предложений сейчас настраиваются в пользовательском интерфейсе, см. Настройка автоматических предложений.
The existing environment variables are imported during the migration to Weblate 4.13, but changing them will not have any further effect.
Параметры аутентификации
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_BIND_PASSWORD_FILE
Путь к файлу, содержащему пароль привязки к серверу LDAP.
См.также
- 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.
Bitbucket
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET
- 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
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_TITLE
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_IMAGE
Включает аутентификацию через Keycloak, смотрите документацию.
Поставщики Linux
Вы можете включить аутентификацию с помощью сервисов аутентификации поставщиков Linux, установив следующие переменные в любое значение.
- WEBLATE_SOCIAL_AUTH_FEDORA
- WEBLATE_SOCIAL_AUTH_OPENSUSE
- 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
Настраивает типовую интеграцию OpenID Connect.
См.также
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_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_PASSWORD_FILE
Путь к файлу, содержащему пароль сервера 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
.Изменено в версии 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
Ваш 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
, и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
- WEB_WORKERS
Настраивает количество выполняемых рабочих процессов uWSGI.
По умолчанию это означает
WEBLATE_WORKERS
.Пример:
environment: WEB_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. Например, документы Правовые вопросы могут быть помещены в /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
Добавление собственных модулей Python
Добавлено в версии 3.8-5.
Собственные модули Python вы можете разместить в каталоге /app/data/python/
(смотрите раздел Тома контейнеров Docker’а) — в дальнейшем они могут быть загружены в Weblate, скорее всего, через пользовательские файлы настроек.
См.также
Настройка сервера PostgreSQL
Контейнер PostgtreSQL использует конфигурацию PostgreSQL по умолчанию, которая неэффективно использует ядра процессора или память. Рекомендуется настроить конфигурацию для повышения производительности.
Конфигурацию можно изменить, как описано в разделе Конфигурация базы данных по адресу https://hub.docker.com/_/postgres. Конфигурацию, соответствующую вашей среде, можно сгенерировать с помощью https://pgtune.leopard.in.ua/.