Установка с помощью Docker’а

С помощью докеризированного развёртывания Weblate вы можете запустить ваш личный экземпляр Weblate за считанные секунды. Все зависимости Weblate уже включены в образ. В качестве базы данных по умолчанию настроена PostgreSQL.

Требования к оборудованию

Weblate должен без проблем работать на всём современном оборудовании, ниже приведена минимальная конфигурация, необходимая для запуска Weblate на одном узле (сам Weblate, база данных и веб-сервер):

  • 2 ГБ оперативной памяти

  • 2-х ядерный процессор

  • 1 ГБ дискового пространства

Чем больше памяти, тем лучше — она используется для кэширования на всех уровнях (на уровне файловой системы, уровне базы данных и уровне Weblate).

Множество одновременно работающих пользователей увеличивают количество необходимых ядер процессора. Для сотен компонентов перевода рекомендуется не менее 4 Гб оперативной памяти.

Примечание

Фактические требования к вашей установке Weblate сильно зависят от размера управляемых ею переводов.

Установка

В следующих примерах предполагается, что у вас есть рабочее окружение Docker’а, в котором установлен docker-compose. Для получения конкретных инструкций ознакомьтесь с документацией к Docker’у.

  1. Склонируйте репозиторий weblate-docker:

    git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker
    cd weblate-docker
    
  2. Создайте файл 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.

  3. Запустите контейнеры Weblate:

    docker-compose up
    

Наслаждайтесь своим развёрнутым Weblate’ом, он доступен на порту 80 контейнера weblate.

Изменено в версии 2.15-2: Недавно настройка изменилась, ранее существовал отдельный контейнер веб-сервера, но с версии 2.15-2 веб-сервер встроен в контейнер Weblate.

Изменено в версии 3.7.1-6: In July 2019 (starting with the 3.7.1-6 tag), the containers are not running as a root user. This has changed the exposed port from 80 to 8080.

Контейнер Docker с поддержкой HTTPS

Please see Установка for generic deployment instructions, this section only mentions differences compared to it.

Использование собственных SSL-сертификатов

Добавлено в версии 3.8-3.

In case you have own SSL certificate you want to use, simply place the files into the Weblate data volume (see Docker container volumes):

  • ssl/fullchain.pem containing the certificate including any needed CA certificates

  • ssl/privkey.pem containing the private key

Both of these files must be owned by the same user as the one starting the docker container and have file mask set to 600 (readable and writable only by the owning user).

Additionally, Weblate container will now accept SSL connections on port 4443, you will want to include the port forwarding for HTTPS in docker compose override:

version: '3'
services:
  weblate:
    ports:
      - 80:8080
      - 443:4443

If you already host other sites on the same server, it is likely ports 80 and 443 are used by a reverse proxy, such as NGINX. To pass the HTTPS connection from NGINX to the docker container, you can use the following configuration:

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>;
    }
}

Replace <SITE_URL>, <SITE> and <EXPOSED_DOCKER_PORT> with actual values from your environment.

Автоматический выпуск SSL-сертификатов с помощью сервиса Let’s Encrypt

In case you want to use Let’s Encrypt automatically generated SSL certificates on public installation, you need to add a reverse HTTPS proxy an additional Docker container, https-portal will be used for that. This is made use of in the docker-compose-https.yml file. Then create a docker-compose-https.override.yml file with your settings:

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’а

Usually it is good idea to only update the Weblate container and keep the PostgreSQL container at the version you have, as upgrading PostgreSQL is quite painful and in most cases does not bring many benefits.

You can do this by sticking with the existing docker-compose and just pull the latest images and then restart:

docker-compose stop
docker-compose pull
docker-compose up

The Weblate database should be automatically migrated on first startup, and there should be no need for additional manual actions.

Примечание

Upgrades across 3.0 are not supported by Weblate. If you are on 2.x series and want to upgrade to 3.x, first upgrade to the latest 3.0.1-x (at time of writing this it is the 3.0.1-7) image, which will do the migration and then continue upgrading to newer versions.

You might also want to update the docker-compose repository, though it’s not needed in most case. Please beware of PostgreSQL version changes in this case as it’s not straightforward to upgrade the database, see GitHub issue for more info.

Вход под администратором

После настройки контейнера вы можете войти в систему под пользователем admin с паролем, указанным в переменной окружения WEBLATE_ADMIN_PASSWORD, или случайным паролем, сгенерированным при первом запуске, если он не был установлен явно.

Для сброса пароля пользователя admin перезапустите контейнер с переменной WEBLATE_ADMIN_PASSWORD, установленной в новое значение пароля.

Переменные окружения Docker’а

Многие конфигурационные настройки Weblate в контейнере Docker могут быть установлены через переменные окружения:

Общие параметры

WEBLATE_DEBUG

Настраивает отладочный режим Django, используя её переменную DEBUG.

Пример:

environment:
  WEBLATE_DEBUG: 1
WEBLATE_LOGLEVEL

Настраивает подробность ведения журнала.

WEBLATE_SITE_TITLE

Changes the site-title shown in the header of all pages.

WEBLATE_SITE_DOMAIN

Настраивает домен сайта.

Подсказка

В случае, если он не установлен, используется первый элемент из переменной окружения WEBLATE_ALLOWED_HOSTS.

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_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 или устанавливать у кук флаги безопасности.

Примечание

Этот параметр не включает разрешение на приём контейнером Weblate’а соединений по HTTPS, его нужно настроить отдельно, для примеров смотрите раздел Контейнер Docker с поддержкой HTTPS.

Пример:

environment:
  WEBLATE_ENABLE_HTTPS: 1
WEBLATE_IP_PROXY_HEADER

Lets Weblate fetch the IP address from any given HTTP header. Use this when using a reverse proxy in front of the Weblate container.

Enables IP_BEHIND_REVERSE_PROXY and sets IP_PROXY_HEADER.

Примечание

The format must conform to Django’s expectations. Django transforms raw HTTP header names as follows:

  • converts all characters to uppercase

  • replaces any hyphens with underscores

  • prepends HTTP_ prefix

So X-Forwarded-For would be mapped to HTTP_X_FORWARDED_FOR.

Пример:

environment:
  WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
WEBLATE_SECURE_PROXY_SSL_HEADER

A tuple representing a HTTP header/value combination that signifies a request is secure. This is needed when Weblate is running behind a reverse proxy doing SSL termination which does not pass standard HTTPS headers.

Пример:

environment:
  WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https

См.также

SECURE_PROXY_SSL_HEADER

WEBLATE_REQUIRE_LOGIN

Configures login required for the whole of the Weblate installation using LOGIN_REQUIRED_URLS.

Пример:

environment:
  WEBLATE_REQUIRE_LOGIN: 1
WEBLATE_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_ADD_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS

Adds URL exceptions for login required for the whole Weblate installation using LOGIN_REQUIRED_URLS_EXCEPTIONS.

You can either replace whole settings, or modify default value using ADD and REMOVE variables.

WEBLATE_GOOGLE_ANALYTICS_ID

Configures ID for Google Analytics by changing GOOGLE_ANALYTICS_ID.

WEBLATE_GITHUB_USERNAME

Configures GitHub username for GitHub pull-requests by changing GITHUB_USERNAME.

См.также

GitHub, Установка hub

WEBLATE_GITLAB_USERNAME

Configures GitLab username for GitLab merge-requests by changing GITLAB_USERNAME

См.также

GitLab Установка Lab

WEBLATE_GITLAB_HOST

Настраивает хост GitLab’а для GitLab’овских запросов на слияние

См.также

GitLab Установка Lab

WEBLATE_GITLAB_TOKEN

Настраивает токен доступа GitLab’а для GitLab’овских запросов на слияние

См.также

GitLab Установка Lab

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_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_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

Enables Microsoft Cognitive Services Translator and sets MT_MICROSOFT_COGNITIVE_KEY

WEBLATE_MT_MICROSOFT_ENDPOINT_URL

Enables Microsoft Cognitive Services Translator and sets MT_MICROSOFT_ENDPOINT_URL

WEBLATE_MT_MICROSOFT_BASE_URL

Enables Microsoft Cognitive Services Translator and sets MT_MICROSOFT_BASE_URL

WEBLATE_MT_MODERNMT_KEY

Enables ModernMT and sets MT_MODERNMT_KEY.

WEBLATE_MT_MYMEMORY_ENABLED

Enables MyMemory machine translation and sets MT_MYMEMORY_EMAIL to 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_FILTER

Конфигурация аутентификации через 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

Пример поиска и привязки в 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

You can enable authentication using Linux vendors authentication services by setting following variables to any value.

WEBLATE_SOCIAL_AUTH_FEDORA
WEBLATE_SOCIAL_AUTH_OPENSUSE
WEBLATE_SOCIAL_AUTH_UBUNTU

Slack

WEBLATE_SOCIAL_AUTH_SLACK_KEY
SOCIAL_AUTH_SLACK_SECRET

Enables Slack authentication, see Slack.

SAML

Self-signed SAML keys are automatically generated on first container startup. In case you want to use own keys, place the certificate and private key in /app/data/ssl/saml.crt and /app/data/ssl/saml.key.

WEBLATE_SAML_IDP_ENTITY_ID
WEBLATE_SAML_IDP_URL
WEBLATE_SAML_IDP_X509CERT

SAML Identity Provider settings, see Аутентификация через SAML.

Другие параметры аутентификации

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

Configure how PostgreSQL handles SSL in connection to the server, for possible choices see SSL Mode Descriptions

Параметры резервного копирования базы данных

WEBLATE_DATABASE_BACKUP

Configures the daily database dump using DATABASE_BACKUP. Defaults to plain.

Настройка сервера кэширования

Using Redis is strongly recommended by Weblate and you have to provide a Redis instance when running Weblate in Docker.

REDIS_HOST

The Redis server hostname or IP address. Defaults to cache.

REDIS_PORT

Порт сервера Redis. По умолчанию установлен в 6379.

REDIS_DB

Нобер базы данных Redis, по умолчанию установлен в 1.

REDIS_PASSWORD

The Redis server password, not used by default.

REDIS_TLS

Enables using SSL for Redis connection.

REDIS_VERIFY_SSL

Can be used to disable SSL certificate verification for Redis connection.

Настройка почтового сервера

To make outgoing e-mail work, you need to provide a mail server.

Пример конфигурации 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

Mail server hostname or IP address.

WEBLATE_EMAIL_PORT

Порт почтового сервера, по умолчанию установлен в 25.

См.также

EMAIL_PORT

WEBLATE_EMAIL_HOST_USER

E-mail authentication user.

См.также

EMAIL_HOST_USER

WEBLATE_EMAIL_HOST_PASSWORD

E-mail authentication password.

См.также

EMAIL_HOST_PASSWORD

WEBLATE_EMAIL_USE_SSL

Whether to use an implicit TLS (secure) connection when talking to the SMTP server. In most e-mail documentation, this type of TLS connection is referred to as SSL. It is generally used on port 465. If you are experiencing problems, see the explicit TLS setting WEBLATE_EMAIL_USE_TLS.

WEBLATE_EMAIL_USE_TLS

Whether to use a TLS (secure) connection when talking to the SMTP server. This is used for explicit TLS connections, generally on port 587 or 25. If you are experiencing connections that hang, see the implicit TLS setting WEBLATE_EMAIL_USE_SSL.

WEBLATE_EMAIL_BACKEND

Configures Django back-end to use for sending e-mails.

Отчёты об ошибках

It is recommended to collect errors from the installation systematically, see Сбор отчётов об ошибках.

To enable support for Rollbar, set the following:

ROLLBAR_KEY

Your Rollbar post server access token.

ROLLBAR_ENVIRONMENT

Ваше окружение Rollbar, по умолчанию установлена в production.

To enable support for Sentry, set following:

SENTRY_DSN

Your Sentry DSN.

SENTRY_ENVIRONMENT

Your Sentry Environment (optional).

Изменение включённых приложений, проверок, надстроек или автоматических исправлений

Добавлено в версии 3.8-5.

The built-in configuration of enabled checks, addons or autofixes can be adjusted by the following variables:

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_TRANSLATE_OPTIONS
CELERY_MEMORY_OPTIONS
CELERY_BACKUP_OPTIONS
CELERY_BEAT_OPTIONS

These variables allow you to adjust Celery worker options. It can be useful to adjust concurrency (--concurrency 16) or use different pool implementation (--pool=gevent).

By default, the number of concurrent workers matches the number of processors (except the backup worker, which is supposed to run only once).

Пример:

environment:
  CELERY_MAIN_OPTIONS: --concurrency 16
UWSGI_WORKERS

Configure how many uWSGI workers should be executed.

It defaults to number of processors + 1.

Пример:

environment:
  UWSGI_WORKERS: 32

Docker container volumes

There is single data volume 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.

The data volume is used to store Weblate persistent data such as cloned repositories or to customize Weblate installation.

The placement of the Docker volume on host system depends on your Docker configuration, but usually it is stored in /var/lib/docker/volumes/weblate-docker_weblate-data/_data/. In the container it is mounted as /app/data.

Дальнейшая настройка конфигурации

You can further customize Weblate installation in the data volume, see Docker container volumes.

Пользовательские файлы конфигурации

You can additionally override the configuration in /app/data/settings-override.py (see Docker container volumes). This is executed after all environment settings are loaded, so it gets completely set up, and can be used to customize anything.

Замена логотипа и других статических файлов

Добавлено в версии 3.8-5.

The static files coming with Weblate can be overridden by placing into /app/data/python/customize/static (see Docker container volumes). For example creating /app/data/python/customize/static/favicon.ico will replace the favicon.

Подсказка

The files are copied to the corresponding location upon container startup, so a restart of Weblate is needed after changing the content of the volume.

Alternatively you can also include own module (see Customizing Weblate) and add it as separate volume to the Docker container, for example:

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.

You can place own Python modules in /app/data/python/ (see Docker container volumes) and they can be then loaded by Weblate, most likely by using Пользовательские файлы конфигурации.

См.также

Customizing Weblate

Настройка hub

In order to use the GitHub’s pull-request feature, you must initialize your hub configuration by entering the Weblate container and executing an arbitrary Hub command. For example:

docker-compose exec --user weblate weblate bash
cd
HOME=/app/data/home hub clone octocat/Spoon-Knife

The username passed for credentials must be the same as GITHUB_USERNAME.

См.также

GitHub, Установка hub

Настройка lab

In order to use GitLab’s merge-request feature, you must initialize the lab configuration by entering the Weblate container and executing the lab command. For example:

docker-compose exec --user weblate weblate bash
cd
HOME=/app/data/home lab

You can also use environment variables to configure lab on each container start. Just add WEBLATE_GITLAB_USERNAME, WEBLATE_GITLAB_HOST``and ``WEBLATE_GITLAB_TOKEN to your env configuration.

weblate:
  environment:
    WEBLATE_GITLAB_USERNAME: translations_bot
    WEBLATE_GITLAB_HOST: https://gitlab.example.com
    WEBLATE_GITLAB_TOKEN: personal_access_token_of_translations_bot

The access_token passed for lab configuration must be same as GITLAB_USERNAME.

См.также

GitLab Установка Lab

Select your machine - local or cloud providers

With Docker Machine you can create your Weblate deployment either on your local machine, or on any large number of cloud-based deployments on e.g. Amazon AWS, Greenhost, and many other providers.