Установлення за допомогою Docker¶
Завдяки розгортанню Weblate за допомогою Docker ви можете запустити свою особисту інстанцію Weblate за лічені секунди. Усі залежності Weblate вже включені. PostgreSQL налаштований як база даних за замовчуванням, а Valkey — як кешувальний бекенд.
Вимоги щодо обладнання¶
Weblate повинен без проблем працювати на будь-якому сучасному обладнанні, нижче наведено мінімальну конфігурацію, необхідну для запуску Weblate на одному хості (Weblate, база даних і веб-сервер):
3 ГБ оперативної пам’яті
2 ядра процесора
1 ГБ вільного місця на диску
Примітка
Реальні вимоги до встановленого вами Weblate значно залежать від розміру перекладів, які ним керуються.
Використання пам’яті¶
Чим більше пам’яті, тим краще - вона використовується для кешування на всіх рівнях (файлова система, база даних і Weblate). Для сотень компонентів перекладу рекомендується щонайменше 4 ГБ оперативної пам’яті.
Підказка
Для систем з меншим обсягом пам’яті, ніж рекомендовано, рекомендується використовувати Налаштування однопроцесорного Celery.
Використання CPU¶
Багато одночасних користувачів збільшують кількість необхідних ядер процесора.
Використання сховища¶
Типове використання сховища бази даних становить близько 300 МБ на 1 мільйон розміщених слів.
Обсяг пам’яті, необхідний для клонованих репозиторіїв варіюється, але Weblate намагається тримати його мінімальним, роблячи неглибокі клони.
Вузли¶
Для малих сайтів та сайтів середнього розміру (мільйони розміщених слів), усі складники Weblate (див. Огляд архітектури) можна запустити на одному вузлі.
Якщо кількість розміщених рядків зросте до сотень мільйонів, рекомендуємо розмістити базу даних на окремому вузлі (див. Налаштування бази даних для Weblate).
Установлення¶
Підказка
У наведених нижче прикладах припускається, що у вас є працездатне середовище Docker із встановленим docker-compose-plugin. Будь ласка, ознайомтеся із документацією до Docker, щоб отримати додаткові настанови.
Створює сервер розгортання Weblate за допомогою HTTP, тому ви маєте розмістити його за проксі-сервером із перериванням HTTPS. Ви також можете розгорнути систему з проксі-сервером HTTPS, див. Автоматична сертифікація SSL за допомогою Let’s Encrypt. Для більших конфігурацій, будь ласка, див. Горизонтальне масштабування.
Клонування сховища weblate-docker:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
Створіть файл
docker-compose.override.ymlз вашими параметрами. Із повним списком змінних середовища можна ознайомитися у розділі Змінні середовища Docker.services: weblate: image: weblate/weblate:latest 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 ports: - 80:8080
Примітка
Якщо
WEBLATE_ADMIN_PASSWORDне встановлено, для адміністративного користувача буде створено випадковий пароль, який буде показано під час першого запуску.У наданому прикладі Weblate очікуватиме на дані на порту 80. Змініть прив’язку портів у файлі
docker-compose.override.yml, щоб скоригувати цю типову поведінку.Запуск контейнерів Weblate:
docker compose up
Насолоджуйтеся розгорнутим Weblate. Доступ до нього можна отримати за допомогою порту 80 контейнера weblate.
Дивись також
Вибір реєстру образів Docker¶
Контейнери Weblate оприлюднено у таких реєстрах:
Docker Hub, див. https://hub.docker.com/r/weblate/weblate
Реєстр пакунків GitHub, див. https://github.com/WeblateOrg/docker/pkgs/container/weblate
Примітка
В усіх прикладах образи отримують з Docker Hub. Будь ласка, скоригуйте відповідним чином налаштування, щоб скористатися іншим реєстром.
Вибір образу концентратора Docker¶
Будь ласка, виберіть мітку, яка відповідає вашому середовищу і очікуванням:
Назва теґу |
Опис |
Варіант використання |
|---|---|---|
|
Стабільний випуск Weblate, відповідає найновішому випуску |
Оновлення-накладки у промисловому середовищі |
|
Стабільний випуск Weblate |
Rolling updates within a calendar year in a production environment |
|
Стабільний випуск Weblate |
Rolling updates within a monthly release in a production environment |
|
Стабільний випуск Weblate |
Надійний розгорнутий екземпляр у промисловому середовищі |
|
Стабільний випуск Weblate із змінами з гілки розробки у контейнері Docker (наприклад, із оновленими залежностями) |
Оновлення-накладки у проміжному тестовому середовищі |
|
Стабільний випуск Weblate із змінами з гілки розробки у контейнері Docker (наприклад, із оновленими залежностями) |
Надійний розгорнутий екземпляр у тестовому середовищі |
|
Версії Weblate у розробці з Git |
Поступові оновлення для тестування майбутніх функцій Weblate |
|
Версії Weblate у розробці з Git |
Надійний розгорнутий екземпляр для тестування новітніх можливостей Weblate |
Тестування усіх образів виконується перед оприлюдненням у нашій системі неперервної інтеграції, тому навіть версія bleeding має бути безпечною для користування.
Повний список оприлюднених міток можна знайти серед GitHub Packages
Контейнер Docker із підтримкою HTTPS¶
Будь ласка, ознайомтеся із розділом Установлення, щоб отримати загальні настанови щодо розгортання. У цьому розділі наведено лише відмінності від типової процедури.
Проксі-сервер, що завершує роботу SSL¶
SSL можна завершити поза контейнером Weblate. Для того, щоб це працювало належним чином, контейнеру потрібно передати декілька заголовків, щоб він знав про своє реальне оточення. Більш детально ці заголовки описані в Робота за реверсивним проксі-сервером.
location / {
proxy_pass http://127.0.0.1:8080;
proxy_read_timeout 3600s;
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;
}
WEBLATE_ENABLE_HTTPS=1
WEBLATE_IP_PROXY_HEADER=HTTP_X_FORWARDED_FOR
Використання власних сертифікатів SSL¶
Якщо у вас є власний сертифікат 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 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¶
Якщо ви хочете скористатися автоматично створеними сертифікатами 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 є доволі болючою процедурою і, у більшості випадків, не дає значних переваг.
Ви можете досягти цього фіксацією наявного 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 має бути автоматично перенесено на нову версію при першому запуску. Потреби у додаткових діях вручну виникнути не повинно.
Примітка
Direct upgrades are only supported for releases from the current or previous calendar year. If you need to upgrade from an older release, upgrade first to an intermediate version listed in Специфічні для версій настанови.
Ймовірно, вам також варто оновити сховище docker-compose, хоча, у більшості випадків, потреби у цьому немає. Див. Оновлення контейнера PostgreSQL щодо оновлення сервера PostgreSQL.
Оновлення контейнера PostgreSQL¶
Примітка
У PostgreSQL 18 було змінено каталог даних за замовчуванням усередині контейнера. У типовій старій конфігурації том бази даних підключався до каталогу /var/lib/postgresql/data, тоді як у PostgreSQL 18 за замовчуванням тепер використовується каталог /var/lib/postgresql.
Якщо ви оновлюєте систему з попередньої версії, або змініть у конфігурації Docker цільовий каталог монтування на новий шлях, або залиште старий цільовий каталог монтування та відповідно налаштуйте змінну PGDATA.
Якщо залишити стару цільову точку монтування без змін, не встановивши параметр PGDATA, це може призвести до того, що PostgreSQL записуватиме свої дані за межами постійного тома.
Докладнішу інформацію див. у документації до PGDATA.
У контейнерах 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, яка типово є назвою каталогу, яким у цій документації є
weblate-docker.Скоригуйте ваш
docker-compose.ymlтак, щоб у ньому було використано нову версію PostgreSQL.Запуск контейнера бази даних:
docker compose up -d database
Відновлення бази даних з резервної копії:
cat backup.sql | docker compose exec -T database psql --username weblate --dbname weblate
Підказка
Будь ласка, переконайтеся, що назва бази даних відповідає
POSTGRES_DB.(Необов’язкове) Оновити пароль для користувача Weblate. У цьому може виникнути потреба при перенесенні на PostgreSQL 14 або 15, оскільки спосіб зберігання паролів було змінено:
docker compose exec -T database psql --username weblate --dbname weblate -c "ALTER USER weblate WITH PASSWORD 'weblate'"
Підказка
Будь ласка, переконайтеся, що назва бази даних відповідає
POSTGRES_DB.Запуск решти контейнерів:
docker compose up -d
Вхід від імені адміністратора¶
Після налаштовування контейнера ви можете увійти до системи від імені користувача admin із використанням пароля, який надається у змінній WEBLATE_ADMIN_PASSWORD, або випадкового пароля, який створено під час першого запуску, якщо пароль не було встановлено за допомогою змінної.
Щоб скинути пароль admin, перезапустіть контейнер зі змінною WEBLATE_ADMIN_PASSWORD, значенням якої є новий пароль.
Дивись також
Кількість процесів і споживання пам’яті¶
Кількість робочих процесів для WSGI та Celery визначається автоматично на основі кількості ЦП. Це добре працює для більшості хмарних віртуальних машин, оскільки вони зазвичай мають невелику кількість ЦП і достатньо пам’яті.
Якщо на вашому комп’ютері багато процесорів і виникають проблеми нестачі пам’яті, спробуйте скоротити кількість обробників:
environment:
WEBLATE_WORKERS: 2
Ви також можете скоригувати окремі категорії обробників:
environment:
WEB_WORKERS: 4
CELERY_MAIN_OPTIONS: --concurrency 2
CELERY_NOTIFY_OPTIONS: --concurrency 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1
Використання пам’яті можна ще більше зменшити, запустивши лише один процес Celery:
environment:
CELERY_SINGLE_PROCESS: 1
Горизонтальне масштабування¶
Added in version 4.6.
Ви можете запускати кілька контейнерів Weblate для горизонтального масштабування служби. Том /app/data має бути спільним для всіх контейнерів. Радимо використовувати для нього кластерну файлову систему, зокрема GlusterFS. Том /app/cache має бути власним для кожного з контейнерів.
У кожного контейнера Weblate є визначена за допомогою змінної середовища WEBLATE_SERVICE роль. Будь ласка, точно виконуйте настанови з документації, оскільки деякі служби у кластері мають запускатися лише один раз, крім того, має значення порядок запуску служб.
Прикладом налаштувань у сховищі docker-compose є файл docker-compose-split.yml.
Змінні середовища Docker¶
Багато конфігурацій Weblate Налаштування можна встановити в контейнері Docker за допомогою змінних середовища, описаних нижче.
Якщо вам потрібно визначити параметр, який не буде відкрито за допомогою змінних середовища Docker, див. Налаштовування поза змінними середовища.
Передавання реєстраційних даних¶
Added in version 5.0.
У контейнері Weblate передбачено підтримку передавання реєстраційних даних у форматі файлів. Щоб скористатися цим, допишіть суфікс _FILE до змінної середовища і передайте файл реєстраційних даних через Docker.
Відповідний docker-compose.yml може виглядати так:
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¶
Налаштовує докладність журналу. Встановіть значення
DEBUG, щоб отримати докладніший журнал.Типовим значенням є
INFO, якщоWEBLATE_DEBUGувімкнено,DEBUGбуде використано, якщо увімкнено режим діагностики.Для скорочення розміру журналу скористайтеся
ERRORабоWARNING.
- WEBLATE_LOGLEVEL_DATABASE¶
Налаштовує докладність ведення журналу для запитів до бази даних.
- WEBLATE_LOG_GELF_HOST¶
Added in version 5.9.
Налаштовує віддалене ведення журналу за допомогою підключення GELF TCP. Можна використовувати для інтеграції з Graylog.
- WEBLATE_LOG_GELF_PORT¶
Added in version 5.9.
Використовуйте спеціальний порт для
WEBLATE_LOG_GELF_HOST, за умовчанням 12201.
- WEBLATE_SITE_TITLE¶
Налаштовує заголовок сайта, який буде показано у верхньому колонтитулі усіх сторінок.
- WEBLATE_SITE_DOMAIN¶
Налаштовує домен сайта. Цей параметр слід вказати обов’язково.
Включіть порт, якщо використовуєте нестандартний.
Приклад:
environment: WEBLATE_SITE_DOMAIN: example.com:8080
Дивись також
- 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_NOTIFY_ERROR¶
Чи надсилати адміністраторам повідомлення електронною поштою у разі помилки сервера. Увімкнено за замовчуванням.
Можливо, ви захочете скористатися іншим збирачем помилок, наприклад, Sentry або Rollbar, і вимкнути цей параметр.
Дивись також
- WEBLATE_SERVER_EMAIL¶
Адреса електронної пошти, з якої надіслано повідомлення про помилки.
Дивись також
- WEBLATE_DEFAULT_FROM_EMAIL¶
Налаштовує адресу для вихідних повідомлень електронної пошти.
- WEBLATE_ADMINS_CONTACT¶
Налаштовує
ADMINS_CONTACT.
- 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_CAPTCHA¶
Added in version 5.10.
Налаштовує, чи використовуватиметься captcha для реєстрації та інших неавтентифікованих дій, див.
REGISTRATION_CAPTCHA.Приклад:
environment: WEBLATE_REGISTRATION_CAPTCHA: 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¶
Added in version 4.16.
Налаштовує
REGISTRATION_REBIND.
- WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS¶
Added in version 5.16.1.
Налаштовує параметр
REGISTRATION_ALLOW_DISPOSABLE_EMAILS.Приклад:
environment: WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS: 1
- WEBLATE_PROJECT_WEB_RESTRICT_PRIVATE¶
Added in version 5.17.
Налаштовує
PROJECT_WEB_RESTRICT_PRIVATE.За замовчуванням увімкнено.
- WEBLATE_PROJECT_WEB_RESTRICT_ALLOWLIST¶
Added in version 5.17.
Configures
PROJECT_WEB_RESTRICT_ALLOWLIST.Expects a comma-separated list of trusted project slugs.
- WEBLATE_WEBHOOK_RESTRICT_PRIVATE¶
Added in version 5.17.
Налаштовує
WEBHOOK_RESTRICT_PRIVATE.За замовчуванням увімкнено.
- WEBLATE_WEBHOOK_PRIVATE_ALLOWLIST¶
Added in version 5.17.
Налаштовує
WEBHOOK_PRIVATE_ALLOWLIST.Expects a comma-separated list of trusted hostnames or domains.
- WEBLATE_ASSET_RESTRICT_PRIVATE¶
Added in version 2025.5.
Configures
ASSET_RESTRICT_PRIVATE.За замовчуванням увімкнено.
- WEBLATE_ASSET_PRIVATE_ALLOWLIST¶
Added in version 2025.5.
Configures
ASSET_PRIVATE_ALLOWLIST.Expects a comma-separated list of trusted hostnames or domains.
- 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_NGINX_IPV6¶
Added in version 5.17.
Визначає, чи буде вбудований сервер NGINX слухати запити на IPv6-адресах.
Підтримувані значення:
auto, щоб увімкнути IPv6-приймачі лише в тому випадку, якщо IPv6 доступний у середовищі виконання контейнера. Це значення встановлено за замовчуванням.on, щоб завжди вмикати IPv6-приймачі.off, щоб вимкнути IPv6-приймачі.
Приклад:
environment: WEBLATE_NGINX_IPV6: auto
- 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_IP_PROXY_OFFSET¶
Added in version 5.0.1.
Налаштовує
IP_PROXY_OFFSET.
- WEBLATE_USE_X_FORWARDED_PORT¶
Added in version 5.0.1.
Булеве значення, яке визначає, чи слід надавати перевагу використанню заголовка X-Forwarded-Port перед змінною середовища SERVER_PORT META. Слід використовувати, лише при роботі з проксі-сервером, який встановлює цей заголовок.
Дивись також
Примітка
Це булевий параметр (скористайтеся значенням
"true"або"false").
- WEBLATE_SECURE_PROXY_SSL_HEADER¶
A tuple representing an 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
- WEBLATE_REQUIRE_LOGIN¶
Вмикає
REQUIRE_LOGINдля примусового розпізнавання в усьому Weblate.Приклад:
environment: WEBLATE_REQUIRE_LOGIN: 1
- WEBLATE_LEGAL_INTEGRATION¶
Увімкнення модуля Юридичний модуль у розгортаннях Docker. За замовчуванням інтеграція вимкнена; щоб вимкнути її, залиште цю змінну невизначеною або порожньою.
Підтримувані значення:
tos-confirm— для увімкнення модуля юридичних питань та забезпечення підтвердження згоди з умовами надання послуг під час аутентифікації через соціальні мережі та для зареєстрованих користувачів.wllegal, щоб увімкнути цю інтеграцію та додатково завантажити розміщені шаблони юридичних документів ізwllegal. Ці шаблони використовуються сервісами, що належать компанії Weblate s.r.o., і не призначені для загального користування.
Щоб використовувати власні юридичні документи в Docker, перезапишіть шаблони в каталозі
/app/data/python/customize/templates/legal/documents; див. Заміна логотипа та інших статичних файлів.Recreate the Docker container after changing this environment variable, for example using docker compose up -d. Restarting an existing container does not apply changed environment values.
Приклад:
environment: WEBLATE_LEGAL_INTEGRATION: tos-confirm
- WEBLATE_LEGAL_DOCUMENT_CSS_CLASS¶
Configures
LEGAL_DOCUMENT_CSS_CLASSin Docker deployments withWEBLATE_LEGAL_INTEGRATIONenabled.Set this to an empty string to disable the built-in legal document numbering.
Приклад:
environment: WEBLATE_LEGAL_DOCUMENT_CSS_CLASS: ""
- WEBLATE_LEGAL_HIDDEN_DOCUMENTS¶
Configures
LEGAL_HIDDEN_DOCUMENTSin Docker deployments withWEBLATE_LEGAL_INTEGRATIONenabled.Provide a comma-separated list of legal document page identifiers.
Приклад:
environment: WEBLATE_LEGAL_HIDDEN_DOCUMENTS: contracts
- WEBLATE_PUBLIC_ENGAGE¶
Увімкнути параметр
PUBLIC_ENGAGE.
- WEBLATE_GOOGLE_ANALYTICS_ID¶
Налаштовує ідентифікатор для Google Analytics зміною
GOOGLE_ANALYTICS_ID.
- WEBLATE_DEFAULT_PULL_MESSAGE¶
Налаштовує назву та повідомлення за замовчуванням для запитів на отримання через API шляхом зміни
DEFAULT_PULL_MESSAGE.Дивись також
- WEBLATE_SIMPLIFY_LANGUAGES¶
Налаштовує правила спрощення мов, див.
SIMPLIFY_LANGUAGES.
- WEBLATE_HIDE_SHARED_GLOSSARY_COMPONENTS¶
Приховує компоненти глосарію під час спільного використання з іншими проектами, див.
HIDE_SHARED_GLOSSARY_COMPONENTS.
- WEBLATE_DEFAULT_ACCESS_CONTROL¶
Налаштовує типове Керування доступом для нових проєктів, див.
DEFAULT_ACCESS_CONTROL.
- WEBLATE_DEFAULT_TRANSLATION_REVIEW¶
Added in version 5.16.
Налаштовує значення за замовчуванням для Увімкнути рецензії, яке за замовчуванням вимкнено.
- WEBLATE_DEFAULT_SOURCE_REVIEW¶
Added in version 5.16.
Налаштовує значення за замовчуванням для Увімкнути рецензування початкових даних, яке за замовчуванням вимкнено.
- 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_DEFAULT_AUTOCLEAN_TM¶
Налаштовує
DEFAULT_AUTOCLEAN_TM.
- WEBLATE_COMMIT_PENDING_HOURS¶
Налаштовує значення за замовчуванням для Вік змін для подання для нових компонентів; див.
COMMIT_PENDING_HOURS.
- 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¶
- WEBLATE_CSP_FORM_SRC¶
Дозволяє налаштувати HTTP-заголовок Content-Security-Policy.
- WEBLATE_LICENSE_FILTER¶
Налаштовує
LICENSE_FILTER.
- WEBLATE_LICENSE_REQUIRED¶
Налаштовує
LICENSE_REQUIRED.
- WEBLATE_WEBSITE_REQUIRED¶
Налаштовує
WEBSITE_REQUIRED.
- WEBLATE_VERSION_DISPLAY¶
Налаштовує
VERSION_DISPLAY.
- 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¶
Added in version 4.6.
Налаштовує обмеження частоти.
Підказка
Ви можете встановити налаштування для будь-яких діапазонів обмежень частоти. Для цього додайте префікс
WEBLATE_до будь-якого з параметрів, які описано у Обмеження частоти.
- WEBLATE_API_RATELIMIT_ANON¶
- WEBLATE_API_RATELIMIT_USER¶
Added in version 4.11.
Налаштовує обмеження швидкості API. За замовчуванням використовується значення
100/деньдля анонімних користувачів та5000/годинудля автентифікованих користувачів.Дивись також
- WEBLATE_ENABLE_HOOKS¶
Added in version 4.13.
Налаштовує
ENABLE_HOOKS.
- WEBLATE_ENABLE_AVATARS¶
Added in version 4.6.1.
Налаштовує
ENABLE_AVATARS.
- WEBLATE_AVATAR_URL_PREFIX¶
Added in version 4.15.
Налаштовує
AVATAR_URL_PREFIX.
- WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH¶
Added in version 4.9.
Налаштовує
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH.
- WEBLATE_SSH_EXTRA_ARGS¶
Added in version 4.9.
Налаштовує
SSH_EXTRA_ARGS.
- WEBLATE_BORG_EXTRA_ARGS¶
Added in version 4.9.
Налаштовує
BORG_EXTRA_ARGSяк список відокремлених комами аргументів.Приклад:
environment: WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
- WEBLATE_ENABLE_SHARING¶
Added in version 4.14.1.
Налаштовує
ENABLE_SHARING.
- WEBLATE_SUPPORT_STATUS_CHECK¶
Added in version 5.5.
Налаштовує
SUPPORT_STATUS_CHECK.
- WEBLATE_EXTRA_HTML_HEAD¶
Added in version 4.15.
Налаштовує
EXTRA_HTML_HEAD.
- WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE¶
Added in version 4.15.
Налаштовує
PRIVATE_COMMIT_EMAIL_TEMPLATE.
- WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN¶
Added in version 4.15.
Налаштовує
PRIVATE_COMMIT_EMAIL_OPT_IN.
- WEBLATE_PRIVATE_COMMIT_NAME_TEMPLATE¶
Added in version 5.16.
Налаштовує
PRIVATE_COMMIT_NAME_TEMPLATE.
- WEBLATE_PRIVATE_COMMIT_NAME_OPT_IN¶
Added in version 5.16.
Налаштовує
PRIVATE_COMMIT_NAME_OPT_IN.
- WEBLATE_UNUSED_ALERT_DAYS¶
Added in version 4.17.
Налаштовує
UNUSED_ALERT_DAYS.
- WEBLATE_UPDATE_LANGUAGES¶
Added in version 4.3.2.
Налаштовує
UPDATE_LANGUAGES.
- WEBLATE_VCS_ALLOW_HOSTS¶
Added in version 5.15.
Налаштовує
VCS_ALLOW_HOSTS.
- WEBLATE_VCS_ALLOW_SCHEMES¶
Added in version 5.15.
Налаштовує
VCS_ALLOW_SCHEMES.
- WEBLATE_VCS_RESTRICT_PRIVATE¶
Added in version 5.17.
Налаштовує
VCS_RESTRICT_PRIVATE.
- WEBLATE_VCS_CLONE_DEPTH¶
Added in version 5.4.
Налаштовує
VCS_CLONE_DEPTH.
- WEBLATE_VCS_API_DELAY¶
Added in version 5.4.
Налаштовує
VCS_API_DELAY.
- WEBLATE_VCS_API_TIMEOUT¶
Added in version 5.15.
Налаштовує
VCS_API_TIMEOUT.
- WEBLATE_CORS_ALLOWED_ORIGINS¶
Added in version 4.16.
Уможливити запит CORS до програмного інтерфейсу вказаного походження.
Приклад:
environment: WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
- WEBLATE_CORS_ALLOW_ALL_ORIGINS¶
Added in version 5.6.1: Дозволяє запити CORS до програмного інтерфейсу з будь-якого початкового вузла.
- WEBLATE_WEBSITE_ALERTS_ENABLED¶
Added in version 5.17.
Налаштовує
WEBSITE_ALERTS_ENABLED.
- CLIENT_MAX_BODY_SIZE¶
Added in version 4.16.3.
Налаштовує максимальний розмір вмісту, який приймається вбудованим вебсервером.
environment: CLIENT_MAX_BODY_SIZE: 200m
Підказка
У назві цієї змінної навмисне пропущено префікс
WEBLATE_, оскільки вона є змінною спільного використання із стороннім контейнером, що використовується у Автоматична сертифікація SSL за допомогою Let’s Encrypt.
- WEBLATE_TRANSLATION_UPLOAD_MAX_SIZE¶
Configures
TRANSLATION_UPLOAD_MAX_SIZE.The value is in bytes.
- WEBLATE_COMPONENT_ZIP_UPLOAD_MAX_SIZE¶
Configures
COMPONENT_ZIP_UPLOAD_MAX_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_UPLOAD_MAX_SIZE¶
Configures
PROJECT_BACKUP_UPLOAD_MAX_SIZE.The value is in bytes. Make sure
CLIENT_MAX_BODY_SIZEis also large enough for uploaded backup files.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_MEMBERS¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_MEMBERS.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO.
Реєстраційні дані сайтів, де зберігається код¶
In the Docker container, the code hosting credentials can be configured either in separate variables or using a Python dictionary to set them at once. The following examples are for Запити щодо злиття GitHub, but apply to all Інтеграція з системою керування версіями with appropriately changed variable names.
Важливо
Усі назви змінних середовища повинні містити префікс WEBLATE_. Наприклад, щоб налаштувати облікові дані GitHub, використовуйте WEBLATE_GITHUB_USERNAME, а не GITHUB_USERNAME. Це стосується незалежно від того, чи ви налаштовуєте запити на зняття даних, чи будь-яку іншу інтеграцію VCS.
Приклад конфігурації для пул-реквестів GitHub може виглядати так:
WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com
Буде використано так:
GITHUB_CREDENTIALS = {
"api.github.com": {
"username": "api-user",
"token": "api-token",
}
}
Крім того, словник Python може бути наданий у вигляді рядка:
WEBLATE_GITHUB_CREDENTIALS='{ "api.github.com": { "username": "api-user", "token": "api-token", } }'
Або шлях до файлу, що містить словник Python:
echo '{ "api.github.com": { "username": "api-user", "token": "api-token", } }' > /path/to/github-credentials
WEBLATE_GITHUB_CREDENTIALS_FILE='/path/to/github-credentials'
- WEBLATE_GITHUB_USERNAME¶
- WEBLATE_GITHUB_TOKEN¶
- WEBLATE_GITHUB_HOST¶
- WEBLATE_GITHUB_CREDENTIALS¶
Configures Запити щодо злиття GitHub by changing
GITHUB_CREDENTIALS.Дивись також
- WEBLATE_GITLAB_USERNAME¶
- WEBLATE_GITLAB_TOKEN¶
- WEBLATE_GITLAB_HOST¶
- WEBLATE_GITLAB_CREDENTIALS¶
Configures Запити щодо об’єднання GitLab by changing
GITLAB_CREDENTIALS.Дивись також
- WEBLATE_GITEA_USERNAME¶
- WEBLATE_GITEA_TOKEN¶
- WEBLATE_GITEA_HOST¶
- WEBLATE_GITEA_CREDENTIALS¶
Configures Запити щодо злиття Gitea by changing
GITEA_CREDENTIALS.Дивись також
- WEBLATE_PAGURE_USERNAME¶
- WEBLATE_PAGURE_TOKEN¶
- WEBLATE_PAGURE_HOST¶
- WEBLATE_PAGURE_CREDENTIALS¶
Configures Запити щодо об’єднання Pagure by changing
PAGURE_CREDENTIALS.Дивись також
- WEBLATE_BITBUCKETSERVER_USERNAME¶
- WEBLATE_BITBUCKETSERVER_TOKEN¶
- WEBLATE_BITBUCKETSERVER_HOST¶
- WEBLATE_BITBUCKETSERVER_CREDENTIALS¶
Configures Запити на вилучення Bitbucket Data Center by changing
BITBUCKETSERVER_CREDENTIALS.
- WEBLATE_BITBUCKETCLOUD_USERNAME¶
- WEBLATE_BITBUCKETCLOUD_WORKSPACE¶
- WEBLATE_BITBUCKETCLOUD_TOKEN¶
- WEBLATE_BITBUCKETCLOUD_HOST¶
- WEBLATE_BITBUCKETCLOUD_CREDENTIALS¶
Configures Запити щодо об’єднання Bitbucket Cloud by changing
BITBUCKETCLOUD_CREDENTIALS.Дивись також
- WEBLATE_AZURE_DEVOPS_USERNAME¶
- WEBLATE_AZURE_DEVOPS_ORGANIZATION¶
- WEBLATE_AZURE_DEVOPS_TOKEN¶
- WEBLATE_AZURE_DEVOPS_HOST¶
- WEBLATE_AZURE_DEVOPS_CREDENTIALS¶
Configures Запити щодо об’єднання Azure DevOps by changing
AZURE_DEVOPS_CREDENTIALS.Дивись також
Параметри автоматичних пропозицій¶
Змінено в версії 4.13: У новій версії автоматичні пропозиції можна налаштувати за допомогою інтерфейсу користувача, див. Автоматичні пропозиції.
Наявні змінні середовища буде імпортовано під час перенесення даних на Weblate 4.13, але внесення до них змін більше ні на що не впливатиме.
Параметри розпізнавання¶
Підказка
Автентифікацію на основі електронної пошти ввімкнено, якщо її не вимкнуто WEBLATE_NO_EMAIL_AUTH.
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¶
Вмикає Розпізнавання EE GitHub.
Bitbucket¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_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.
Microsoft Entra ID¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET¶
Увімкнути аутентифікацію за допомогою Microsoft Entra ID, див.: Microsoft Entra ID.
Microsoft Entra ID з підтримкою орендарів¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID¶
Увімкнути аутентифікацію Microsoft Entra ID із підтримкою орендарів, див.: Microsoft Entra ID.
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, див Keycloak - Open Source Red Hat SSO.
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ID_KEY¶
Added in version 5.17.
Визначає, яке поле використовується як унікальний ідентифікатор користувача з Keycloak. За замовчуванням встановлено значення
email.Підказка
Коли Keycloak налаштовано на абстракцію від сторонніх IDP, вам потрібно буде налаштувати
WEBLATE_CSP_FORM_SRCдля домену стороннього IDP.Приклад, коли Keycloak передає автентифікацію до Microsoft.¶environment: WEBLATE_CSP_FORM_SRC: login.microsoftonline.com
Постачальники Linux¶
Ви можете увімкнути розпізнавання за допомогою служб розпізнавання постачальників Linux, встановивши для вказаних нижче змінних довільне значення.
- WEBLATE_SOCIAL_AUTH_FEDORA¶
- WEBLATE_SOCIAL_AUTH_OPENSUSE¶
- WEBLATE_SOCIAL_AUTH_OPENINFRA¶
- WEBLATE_SOCIAL_AUTH_UBUNTU¶
Ідентифікатор¶
- WEBLATE_SOCIAL_AUTH_SLACK_KEY¶
- WEBLATE_SOCIAL_AUTH_SLACK_SECRET¶
Вмикає розпізнавання за допомогою Slack, див. Ідентифікатор.
OpenID Connect¶
Added in version 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¶
- WEBLATE_SOCIAL_AUTH_OIDC_TITLE¶
- WEBLATE_SOCIAL_AUTH_OIDC_IMAGE¶
Налаштовує типову інтеграцію з OpenID Connect.
Дивись також
Fedora OpenID Connect¶
Added in version 5.15.
- WEBLATE_SOCIAL_AUTH_FEDORA_OIDC_KEY¶
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_SECURITY_CONFIG¶
Added in version 2026.6.
SAML security configuration as a JSON object, passed to
SOCIAL_AUTH_SAML_SECURITY_CONFIG. For example, to disable therequestedAuthnContext(needed for some identity providers such as Microsoft Entra ID with multi-factor authentication):environment: WEBLATE_SAML_SECURITY_CONFIG: '{"requestedAuthnContext": false}'
Дивись також
- WEBLATE_SAML_ID_ATTR_FULL_NAME¶
- WEBLATE_SAML_ID_ATTR_FIRST_NAME¶
- WEBLATE_SAML_ID_ATTR_LAST_NAME¶
- WEBLATE_SAML_ID_ATTR_USERNAME¶
- WEBLATE_SAML_ID_ATTR_EMAIL¶
- WEBLATE_SAML_ID_ATTR_USER_PERMANENT_ID¶
Added in version 4.18.
Прив’язка атрибутів SAML.
Інші параметри розпізнавання¶
- WEBLATE_NO_EMAIL_AUTH¶
Вимикає розпізнавання за допомогою електронної пошти, якщо встановлено будь-яке значення. Див. Вимикання розпізнавання за паролем.
Налаштування бази даних PostgreSQL¶
База даних створюється docker-compose.yml, отже ці параметри стосуються одразу контейнерів Weblate і PostgreSQL.
Дивись також
- POSTGRES_PASSWORD¶
Пароль до PostgreSQL.
Дивись також
- POSTGRES_USER¶
Ім’я користувача PostgreSQL.
- POSTGRES_DB¶
Назва бази даних PostgreSQL.
- POSTGRES_HOST¶
Назва вузла сервера PostgreSQL або його IP-адреса. Типове значення —
database.
- POSTGRES_PORT¶
Порт сервера PostgreSQL. Типового порту немає (використовується типове значення порту).
- POSTGRES_SSL_MODE¶
Налаштовує спосіб обробки SSL у PostgreSQL при з’єднанні із сервером. Можливі варіанти можна знайти у розділі Опис режимів SSL.
- POSTGRES_ALTER_ROLE¶
Налаштовує назву ролі PostgreSQL для зміни під час перенесення бази даних, див. Налаштовування Weblate на використання PostgreSQL.
Типовим є значення
POSTGRES_USER.
- POSTGRES_CONN_MAX_AGE¶
Added in version 4.8.1.
Час життя з’єднання з базою даних, як ціле число секунд. Використовуйте 0, щоб закривати з’єднання з базою даних в кінці кожного запиту.
Змінено в версії 5.1: Типова поведінка передбачає необмежену кількість постійних з’єднань з базою даних.
Вмикання відліку тривалості з’єднання типово спричиняє збільшення кількості відкритих з’єднань із базою даних. Будь ласка, скоригуйте налаштування бази даних, перш ніж вмикати цю можливість.
Приклад налаштувань:
environment: POSTGRES_CONN_MAX_AGE: 3600
Дивись також
- POSTGRES_DISABLE_SERVER_SIDE_CURSORS¶
Added in version 4.9.1.
Вимкнути вказівники на боці сервера у базі даних. Це необхідно у деяких конфігураціях pgbouncer.
Приклад налаштувань:
environment: POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
- WEBLATE_DATABASES¶
Added in version 5.1.
Set to false to disable environment based configuration of the database connection. Use Перевизначення параметрів з тому даних to configure the database connection manually.
Параметри резервного копіювання бази даних¶
Дивись також
- WEBLATE_DATABASE_BACKUP¶
Налаштовує щоденне створення дампу бази даних за допомогою
DATABASE_BACKUP. Типовим значенням єplain.
Налаштування сервера сховища даних¶
Використання Valkey або Redis є обов’язковим для контейнера Weblate, і вам потрібно надати параметри підключення під час запуску Weblate в Docker.
Дивись також
- REDIS_HOST¶
Ім’я хоста або IP-адреса сервера сховища даних. За замовчуванням
cache.
- REDIS_PORT¶
Порт сервера сховища даних. За замовчуванням
6379.
- REDIS_DB¶
Номер бази даних сховища даних, за замовчуванням
1.
- REDIS_USER¶
Added in version 5.13: Користувач бази даних сховища даних, не використовується за замовчуванням.
- REDIS_PASSWORD¶
Пароль сервера сховища даних, який не використовується за замовчуванням.
Дивись також
- REDIS_TLS¶
Вмикає використання SSL для підключення до сховища даних.
- REDIS_VERIFY_SSL¶
Можна використовувати для вимкнення перевірки SSL-сертифіката для підключення до сховища даних.
Налаштування сервера електронної пошти¶
Для забезпечення роботи з надсилання електронної пошти вам слід вказати поштовий сервер.
Приклад налаштувань 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.
- WEBLATE_PASSWORD_RESET_URL¶
Налаштовує
PASSWORD_RESET_URL.
Збирання звітів щодо помилок та стеження за швидкодією¶
Рекомендуємо збирати помилки щодо встановленого екземпляра систематично, див. Збирання звітів щодо помилок та стеження за швидкодією.
Щоб увімкнути підтримку Rollbar, встановіть таке:
- ROLLBAR_KEY¶
Ваш ключ доступу до сервера надсилання Rollbar.
- ROLLBAR_ENVIRONMENT¶
Ваше середовище Rollbar, типове значення —
production.
Щоб увімкнути підтримку Sentry, встановіть таке:
- SENTRY_DSN¶
Ваш DSN Sentry, див.
SENTRY_DSN.
- SENTRY_ENVIRONMENT¶
Ваше середовище Sentry (необов’язкове), типовим значенням є
WEBLATE_SITE_DOMAIN.
- SENTRY_MONITOR_BEAT_TASKS¶
Чи слід моніторити завдання Celery Beat за допомогою Sentry, за замовчуванням значення
True.
- SENTRY_TRACES_SAMPLE_RATE¶
Налаштовує
SENTRY_TRACES_SAMPLE_RATE.Приклад:
environment: SENTRY_TRACES_SAMPLE_RATE: 0.5
- SENTRY_PROFILES_SAMPLE_RATE¶
Налаштовує
SENTRY_PROFILES_SAMPLE_RATE.Приклад:
environment: SENTRY_PROFILES_SAMPLE_RATE: 0.5
- SENTRY_SEND_PII¶
Налаштовує
SENTRY_SEND_PII.
To enable support for Google Cloud Error Reporting, set following:
- GOOGLE_CLOUD_ERROR_REPORTING_ENABLED¶
Enables
GOOGLE_CLOUD_ERROR_REPORTING, defaults toFalse.
- GOOGLE_CLOUD_ERROR_REPORTING_PROJECT¶
Google Cloud project to report errors to. If omitted, the Google client uses application default credentials to detect the project.
- GOOGLE_CLOUD_ERROR_REPORTING_SERVICE¶
Service name to use in Google Cloud Error Reporting, defaults to
weblate.
To enable support for OpenTelemetry tracing, set following:
- OPENTELEMETRY_ENABLED¶
Enables
OPENTELEMETRY_ENABLED, defaults toFalse.
- OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT¶
Configures
OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT.Приклад:
environment: OPENTELEMETRY_ENABLED: true OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT: https://collector.example.com/v1/traces OPENTELEMETRY_TRACES_SAMPLE_RATE: 0.1
- OPENTELEMETRY_EXPORTER_OTLP_HEADERS¶
Configures
OPENTELEMETRY_EXPORTER_OTLP_HEADERSas a comma-separatedname:valuemapping.
- OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTES¶
Configures
OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTESas a comma-separatedname:valuemapping.
- OPENTELEMETRY_SERVICE_NAME¶
Configures
OPENTELEMETRY_SERVICE_NAME.
- OPENTELEMETRY_TRACES_SAMPLE_RATE¶
Configures
OPENTELEMETRY_TRACES_SAMPLE_RATE.
CDN локалізації¶
- WEBLATE_LOCALIZE_CDN_URL¶
- WEBLATE_LOCALIZE_CDN_PATH¶
Added in version 4.2.1.
Configuration for CDN add-ons, including CDN локалізації JavaScript and CDN файлів перекладу.
WEBLATE_LOCALIZE_CDN_PATHє шляхом у контейнері. Сховище даних має перебувати на постійному томі, а не у тимчасовому сховищі зберігання даних.Одним із можливих варіантів є зберігання даних у каталозі даних Weblate:
environment: WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/ WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn
Примітка
You are responsible for setting up serving of the files generated by Weblate, it only stores the files in configured location. See CDN локалізації for secure serving guidance.
Changing enabled apps, checks, formats, add-ons, machinery, or autofixes¶
The built-in configuration of enabled checks, file formats, add-ons, machinery, 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_FORMATS¶
- WEBLATE_REMOVE_FORMATS¶
- WEBLATE_ADD_ADDONS¶
- WEBLATE_REMOVE_ADDONS¶
- WEBLATE_ADD_MACHINERY¶
Added in version 5.6.1.
- WEBLATE_REMOVE_MACHINERY¶
Added in version 5.6.1.
Приклад:
environment:
WEBLATE_REMOVE_AUTOFIX: weblate.trans.autofixes.whitespace.SameBookendingWhitespace
WEBLATE_REMOVE_FORMATS: weblate.formats.ttkit.PoFormat
WEBLATE_ADD_ADDONS: customize.addons.MyAddon,customize.addons.OtherAddon
Параметри контейнерів¶
- WEBLATE_WORKERS¶
Added in version 4.6.1.
Базова кількість процесів-обробників, які працюють у контейнері. Якщо не вказано, визначається автоматично при запуску контейнера на основі кількості доступних ядер процесора.
Використовується для визначення
CELERY_MAIN_OPTIONS,CELERY_NOTIFY_OPTIONS,CELERY_MEMORY_OPTIONS,CELERY_TRANSLATE_OPTIONS,CELERY_BACKUP_OPTIONS,CELERY_BEAT_OPTIONS, andWEB_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
- CELERY_SINGLE_PROCESS¶
Added in version 5.7.1: Цю змінну можна встановити у
1, щоб запустити лише один процес celery. Це зменшує використання пам’яті, але може вплинути на продуктивність Weblate.environment: CELERY_SINGLE_PROCESS: 1
Дивись також
- WEB_WORKERS¶
Налаштуйте, скільки WSGI робітників має бути виконано.
За замовчуванням воно дорівнює половині від
WEBLATE_WORKERS, але завжди дорівнює щонайменше 2.Приклад:
environment: WEB_WORKERS: 4
Змінено в версії 5.13:
WEB_WORKERSналаштовує, скільки робочих процесів використовуватиме granian.
- WEBLATE_SERVICE¶
Визначає, які служби мають виконуватися всередині контейнера. Використовуйте це для Горизонтальне масштабування.
Визначено такі перевірки:
celery-beatПланувальник завдань Celery, має бути запущено лише один екземпляр. Цей контейнер також відповідає за перенесення структури бази даних, його має бути запущено перед усіма іншими.
celery-backupОбробник Celery для резервного копіювання, має бути запущено лише один екземпляр.
celery-celeryЗагальний обробник Celery.
celery-memoryОбробник пам’яті перекладів Celery.
celery-notifyОбробник сповіщень Celery.
celery-translateОбробник автоматичних перекладів Celery.
webВебсервер.
Дивись також
- WEBLATE_ANUBIS_URL¶
Added in version 5.11.4.
URL-адреса сервера Anubis для обробки автентифікації підзапитів. Це може бути корисно для фільтрації вхідних HTTP-запитів з використанням доказів роботи, щоб зупинити ШІ-сканери. Щоб це працювало, вам потрібно налаштувати Anubis для автентифікації за підзапитом.
Дивись також
Томи контейнера Docker¶
Контейнер Weblate експортує два томи (data та cache).
Примітка
Інші контейнери служб (такі як PostgreSQL або Valkey) також мають свої томи даних і необхідні для підтримки персистентності Weblate.
Контейнер PostgreSQL зберігає базу даних у томі /var/lib/postgresql, а Valkey — у томі /data. Контейнер Valkey не зберігає дані за замовчуванням і потребує додаткового налаштування для забезпечення збереження.
Базуйте свою конфігурацію на прикладах, наданих Weblate, або зверніться до їхньої документації для отримання додаткової інформації.
Том data монтується як /app/data і використовується для зберігання постійних даних Weblate, таких як клоновані сховища, або для налаштування встановлення Weblate. DATA_DIR більш детально описує, що тут зберігається.
Том data також є місцем для зберігання налаштувань Weblate, таких як Перевизначення параметрів з тому даних, Заміна логотипа та інших статичних файлів або Налаштування коду.
Розташування тому Docker у основній системі залежить від ваших налаштувань Docker, але, зазвичай, він зберігається у /var/lib/docker/volumes/weblate-docker_weblate-data/_data/. (шлях складається з назви вашого каталогу docker-compose, назви контейнера та назви тому).
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, but
the mount has to allow execution because Weblate stores generated helper files
there.
When mounting /app/cache explicitly as tmpfs in Docker Compose,
enable execution:
tmpfs:
- /app/cache:exec
When also setting ownership options, keep the exec option:
tmpfs:
- /app/cache:exec,uid=1000,gid=1000
Під час створення томів власноруч, каталоги повинні належати UID 1000, як користувачеві, що використовується всередині контейнера.
Контейнер Weblate також можна виконувати з кореневою файловою системою лише для читання. У цьому випадку слід змонтувати два додаткових томи tmpfs: /tmp і /run.
Дивись також
Призначена лише для читання коренева файлова система¶
Added in version 4.18.
Якщо запущено контейнер із призначеної лише для читання кореневої файлової системи, потрібні два додаткових томи tmpfs — /tmp і /run.
Налаштовування поза змінними середовища¶
Docker environment variables призначені для відображення більшості configuration settings, що стосуються встановлень Weblate.
Якщо ви знайдете параметр, який не відображається як змінна середовища, і вважаєте, що він має бути, не соромтеся ask for it to be exposed in a future version of Weblate.
Якщо вам потрібно змінити параметр, який не відображається як змінна середовища Docker, ви все одно можете це зробити, або from the data volume або extending the Docker image.
Дивись також
Перевизначення параметрів з тому даних¶
Ви можете створити файл за адресою /app/data/settings-override.py, тобто в корені data volume, щоб розширити або перезаписати налаштування, визначені за допомогою змінних середовища.
Перевизначення параметрів за допомогою розширення образу Docker¶
Щоб перевизначити параметри на рівні образу Docker, а не з тому даних, виконайте такі дії:
Додайте до вашого пакунка модуль, який імпортує усі параметри з
weblate.settings_docker.Наприклад, у структурі пакунка-прикладу, яку визначено у Створення модуля Python, ви можете створити файл
weblate_customization/weblate_customization/settings.pyіз таким початковим кодом:from weblate.settings_docker import *
Створіть нетиповий
Dockerfile, який успадковуватиме офіційний образ Docker Weblate, а потім встановіть ваш пакунок і вкажіть для змінної середовищаDJANGO_SETTINGS_MODULEваш модуль параметрів:FROM weblate/weblate USER root COPY weblate_customization /usr/src/weblate_customization RUN source /app/venv/bin/activate && uv pip install --no-cache-dir /usr/src/weblate_customization ENV DJANGO_SETTINGS_MODULE=weblate_customization.settings USER 1000
Замість використання офіційного образу Docker Weblate, зберіть нетиповий образ з цього файла
Dockerfile.Немає простого способу зробити це за допомогою
docker-compose.override.yml. Можна було б додатиbuild: .до вузлаweblateу цьому файлі, але тоді б ваш нетиповий образ було б позначено якweblate/weblateу вашій системі, що призвело б до проблем.Тому, замість використання
docker-compose.ymlбезпосередньо з офіційного сховища, без змін, і його розширення за допомогоюdocker-compose.override.yml, вам варто створити копію офіційного файлаdocker-compose.ymlі внести до неї зміни, замінившиimage: weblate/weblateнаbuild: ..Див. Compose file build reference, щоб дізнатися більше про збирання образів з початкового коду за допомогою
docker-compose.Розширте ваш модуль нетипових параметрів, визначивши або перевизначивши параметри.
Ви можете визначити параметри до або після інструкції з імпортування, наведеної вище, щоб визначити, які параметри мають пріоритет. Параметри, які визначено до інструкції з імпортування, може бути перевизначено змінними середовища та перевизначеннями параметрів у томі даних. Параметри, які визначено після інструкції з імпортування, не може бути перевизначено.
Ви можете піти і далі. Наприклад, ви можете відтворити деякі з речей, які робить
weblate.docker_settings, зокрема, надання доступу до параметрів через змінні середовища або уможливлення перевизначення параметрів з файлів Python у томі даних.
Заміна логотипа та інших статичних файлів¶
Статичні файли, які постачаються із 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
Налаштування коду¶
Примітка
Внутрішній API Weblate може суттєво відрізнятися між випусками та не призначений для стабільного використання. Будь ласка, переглядайте свій власний код, що взаємодіє з внутрішніми компонентами Weblate, під час кожного оновлення.
Ви можете розмістити додатковий код Python у /app/data/python/customize (див. Томи контейнера Docker). Він вже встановлений як програма Django всередині Weblate (це використовується для налаштування шаблонів та статичних файлів, як описано вище).
Це можна використовувати для розміщення будь-якого коду (наприклад, Написання власних перевірок) або для додавання власних завдань обслуговування до планувальника завдань Celery.
/app/data/python/customize/tasks.py.¶"""Custom scheduled task."""
import subprocess # noqa: S404
from celery.schedules import crontab
from weblate.utils.celery import app
@app.task
def custom_task() -> None:
"""Execute custom task code."""
subprocess.run(["sleep", "1"], check=True) # noqa: S607
@app.on_after_finalize.connect
def setup_periodic_tasks(sender, **kwargs) -> None:
"""Configure when periodic task is triggered."""
sender.add_periodic_task(
crontab(hour=1, minute=0), custom_task.s(), name="custom-task"
)
Інтеграція контейнерів сторонніх розробників¶
Налаштування Weblate Docker можна розширити додатковими контейнерами для надання додаткових послуг, таких як машинний переклад, перевірка орфографії або інші інструменти, що покращують робочий процес перекладу. Ці послуги можна інтегрувати у вашу конфігурацію Docker Compose і використовувати разом із Weblate.
Під час додавання контейнерів сторонніх розробників враховуйте наступне:
Підключення до мережі: Забезпечте взаємодію контейнерів один з одним, розмістивши їх в одній мережі Docker
Збереження даних: Використовуйте томи для служб, яким потрібно зберігати дані
Безпека: Налаштуйте відповідні засоби керування доступом та уникайте розкриття непотрібних портів
Інтеграція Docker-контейнерів LibreTranslate¶
LibreTranslate — це безкоштовна служба машинного перекладу з відкритим кодом, яку можна розмістити на власному сервері. Інтеграція з Weblate забезпечує можливість машинного перекладу в автономному режимі без використання зовнішніх служб.
Ви можете інтегрувати службу LibreTranslate у своє розгортання Weblate, включивши її у файл docker-compose.override.yml. Оскільки вона працює в мережі Docker, вона доступна тільки для Weblate і не відкрита для загального доступу в Інтернеті.
Базове налаштування за допомогою docker-compose.override.yml:
services:
libretranslate:
image: libretranslate/libretranslate:latest
command: --disable-web-ui
restart: unless-stopped
environment:
LT_UPDATE_MODELS: true
volumes:
- libretranslate_models:/home/libretranslate/.local:rw
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
interval: 10s
timeout: 4s
retries: 4
start_period: 5s
volumes:
libretranslate_models:
Для перекладу з прискоренням на графічному процесорі (якщо у вас є графічний процесор NVIDIA):
services:
libretranslate:
image: libretranslate/libretranslate:latest-cuda
command: --disable-web-ui
restart: unless-stopped
environment:
LT_UPDATE_MODELS: true
PUID: root
volumes:
- libretranslate_models:/home/libretranslate/.local:rw
healthcheck:
test: ['CMD-SHELL', './venv/bin/python scripts/healthcheck.py']
interval: 10s
timeout: 4s
retries: 4
start_period: 5s
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
volumes:
libretranslate_models:
Після запуску служб за допомогою docker compose down && docker compose up -d, налаштуйте LibreTranslate у Weblate:
Доступ до інтерфейсу адміністратора Weblate
Перейти до Machine translation → Automatic suggestions
Додати новий сервіс LibreTranslate за допомогою:
- Сервіс:
LibreTranslate
- Адреса API:
http://libretranslate:5000- Ключ до API:
Залиште порожнім
LibreTranslate тепер налаштовано та доступно для машинного перекладу у Weblate.
Примітка
Сервіс LibreTranslate працює без веб-інтерфейсу (
--disable-web-ui) і доступний лише через API в мережі Docker.Моделі автоматично оновлюються під час запуску контейнера. (
LT_UPDATE_MODELS: true)Дані зберігаються за допомогою томів Docker для оптимальної продуктивності та безпеки даних.
Перевірки справності гарантують, що рушій Docker належним чином відстежує стан сервісу.
Для прискорення за допомогою графічного процесора використовуйте варіант образу CUDA та переконайтеся, що ваша система підтримує NVIDIA Docker. Цей контейнер працює від імені привілейованого користувача, щоб мати змогу використовувати графічний процесор.
Жодні зовнішні порти не відкриті, що робить налаштування безпечним за замовчуванням.
Інтеграція Docker-контейнерів Anubis¶
Anubis — це утиліта веб-брандмауера зі штучним інтелектом для блокування парсерів штучного інтелекту та іншого шкідливого трафіку на сервері. Зазвичай вона потрібна для публічно відкритих інсталяцій Weblate, щоб уникнути надмірного навантаження, спричиненого парсингом.
Anubis можна розгорнути за допомогою Docker Compose:
anubis:
image: ghcr.io/techarohq/anubis:latest
environment:
BIND: ":8923"
DIFFICULTY: "4"
METRICS_BIND: ":9090"
SERVE_ROBOTS_TXT: "false"
OG_PASSTHROUGH: "false"
# The single space in TARGET enables subrequest authentication
TARGET: " "
# The redirect domain has to match WEBLATE_SITE_DOMAIN
REDIRECT_DOMAINS: weblate.example.com
# Generate a random private key using: openssl rand -hex 32
ED25519_PRIVATE_KEY_HEX: "..."
# Customize your Anubis policy
POLICY_FNAME: /data/botPolicies.yaml
healthcheck:
test: ["CMD", "anubis", "--healthcheck"]
interval: 5s
timeout: 30s
retries: 5
start_period: 500ms
volumes:
- anubis-data:/data
volumes:
anubis-data:
Примітка
Очікується, що том anubis-data у наведеній вище конфігурації містить botPolicies.yaml з політикою ботів, налаштованою відповідно до ваших потреб.
Як мінімум, вам потрібно налаштувати коди стану, як описано в https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth.
Також рекомендується налаштувати постійний сервер сховища, як описано в https://anubis.techaro.lol/docs/admin/policies/#storage-backends.
Потім ви можете увімкнути використання Anubis у Weblate за допомогою:
environment:
WEBLATE_ANUBIS_URL: http://anubis:8923
Дивись також
Налаштування сервера PostgreSQL¶
У контейнері для PostgreSQL використано типові налаштування PostgreSQL, він не зможе ефективно використати ваші ядра процесора або пам’ять. Для підвищення швидкодії рекомендуємо додатково налаштувати контейнер.
Налаштування можна скоригувати, як це описано у розділі Database Configuration на https://hub.docker.com/_/postgres. Налаштування, які відповідають вашому середовищу можна створити за допомогою https://pgtune.leopard.in.ua/.
Нутрощі контейнера¶
Контейнер використовує для запуску окремих служб supervisor. У випадку Горизонтальне масштабування ця програма запускає єдину службу у контейнері.
Для перевірки стану служб скористайтеся таким:
docker compose exec --user weblate weblate supervisorctl status
Для кожної черги Celery передбачено окремі служби (щоб дізнатися більше, див. Фонові завдання з використанням Celery). Ви можете зупинити обробку певних завдань, зупинивши відповідний обробник:
docker compose exec --user weblate weblate supervisorctl stop celery-translate