Установка с помощью Docker’а#
С помощью докеризированного развертывания Weblate вы можете обзавестись своим личный экземпляр Weblate за считаные секунды. Все зависимости Weblate уже включены в образ. В качестве базы данных по умолчанию настроена PostgreSQL.
Требования к оборудованию#
Weblate должен без проблем работать на любом современном оборудовании, ниже приведена минимальная конфигурация, необходимая для запуска Weblate на одном сервере (сам Weblate, база данных и веб-сервер):
3 GB of RAM
2-х ядерный процессор
1 ГБ дискового пространства
Чем больше памяти, тем лучше — она используется для кэширования на всех уровнях (на уровне файловой системы, уровне базы данных и уровне Weblate).
Множество одновременно работающих пользователей увеличивают количество необходимых ядер процессора. Для сотен компонентов перевода рекомендуется не менее 4 Гб оперативной памяти.
Типовое использование дискового пространства базой данной находится в районе 300MB на 1 миллион хранимых слов. Пространство необходимое для клонирования репозиториев разнится, хотя Weblate и пытается поддерживать их размер минимальным, делая поверхностные (shallow) копии.
Примечание
Фактические требования к вашей установке Weblate сильно зависят от размера управляемых ею переводов.
Установка#
Подсказка
The following examples assume you have a working Docker environment, with
docker-compose-plugin
installed. Please check the Docker documentation
for instructions.
This creates a Weblate deployment server via HTTP, so you should place it behind HTTPS terminating proxy. You can also deploy with a HTTPS proxy, see Автоматический выпуск SSL-сертификатов с помощью сервиса Let’s Encrypt. For larger setups, please see Масштабирование по горизонтали.
Склонируйте репозиторий 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
.
См.также
Choosing Docker image registry#
Weblate containers are published to following registries:
Docker Hub, see https://hub.docker.com/r/weblate/weblate
GitHub Packages registry, see https://github.com/WeblateOrg/docker/pkgs/container/weblate
Примечание
All examples currently fetch images from Docker Hub, please adjust the configuration accordingly to use a different registry.
Choosing Docker image tag#
Please choose a tag that matches your environment and expectations:
Имя метки |
Описание |
Пример использования |
---|---|---|
|
Стабильный выпуск Weblate, соответствует последнему выпуску с метками |
Выполнение обновлений в рабочей среде |
|
Стабильный выпуск Weblate |
Rolling updates within a major version in a production environment |
|
Стабильный выпуск Weblate |
Rolling updates within a minor version in a production environment |
|
Стабильный выпуск Weblate |
Хорошо поставленное развёртывание в рабочей среде |
|
Стабильный выпуск Weblate с изменениями в разработке в Docker-контейнере (например, обновленные зависимости) |
Запуск обновлений в среде постановки |
|
Стабильный выпуск Weblate с изменениями в разработке в Docker-контейнере (например, обновленные зависимости) |
Чётко определённое развертывание в среде постановки |
|
Версия разработчика Weblate из Git |
Запуск обновлений для тестирования предстоящих функций Weblate |
|
Версия разработчика Weblate из Git |
Хорошо определённое развёртывание для тестирования предстоящих функций Weblate |
Каждое изображение тестируется нашей непрерывной интеграцией перед публикацией, поэтому даже bleeding (кровоточащая) версия должна быть вполне безопасной для использования.
Full list of published tags can be found at GitHub Packages
Контейнер Docker с поддержкой HTTPS#
Общие инструкции по развертыванию, пожалуйста, смотрите в разделе Установка, в этом разделе упоминаются только отличия от той инструкции.
Использование собственных SSL-сертификатов#
Если вы хотите использовать свой собственный SSL-сертификат, просто поместите его файлы в том данных Weblate (смотрите раздел Тома контейнеров Docker’а):
ssl/fullchain.pem
, содержащий сертификат и все необходимые сертификаты центров сертификацииssl/privkey.pem
, содержащий закрытый ключ
Обеими этими файлами должен владеть тот же самый пользователь, который запускает контейнер docker ’а, а маска этих файлов должна быть равна 600
(читать и писать в них может только владелец).
Кроме того, контейнер Weblate теперь будет принимать SSL-соединения на порт 4443 и вам нужно будет включить перенаправление портов для HTTPS в переопределении Docker Compose:
version: '3'
services:
weblate:
ports:
- 80:8080
- 443:4443
Если на этом же сервере у вас уже размещены другие сайты, скорее всего, порты 80
и 443
используются обратным прокси, например, NGINX. Для передачи HTTPS соединения из NGINX’а в контейнер docker ’а вы можете использовать следующую конфигурацию:
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name <SITE_URL>;
ssl_certificate /etc/letsencrypt/live/<SITE>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<SITE>/privkey.pem;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass https://127.0.0.1:<EXPOSED_DOCKER_PORT>;
}
}
Замените заполнители <SITE_URL>
, <SITE>
и EXPOSED_DOCKER_PORT
на фактические значения из вашего окружения.
Автоматический выпуск SSL-сертификатов с помощью сервиса Let’s Encrypt#
Если вы хотите использовать Let’s Encrypt для автоматической генерации SSL-сертификатов для общедоступной установки, вам нужно будет добавить дополнительный контейнер Docker с обратным HTTPS прокси — https-portal. Он используется в файле docker-compose-https.yml
. Затем создайте файл docker-compose-https.override.yml
со своими настройками:
version: '3'
services:
weblate:
environment:
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_HOST_USER: user
WEBLATE_EMAIL_HOST_PASSWORD: pass
WEBLATE_SITE_DOMAIN: weblate.example.com
WEBLATE_ADMIN_PASSWORD: password for admin user
https-portal:
environment:
DOMAINS: 'weblate.example.com -> http://weblate:8080'
Whenever invoking docker compose you need to pass both files to it, and then do:
docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml build
docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml up
Обновление контейнера Docker’а#
Обычно рекомендуется обновлять только контейнер Weblate, а контейнер PostgreSQL сохранять той версии, которая у вас есть, поскольку обновление PostgreSQL довольно болезненно и в большинстве случаев не приносит особых преимуществ.
Изменено в версии 4.17-1: Since Weblate 4.17-1, the Docker container uses Django 4.2 what requires PostgreSQL 12 or newer, please upgrade it prior to upgrading Weblate. See Обновление контейнера PostgreSQL.
Вы можете сделать это, оставаясь с существующим docker-compose и просто извлекая последние образы с последующим перезапуском контейнера:
# Fetch latest versions of the images
docker compose pull
# Stop and destroy the containers
docker compose down
# Spawn new containers in the background
docker compose up -d
# Follow the logs during upgrade
docker compose logs -f
При первом запуске база данных Weblate должна быть перенесена автоматически, надобности в дополнительных ручных действиях не возникнет.
Примечание
Обновления через основные версии Weblate не поддерживают. Если вы используете версию 3.x и хотите обновиться до 4.x, сначала выполните обновление до последнего образа 4.0.x-y (на момент написания это 4.0.4-5
), которое выполнит миграцию, а затем продолжите обновление до более новых версий.
Также вы можете захотеть обновить репозиторий docker-compose
, хотя в большинстве случаев в этом нет необходимости. См. Обновление контейнера PostgreSQL для обновления сервера PostgreSQL.
Обновление контейнера PostgreSQL#
Контейнеры PostgreSQL не поддерживают автоматическое обновление версии, вам необходимо выполнить обновление вручную. В последующих шагах показан один из вариантов обновления.
Остановка контейнера Weblate:
docker compose stop weblate cache
Резервное копирование базы данных:
docker compose exec database pg_dumpall --clean --if-exists --username weblate > backup.sql
Остановка контейнера базы данных:
docker compose stop database
Удаление тома PostgreSQL:
docker compose rm -v database docker volume remove weblate-docker_postgres-data
Подправьте файл
docker-compose.yml
, чтобы использовать новую версию PostgreSQL.Запустить контейнер базы данных:
docker compose up -d database
Восстановите данные из резервной копии:
cat backup.sql | docker compose exec -T database psql --username weblate --dbname weblate
Подсказка
Please check that the database name matches
POSTGRES_DATABASE
.(Optional) Update password for the Weblate user. This might be needed when migrating to PostgreSQL 14 or 15 as way of storing passwords has been changed:
docker compose exec -T database psql --username weblate --dbname weblate -c "ALTER USER weblate WITH PASSWORD 'weblate'"
Подсказка
Please check that the database name matches
POSTGRES_DATABASE
.Запустить все оставшиеся контейнеры:
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 могут быть установлены через переменные окружения, описанные ниже.
If you need to define a setting not exposed through Docker environment variables, see Configuration beyond environment variables.
Passing secrets#
Добавлено в версии 5.0.
Weblate container supports passing secrets as files. To utilize that, append
_FILE
suffix to the environment variable and pass secret file via Docker.
Related docker-compose.yml
might look like:
services:
weblate:
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
database:
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_password
secrets:
db_password:
file: db_password.txt
См.также
Общие параметры#
- WEBLATE_DEBUG#
Настраивает отладочный режим Django, используя ее переменную
DEBUG
.Пример:
environment: WEBLATE_DEBUG: 1
См.также
- WEBLATE_LOGLEVEL#
Configures the logging verbosity. Set this to
DEBUG
to get more detailed logs.Defaults to
INFO
whenWEBLATE_DEBUG
is turned off,DEBUG
is used when debug mode is turned on.For more silent logging use
ERROR
orWARNING
.
- 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_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_REGISTRATION_REBIND#
Добавлено в версии 4.16.
Настраивает
REGISTRATION_REBIND
.
- 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
.To enforce authentication for the contact form, do:
environment: WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS: /contact/$
- 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
.См.также
- WEBLATE_GITLAB_USERNAME#
- WEBLATE_GITLAB_TOKEN#
- WEBLATE_GITLAB_HOST#
Configures GitLab merge-requests integration by changing
GITLAB_CREDENTIALS
.Пример:
WEBLATE_GITLAB_USERNAME=weblate WEBLATE_GITLAB_HOST=gitlab.com WEBLATE_GITLAB_TOKEN=token
См.также
- WEBLATE_GITEA_USERNAME#
- WEBLATE_GITEA_TOKEN#
- WEBLATE_GITEA_HOST#
Configures Gitea pull-requests integration by changing
GITEA_CREDENTIALS
.См.также
- WEBLATE_PAGURE_USERNAME#
- WEBLATE_PAGURE_TOKEN#
- WEBLATE_PAGURE_HOST#
Configures Pagure merge-requests integration by changing
PAGURE_CREDENTIALS
.См.также
- WEBLATE_BITBUCKETSERVER_USERNAME#
- WEBLATE_BITBUCKETSERVER_TOKEN#
- WEBLATE_BITBUCKETSERVER_HOST#
Configures Bitbucket Server pull-requests integration by changing
BITBUCKETSERVER_CREDENTIALS
.См.также
- 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_AVATAR_URL_PREFIX#
Добавлено в версии 4.15.
Настраивает параметр
AVATAR_URL_PREFIX
.
- WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH#
Добавлено в версии 4.9.
Настраивает параметр
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH
.
- WEBLATE_SSH_EXTRA_ARGS#
Добавлено в версии 4.9.
Настраивает параметр
SSH_EXTRA_ARGS
.
- WEBLATE_BORG_EXTRA_ARGS#
Добавлено в версии 4.9.
Configures
BORG_EXTRA_ARGS
as a comma separated list of args.Пример:
environment: WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
- WEBLATE_ENABLE_SHARING#
Добавлено в версии 4.14.1.
Настраивает параметр setting:ENABLE_SHARING.
- WEBLATE_EXTRA_HTML_HEAD#
Добавлено в версии 4.15.
Настраивает
EXTRA_HTML_HEAD
.
- WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE#
Добавлено в версии 4.15.
Настраивает
PRIVATE_COMMIT_EMAIL_TEMPLATE
.
- WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN#
Добавлено в версии 4.15.
Настраивает
PRIVATE_COMMIT_EMAIL_OPT_IN
.
- WEBLATE_UNUSED_ALERT_DAYS#
Добавлено в версии 4.17.
Настраивает
UNUSED_ALERT_DAYS
.
- WEBLATE_CORS_ALLOWED_ORIGINS#
Добавлено в версии 4.16.
Allow CORS requests from given origins.
Пример:
environment: WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
- CLIENT_MAX_BODY_SIZE#
Добавлено в версии 4.16.3.
Configures maximal body size accepted by the built-in web server.
environment: CLIENT_MAX_BODY_SIZE: 200m
Подсказка
This variable intentionally lacks
WEBLATE_
prefix as it is shared with third-party container used in Автоматический выпуск SSL-сертификатов с помощью сервиса Let’s Encrypt.
Настройки автоматических предложений#
Изменено в версии 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_CONNECTION_OPTION_REFERRALS#
- WEBLATE_AUTH_LDAP_USER_SEARCH#
- WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER#
- WEBLATE_AUTH_LDAP_USER_SEARCH_UNION#
- WEBLATE_AUTH_LDAP_USER_SEARCH_UNION_DELIMITER#
Настройка аутентификации через LDAP.
Пример прямой привязки:
environment: WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE: uid=%(user)s,ou=People,dc=example,dc=net # map weblate 'full_name' to ldap 'name' and weblate 'email' attribute to 'mail' ldap attribute. # another example that can be used with OpenLDAP: 'full_name:cn,email:mail' WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
Пример поиска и привязки:
environment: WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_BIND_PASSWORD: password WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com
Пример объединения поиска и привязки:
environment: WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_BIND_PASSWORD: password WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail WEBLATE_AUTH_LDAP_USER_SEARCH_UNION: ou=users,dc=example,dc=com|ou=otherusers,dc=example,dc=com
Пример поиска и привязки в Active Directory:
environment: WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_BIND_PASSWORD: password WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS: 0 WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER: (sAMAccountName=%(user)s)
См.также
GitHub#
- WEBLATE_SOCIAL_AUTH_GITHUB_KEY#
- WEBLATE_SOCIAL_AUTH_GITHUB_SECRET#
- WEBLATE_SOCIAL_AUTH_GITHUB_ORG_KEY#
- WEBLATE_SOCIAL_AUTH_GITHUB_ORG_SECRET#
- WEBLATE_SOCIAL_AUTH_GITHUB_ORG_NAME#
- WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_KEY#
- WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_SECRET#
- WEBLATE_SOCIAL_AUTH_GITHUB_TEAM_ID#
Включает аутентификацию через GitHub.
GitHub Enterprise Edition#
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY#
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET#
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_URL#
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL#
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE#
Enables GitHub EE authentication.
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.
Gitea#
- WEBLATE_SOCIAL_AUTH_GITEA_API_URL#
- WEBLATE_SOCIAL_AUTH_GITEA_KEY#
- WEBLATE_SOCIAL_AUTH_GITEA_SECRET#
Включает аутентификацию Gitea.
Azure Active Directory#
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY#
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET#
Включает аутентификацию через Azure Active Directory, смотрите раздел Microsoft Azure Active Directory.
Azure Active Directory с поддержкой Tenant#
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY#
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET#
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID#
Включает аутентификацию через Azure Active Directory с поддержкой Tenant, смотрите раздел Microsoft Azure Active Directory.
Keycloak#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_KEY#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_SECRET#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ALGORITHM#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ACCESS_TOKEN_URL#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_TITLE#
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_IMAGE#
Включает аутентификацию через Keycloak, смотрите документацию.
Поставщики Linux#
Вы можете включить аутентификацию с помощью сервисов аутентификации поставщиков Linux, установив следующие переменные в любое значение.
- WEBLATE_SOCIAL_AUTH_FEDORA#
- WEBLATE_SOCIAL_AUTH_OPENSUSE#
- WEBLATE_SOCIAL_AUTH_OPENINFRA#
- WEBLATE_SOCIAL_AUTH_UBUNTU#
Slack#
- WEBLATE_SOCIAL_AUTH_SLACK_KEY#
OpenID Connect#
Добавлено в версии 4.13-1.
- WEBLATE_SOCIAL_AUTH_OIDC_OIDC_ENDPOINT#
- WEBLATE_SOCIAL_AUTH_OIDC_KEY#
- WEBLATE_SOCIAL_AUTH_OIDC_SECRET#
- WEBLATE_SOCIAL_AUTH_OIDC_USERNAME_KEY#
Configures generic OpenID Connect integration.
См.также
SAML#
Самоподписанные ключи SAML генерируются автоматически при первом запуске контейнера. Если вы хотите использовать собственные ключи, поместите сертификат и закрытый ключ в файлы /app/data/ssl/saml.crt
и /app/data/ssl/saml.key
.
- WEBLATE_SAML_IDP_ENTITY_ID#
- WEBLATE_SAML_IDP_URL#
- WEBLATE_SAML_IDP_X509CERT#
- WEBLATE_SAML_IDP_IMAGE#
- WEBLATE_SAML_IDP_TITLE#
Настройки провайдера идентификационных данных SAML, смотрите раздел Аутентификация через SAML.
- WEBLATE_SAML_ID_ATTR_NAME#
- WEBLATE_SAML_ID_ATTR_USERNAME#
- WEBLATE_SAML_ID_ATTR_EMAIL#
- WEBLATE_SAML_ID_ATTR_USER_PERMANENT_ID#
Добавлено в версии 4.18.
SAML attributes mapping.
Другие параметры аутентификации#
- WEBLATE_NO_EMAIL_AUTH#
При установке в любое значение отключает аутентификацию через электронную почту. См. Отключение аутентификации по паролю.
Настройки базы данных 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.
- 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_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#
Your Sentry Environment (optional), defaults to
WEBLATE_SITE_DOMAIN
.
- SENTRY_TRACES_SAMPLE_RATE#
Configure sampling rate for performance monitoring. Set to 1 to trace all events, 0 (the default) disables tracing.
Пример:
environment: SENTRY_TRACES_SAMPLE_RATE: 0.5
- SENTRY_PROFILES_SAMPLE_RATE#
Configure sampling rate for profiling monitoring. Set to 1 to trace all events, 0 (the default) disables tracing.
Пример:
environment: SENTRY_PROFILES_SAMPLE_RATE: 0.5
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, отвечаете вы, эта переменная только указывает местоположение, куда их надо сохранять.
Изменение включённых приложений, проверок, надстроек или автоматических исправлений#
Встроенную конфигурация включённых проверок, надстроек или автоматических исправлений можно изменить с помощью следующих переменных:
- 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
.
The cache volume is mounted as /app/cache
and is used to store static
files and CACHE_DIR
. Its content is recreated on container startup
and the volume can be mounted using ephemeral filesystem such as tmpfs.
При создании томов вручную, каталоги должны принадлежать UID 1000, так как именно этот пользователь используется внутри контейнера.
См.также
Read-only root filesystem#
Добавлено в версии 4.18.
When running the container with a read-only root filesystem, two additional
tmpfs volumes are required - /tmp
and /run
.
Configuration beyond environment variables#
Docker environment variables are intended to expose most configuration settings of relevance for Weblate installations.
If you find a setting that is not exposed as an environment variable, and you believe that it should be, feel free to ask for it to be exposed in a future version of Weblate.
If you need to modify a setting that is not exposed as a Docker environment variable, you can still do so, either from the data volume or extending the Docker image.
См.также
Overriding settings from the data volume#
You can create a file at /app/data/settings-override.py
, i.e. at the
root of the data volume, to extend or override settings
defined through environment variables.
Overriding settings by extending the Docker image#
To override settings at the Docker image level instead of from the data volume:
Add a module to your package that imports all settings from
weblate.settings_docker
.For example, within the example package structure defined at Создание модуля Python, you could create a file at
weblate_customization/weblate_customization/settings.py
with the following initial code:from weblate.settings_docker import *
Create a custom
Dockerfile
that inherits from the official Weblate Docker image, and then installs your package and points theDJANGO_SETTINGS_MODULE
environment variable to your settings module:FROM weblate/weblate USER root COPY weblate_customization /usr/src/weblate_customization RUN pip install --no-cache-dir /usr/src/weblate_customization ENV DJANGO_SETTINGS_MODULE=weblate_customization.settings USER 1000
Instead of using the official Weblate Docker image, build a custom image from this
Dockerfile
file.There is no clean way to do this with
docker-compose.override.yml
. You could addbuild: .
to theweblate
node in that file, but then your custom image will be tagged asweblate/weblate
in your system, which could be problematic.So, instead of using the
docker-compose.yml
straight from the official repository, unmodified, and extending it throughdocker-compose.override.yml
, you may want to make a copy of the officialdocker-compose.yml
file, and edit your copy to replaceimage: weblate/weblate
withbuild: .
.See the Compose file build reference for details on building images from source when using
docker-compose
.Extend your custom settings module to define or redefine settings.
You can define settings before or after the import statement above to determine which settings take precedence. Settings defined before the import statement can be overridden by environment variables and setting overrides defined in the data volume. Setting defined after the import statement cannot be overridden.
You can also go further. For example, you can reproduce some of the things that
weblate.docker_settings
does, such as exposing settings as environment variables, or allow overriding settings from Python files in the data volume.
Замена логотипа и других статических файлов#
Статические файлы, поставляемые с 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
Настройка сервера PostgreSQL#
Контейнер PostgreSQL использует конфигурацию PostgreSQL по умолчанию, которая неэффективно использует ядра процессора или память. Рекомендуется настроить конфигурацию для повышения производительности.
Конфигурацию можно изменить, как описано в разделе Конфигурация базы данных по адресу https://hub.docker.com/_/postgres. Конфигурацию, соответствующую вашей среде, можно сгенерировать с помощью https://pgtune.leopard.in.ua/.
Внутренние свойства контейнера#
The container is using supervisor to start individual services. In case of Масштабирование по горизонтали, it only starts single service in a container.
To check the services status use:
docker compose exec --user weblate weblate supervisorctl status
There are individual services for each Celery queue (see Фоновые задачи с использованием Celery for details). You can stop processing some tasks by stopping the appropriate worker:
docker compose exec --user weblate weblate supervisorctl stop celery-translate