Установлення за допомогою Docker

Якщо Weblate розгорнуто у середовищі Docker, ви зможете отримати ваш працездатний і запущений особистий екземпляр Weblate за декілька секунд. Усі залежності Weblate вже включено. Типовим засобом роботи із базою даних у таких екземплярах є PostgreSQL.

Вимоги щодо обладнання

Weblate має працювати на будь-якому сучасному обладнанні без проблем. Нижче наведено мінімальні налаштування, які потрібні для запуску Weblate на одному вузлі (Weblate, бази даних і вебсервера):

  • 2 ГБ оперативної пам’яті

  • 2 ядра процесора

  • 1 ГБ вільного місця на диску

Чим більше пам’яті — тим краще. Пам’ять використовується для кешування на усіх рівнях (у файловій системі, базі даних та Weblate).

Збільшення кількості одночасних користувачів системи збільшує кількість потрібних для роботи ядер центрального процесора. Для сотень складників перекладу рекомендовано використовувати принаймні 4 ГБ оперативної пам’яті.

Типовий об’єм сховища даних близько 300 МБ на 1 мільйон збережених слів. Об’єм даних, потрібний для зберігання клонованих репозиторіїв коду, може бути різним, але Weblate намагається його скоротити створенням поверхневих клонів.

Примітка

Реальні вимоги до встановленого вами 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: Станом на липень 2019 року (починаючи з мітки 3.7.1-6), контейнери не запускаються від імені користувача root. Це призвело до зміни порту зв’язку з 80 на 8080.

Вибір теґу концентратора Docker

На концентраторі Docker ви можете користуватися вказаними нижче теґами. Із повним списком можна ознайомитися тут: https://hub.docker.com/r/weblate/weblate/tags/

Назва теґу

Опис

Варіант використання

latest

Стабільний випуск Weblate, відповідає найновішому випуску

Оновлення-накладки у промисловому середовищі

<VERSION>-<PATCH>

Стабільний випуск Weblate

Надійний розгорнутий екземпляр у промисловому середовищі

edge

Стабільний випуск Weblate із змінами з гілки розробки у контейнері Docker (наприклад, із оновленими залежностями)

Оновлення-накладки у проміжному тестовому середовищі

edge-<DATE>-<SHA>

Стабільний випуск Weblate із змінами з гілки розробки у контейнері Docker (наприклад, із оновленими залежностями)

Надійний розгорнутий екземпляр у тестовому середовищі

bleeding

Версії Weblate у розробці з Git

Оновлення-накладки для тестування новітніх можливостей Weblate

bleeding-<DATE>-<SHA>

Версії 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:

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

Якщо ви хочете скористатися автоматично створеними сертифікатами SSL від Let’s Encrypt на загальнодоступній встановленій версії, вам слід додати обернений проксі HTTPS . Для цього буде використано додатковий контейнер Docker, 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. Докладніший опис можна знайти у розділах Оновлення з 4.9 до 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 не передбачено підтримки автоматичного оновлення до нових версій. Вам доведеться виконати оновлення вручну. Нижче показано кроки одного із варіантів оновлення.

  1. Зупинення контейнера Weblate:

    docker-compose stop weblate cache
    
  2. Резервне копіювання бази даних:

    docker-compose exec database pg_dumpall --clean --username weblate > backup.sql
    
  3. Зупинення контейнера бази даних:

    docker-compose stop database
    
  4. Вилучення тому PostgreSQL:

    docker-compose rm -v database
    docker volume remove weblate_postgres-data
    
  5. Скоригуйте ваш docker-compose.yml так, щоб у ньому було використано нову версію PostgreSQL.

  6. Запуск контейнера бази даних:

    docker-compose up -d database
    
  7. Відновлення бази даних з резервної копії:

    cat backup.sql | docker-compose exec -T database psql --username weblate --dbname postgres
    
  8. Запуск решти контейнерів:

    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 є визначена за допомогою змінної середовища :envvar:`WEBLATE_SERVICE`роль. Будь ласка, точно виконуйте настанови з документації, оскільки деякі служби у кластері мають запускатися лише один раз, крім того, має значення порядок запуску служб.

Прикладом налаштувань у репозиторії docker-compose є файл docker-compose-split.yml.

Змінні середовища Docker

Багато з параметрів налаштовування може бути встановлено у контейнері 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_ADMIN_PASSWORD

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 у посиланнях електронної пошти та програмного інтерфейсу та встановлює прапорці захищеності у куках.

Підказка

Будь ласка, ознайомтеся із документацією до ENABLE_HTTPS, щоб дізнатися більше про можливі проблеми.

Примітка

Це не призводить до того, що контейнер Weblate починає приймати з’єднання HTTPS. Прийняття таких з’єднань слід налаштувати окремо, див. приклади у розділі Контейнер Docker із підтримкою HTTPS.

Приклад:

environment:
  WEBLATE_ENABLE_HTTPS: 1
WEBLATE_INTERLEDGER_PAYMENT_POINTERS

Нове в версії 4.12.1.

Надає Weblate змогу встановлювати поле meta[name=monetization] у заголовку документа. Якщо вказано декілька, значення буде вибрано випадковим чином.

Дивись також

INTERLEDGER_PAYMENT_POINTERS

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

Дивись також

SECURE_PROXY_SSL_HEADER

WEBLATE_REQUIRE_LOGIN

Вмикає REQUIRE_LOGIN для примусового розпізнавання в усьому Weblate.

Приклад:

environment:
  WEBLATE_REQUIRE_LOGIN: 1
WEBLATE_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_ADD_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS

Додає винятки URL-адрес для розпізнавання, потрібного для всього встановлення Weblate, за допомогою LOGIN_REQUIRED_URLS_EXCEPTIONS.

Ви можете або замінити усі параметри, або змінити типове значення за допомогою змінних ADD і REMOVE.

WEBLATE_GOOGLE_ANALYTICS_ID

Налаштовує ідентифікатор для Google Analytics зміною GOOGLE_ANALYTICS_ID.

WEBLATE_GITHUB_USERNAME

Налаштовує ім’я користувача GitHub для запитів щодо об’єднання GitHub зміною GITHUB_USERNAME.

WEBLATE_GITHUB_TOKEN

Нове в версії 4.3.

Налаштовує особистий жетон доступу GitHub для запитів щодо об’єднання на GitHub з використанням програмного інтерфейсу шляхом зміни GITHUB_TOKEN.

WEBLATE_GITLAB_USERNAME

Налаштовує ім’я користувача GitLab для запитів щодо об’єднання GitLab зміною GITLAB_USERNAME

WEBLATE_GITLAB_TOKEN

Налаштовує особистий жетон доступу GitLab для запитів щодо об’єднання на GitLab з використанням програмного інтерфейсу шляхом зміни GITLAB_TOKEN

WEBLATE_PAGURE_USERNAME

Налаштовує ім’я користувача Pagure для запитів щодо об’єднання Pagure зміною PAGURE_USERNAME

WEBLATE_PAGURE_TOKEN

Налаштовує особистий жетон доступу Pagure для запитів щодо об’єднання на Pagure з використанням програмного інтерфейсу шляхом зміни PAGURE_TOKEN

WEBLATE_DEFAULT_PULL_MESSAGE

Налаштовує типовий заголовок та повідомлення для запитів щодо об’єднання, які створено за допомогою програмного інтерфейсу за допомогою зміни DEFAULT_PULL_MESSAGE

Дивись також

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

Налаштовує ключ до програмного інтерфейсу Akismet, див. AKISMET_API_KEY.

WEBLATE_GPG_IDENTITY

Налаштовує підписування внесків за допомогою GPG, див. WEBLATE_GPG_IDENTITY.

WEBLATE_URL_PREFIX

Налаштовує префікс адреси, на якій запущено 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_REQUIRED

WEBLATE_WEBSITE_REQUIRED

Налаштовує WEBSITE_REQUIRED

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.

Визначає обмеження на частоту використання програмного інтерфейсу. За типових налаштувань можна виконувати не більше 100 запитів на день для анонімних користувачів і не більше 5000 запитів на годину для користувачів, які пройшли розпізнавання у системі.

WEBLATE_ENABLE_HOOKS

Нове в версії 4.13.

Configures 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.

Параметри автоматичних пропозицій

Змінено в версії 4.13: У новій версії автоматичні пропозиції можна налаштувати за допомогою інтерфейсу користувача, див. Налаштовування автоматичних пропозицій.

Наявні змінні середовища буде імпортовано під час перенесення даних на Weblate 4.13, але внесення до них змін більше ні на що не впливатиме.

Параметри розпізнавання

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_BIND_PASSWORD

WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS
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

Вмикає розпізнавання за даними Active Directory в Azure, див. 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

Вмикає розпізнавання за даними Active Directory в Azure із підтримкою 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

Ідентифікатор

WEBLATE_SOCIAL_AUTH_SLACK_KEY
SOCIAL_AUTH_SLACK_SECRET

Вмикає розпізнавання за допомогою Slack, див. Ідентифікатор.

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 intergration.

Дивись також

OIDC (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

Назва вузла сервера PostgreSQL або його IP-адреса. Типове значення — database.

POSTGRES_PORT

Порт сервера PostgreSQL. Типового порту немає (використовується типове значення порту).

POSTGRES_SSL_MODE

Налаштовує спосіб обробки SSL у PostgreSQL при з’єднанні із сервером. Можливі варіанти можна знайти у розділі Опис режимів SSL

POSTGRES_ALTER_ROLE

Налаштовує назву ролі для зміни під час перенесення даних, див. Налаштовування Weblate на використання PostgreSQL.

POSTGRES_CONN_MAX_AGE

Нове в версії 4.8.1.

Тривалість життя з’єднання із базою даних у форматі цілого числа секунд. Скористайтеся значенням 0, щоб закривати з’єднання із базою даних наприкінці кожного запиту (це типова поведінка).

Вмикання відліку тривалості з’єднання типово спричиняє збільшення кількості відкритих з’єднань із базою даних. Будь ласка, скоригуйте налаштування бази даних, перш ніж вмикати цю можливість.

Приклад налаштувань:

environment:
    POSTGRES_CONN_MAX_AGE: 3600

Дивись також

CONN_MAX_AGE, Persistent connections

POSTGRES_DISABLE_SERVER_SIDE_CURSORS

Нове в версії 4.9.1.

Вимкнути вказівники на боці сервера у базі даних. Це необхідно у деяких конфігураціях pgbouncer.

Приклад налаштувань:

environment:
    POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1

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

WEBLATE_DATABASE_BACKUP

Налаштовує щоденне створення дампу бази даних за допомогою DATABASE_BACKUP. Типовим значенням є plain.

Налаштування сервера кешування

Наполегливо рекомендуємо користуватися Redis. Вам слід надати екземпляр Redis, якщо ви запускаєте Weblate у Docker.

Дивись також

Увімкніть кешування

REDIS_HOST

Назва вузла сервера Redis або IP-адреса. Типовою є cache.

REDIS_PORT

Порт сервера Redis. Типовим є 6379.

REDIS_DB

Номер бази даних Redis. Типовим є 1.

REDIS_PASSWORD

Пароль до сервера Redis. Типово, не використовується.

REDIS_PASSWORD_FILE

Шлях до файла, у якому міститься пароль для розпізнавання на сервері Redis.

Дивись також

REDIS_PASSWORD

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.

Дивись також

EMAIL_PORT

WEBLATE_EMAIL_HOST_USER

Користувач для розпізнавання для доступу до електронної пошти.

Дивись також

EMAIL_HOST_USER

WEBLATE_EMAIL_HOST_PASSWORD

Пароль для розпізнавання для доступу до електронної пошти.

Дивись також

EMAIL_HOST_PASSWORD

WEBLATE_EMAIL_HOST_PASSWORD_FILE

Шлях до файла, у якому міститься пароль для розпізнавання для доступу до електронної пошти.

Дивись також

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 оновлювати сховища і те, як це слід робити.

Дивись також

AUTO_UPDATE

Примітка

Це булевий параметр (скористайтеся значенням "true" або "false").

Інтеграція сайта

WEBLATE_GET_HELP_URL

Налаштовує GET_HELP_URL.

WEBLATE_STATUS_URL

Налаштовує STATUS_URL.

Налаштовує LEGAL_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, and 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

Визначає, які служби слід запускати всередині контейнера. Скористайтеся цим для масштабування <docker-scaling.

Визначено такі перевірки:

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 у основній системі залежить від ваших налаштувань 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 можна замінити favicon.

Підказка

Файли копіюються до відповідного місця під час запуску контейнера, отже після внесення змін до вмісту тому потрібен перезапуск 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, найімовірніше, за допомогою Файли нетипових налаштувань.

Дивись також

Налаштовування Weblate

Налаштування сервера PostgreSQL

У контейнері для PostgtreSQL використано типові налаштування PostgreSQL, він не зможе ефективно використати ваші ядра процесора або пам’ять. Для підвищення швидкодії рекомендуємо додатково налаштувати контейнер.

Налаштування можна скоригувати, як це описано у розділі Database Configuration на https://hub.docker.com/_/postgres. Налаштування, які відповідають вашому середовищу можна створити за допомогою https://pgtune.leopard.in.ua/.