Instalarea folosind Docker

Cu implementarea Weblate dockerizată puteți obține instanța personală Weblate în câteva secunde. Toate dependențele Weblate sunt deja incluse. PostgreSQL este configurat ca bază de date implicită.

Cerințe hardware

Weblate ar trebui să ruleze fără probleme pe orice hardware contemporan, următoarea este configurația minimă necesară pentru a rula Weblate pe o singură gazdă (Weblate, baza de date și serverul web):

  • 2 GB de RAM

  • 2 nuclee CPU

  • 1 GB de spațiu de stocare

Cu cât mai multă memorie, cu atât mai bine - aceasta este utilizată pentru memoria cache la toate nivelurile (sistem de fișiere, bază de date și Weblate).

Un număr mare de utilizatori simultani crește numărul de nuclee CPU necesare. Pentru sute de componente de traducere se recomandă cel puțin 4 GB de memorie RAM.

Utilizarea obișnuită a bazei de date este de aproximativ 300 MB pentru 1 milion de cuvinte găzduite. Spațiul de stocare necesar pentru depozitele clonate variază, dar Weblate încearcă să mențină dimensiunea acestora la un nivel minim prin clonarea superficială.

Notă

Cerințele reale pentru instalarea Weblate variază foarte mult în funcție de dimensiunea traducerilor gestionate în cadrul acesteia.

Instalare

Următoarele exemple presupun că aveți un mediu Docker funcțional, cu docker-compose instalat. Vă rugăm să consultați documentația Docker pentru instrucțiuni.

  1. Clonați repo-ul weblate-docker:

    git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker
    cd weblate-docker
    
  2. Creați un fișier docker-compose.override.yml cu setările dumneavoastră. Consultați Variabile de mediu Docker pentru lista completă a variabilelor de mediu.

    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
    

    Notă

    Dacă WEBLATE_ADMIN_PASSWORD nu este setat, utilizatorul administrator este creat cu o parolă aleatorie afișată la prima pornire.

    Exemplul furnizat face ca Weblate să asculte pe portul 80, editați maparea porturilor în fișierul docker-compose.override.yml pentru a o modifica.

  3. Porniți containerele Weblate:

    docker-compose up
    

Bucurați-vă de implementarea Weblate, acesta este accesibil pe portul 80 al containerului weblate.

Schimbat în versiunea 2.15-2: Configurația s-a schimbat recent, anterior a existat un container separat pentru serverul web, de la 2.15-2 serverul web este încorporat în containerul Weblate.

Schimbat în versiunea 3.7.1-6: În iulie 2019 (începând cu eticheta 3.7.1-6), containerele nu rulează ca utilizator root. Acest lucru a schimbat portul expus de la 80 la 8080.

Alegerea tag-ului hub-ului Docker

Puteți utiliza următoarele etichete în hub-ul Docker, consultați https://hub.docker.com/r/weblate/weblate/tags/ pentru lista completă a celor disponibile.

Denumirea etichetei

Descriere

Caz de utilizare

latest

Weblate versiune stabilă, se potrivește cu cea mai recentă versiune etichetată

Actualizări continue într-un mediu de producție

<VERSION>-<PATCH>

Weblate versiune stabilă

Implementare bine definită într-un mediu de producție

edge

Versiune stabilă Weblate cu modificări de dezvoltare în containerul Docker (de exemplu, dependențe actualizate)

Rularea actualizărilor într-un mediu de pregătire

edge-<DATE>-<SHA>

Versiune stabilă Weblate cu modificări de dezvoltare în containerul Docker (de exemplu, dependențe actualizate)

Implementare bine definită într-un mediu de staționare

bleeding

Versiunea de dezvoltare Weblate din Git

Actualizări de rulare pentru a testa viitoarele caracteristici Weblate

bleeding-<DATE>-<SHA>

Versiunea de dezvoltare Weblate din Git

Implementare bine definită pentru a testa viitoarele caracteristici Weblate

Fiecare imagine este testată de către CI înainte de a fi publicată, astfel încât chiar și versiunea „sângerândă” ar trebui să fie destul de sigură pentru utilizare.

Container Docker cu suport HTTPS

Vă rugăm să consultați Instalare pentru instrucțiuni generice de implementare, această secțiune menționează doar diferențele față de aceasta.

Utilizarea certificatelor SSL proprii

Nou în versiunea 3.8-3.

În cazul în care aveți propriul certificat SSL pe care doriți să îl utilizați, plasați pur și simplu fișierele în volumul de date Weblate (a se vedea Volumele containerelor Docker):

  • ssl/fullchain.pem care conține certificatul, inclusiv toate certificatele CA necesare

  • ssl/privkey.pem conținând cheia privată

Ambele fișiere trebuie să fie deținute de același utilizator ca și cel care pornește containerul docker și să aibă masca de fișier setată la 600 (poate fi citită și scrisă numai de către utilizatorul proprietar).

În plus, containerul Weblate va accepta acum conexiuni SSL pe portul 4443, veți dori să includeți redirecționarea portului pentru HTTPS în suprascrierea docker compose:

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

Dacă găzduiți deja alte site-uri pe același server, este posibil ca porturile 80 și 443 să fie utilizate de un proxy invers, cum ar fi NGINX. Pentru a transmite conexiunea HTTPS de la NGINX la containerul docker, puteți utiliza următoarea configurație:

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

Înlocuiți <SITE_URL>, <SITE> și <EXPOSED_DOCKER_PORT> cu valorile reale din mediul dumneavoastră.

Certificate SSL automate folosind Let’s Encrypt

În cazul în care doriți să utilizați certificatele SSL generate automat de Let’s Encrypt pe instalația publică, trebuie să adăugați un proxy HTTPS invers un container Docker suplimentar, https-portal va fi utilizat pentru aceasta. Acest lucru este utilizat în fișierul docker-compose-https.yml. Apoi creați un fișier docker-compose-https.override.yml cu setările dumneavoastră:

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'

Ori de câte ori invocați docker-compose trebuie să îi treceți ambele fișiere și apoi să faceți:

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

Actualizarea containerului Docker

De obicei, este o idee bună să actualizați doar containerul Weblate și să păstrați containerul PostgreSQL la versiunea pe care o aveți, deoarece actualizarea PostgreSQL este destul de dureroasă și, în majoritatea cazurilor, nu aduce multe beneficii.

Puteți face acest lucru rămânând la docker-compose existent și doar să extrageți cele mai recente imagini și apoi să reporniți:

# 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

Baza de date Weblate ar trebui să fie migrată automat la prima pornire și nu ar trebui să fie nevoie de acțiuni manuale suplimentare.

Notă

Actualizările de la versiunea 3.0 nu sunt acceptate de Weblate. Dacă sunteți pe seria 2.x și doriți să faceți upgrade la 3.x, faceți mai întâi upgrade la cea mai recentă imagine 3.0.1-x (la momentul scrierii acestui articol este 3.0.1-7), care va face migrarea și apoi veți continua să faceți upgrade la versiunile mai noi.

De asemenea, este posibil să doriți să actualizați depozitul docker-compose, deși nu este necesar în majoritatea cazurilor. Vă rugăm să aveți grijă la schimbările de versiune PostgreSQL în acest caz, deoarece nu este simplu să actualizați baza de date, consultați GitHub issue pentru mai multe informații.

Autentificare administrator

După configurarea containerului, vă puteți autentifica ca utilizator admin cu parola furnizată în WEBLATE_ADMIN_PASSWORD, sau cu o parolă aleatorie generată la prima pornire, dacă aceasta nu a fost setată.

Pentru a reseta parola admin, reporniți containerul cu WEBLATE_ADMIN_PASSWORD setat la noua parolă.

Numărul de procese și consumul de memorie

Numărul de procese de lucru atât pentru uWSGI, cât și pentru Celery este determinat automat pe baza numărului de unități centrale de procesare. Acest lucru funcționează bine pentru majoritatea mașinilor virtuale din cloud, deoarece acestea au, de obicei, câteva unități centrale de procesare și o cantitate bună de memorie.

În cazul în care aveți o mulțime de nuclee CPU și nu mai aveți probleme de memorie, încercați să reduceți numărul de lucrători:

environment:
  WEBLATE_WORKERS: 2

De asemenea, puteți ajusta cu precizie categoriile individuale de lucrători:

environment:
  WEB_WORKERS: 4
  CELERY_MAIN_OPTIONS: --concurrency 2
  CELERY_NOTIFY_OPTIONS: --concurrency 1
  CELERY_TRANSLATE_OPTIONS: --concurrency 1

Scalare pe orizontală

Nou în versiunea 4.6.

Atenționare

Această caracteristică este o previzualizare tehnologică.

Puteți rula mai multe containere Weblate pentru a scala serviciul pe orizontală. Volumul /app/data trebuie să fie partajat de toate containerele, pentru aceasta se recomandă utilizarea unui sistem de fișiere cluster, cum ar fi GlusterFS. Volumul /app/cache trebuie să fie separat pentru fiecare container.

Fiecare container Weblate are un rol definit folosind variabila de mediu WEBLATE_SERVICE. Vă rugăm să urmăriți cu atenție documentația, deoarece unele dintre servicii trebuie să ruleze o singură dată în cluster, iar ordinea serviciilor este importantă.

Puteți găsi un exemplu de configurare în repo-ul docker-compose ca docker-compose-split.yml.

Variabile de mediu Docker

Multe dintre parametrii Configurație ai Weblate pot fi setați în containerul Docker folosind variabile de mediu:

Setări generice

WEBLATE_DEBUG

Configurează modul de depanare Django folosind DEBUG.

Exemplu:

environment:
  WEBLATE_DEBUG: 1
WEBLATE_LOGLEVEL

Configurează verbozitatea de logare.

WEBLATE_SITE_TITLE

Schimbă titlul site-ului afișat în antetul tuturor paginilor.

WEBLATE_SITE_DOMAIN

Configurează domeniul site-ului. Acest parametru este obligatoriu.

WEBLATE_ADMIN_NAME
WEBLATE_ADMIN_EMAIL

Configurează numele și adresa de e-mail ale administratorului site-ului. Este utilizat atât pentru setarea ADMINS, cât și pentru crearea utilizatorului admin (a se vedea WEBLATE_ADMIN_PASSWORD pentru mai multe informații în acest sens).

Exemplu:

environment:
  WEBLATE_ADMIN_NAME: Weblate admin
  WEBLATE_ADMIN_EMAIL: noreply@example.com
WEBLATE_ADMIN_PASSWORD

Stabilește parola pentru utilizatorul admin.

  • Dacă nu este setat și utilizatorul admin nu există, acesta este creat cu o parolă aleatorie afișată la prima pornire a containerului.

  • Dacă nu este setat și există utilizatorul admin, nu se efectuează nicio acțiune.

  • Dacă este setat, utilizatorul admin este ajustat la fiecare pornire a containerului pentru a se potrivi cu WEBLATE_ADMIN_PASSWORD, WEBLATE_ADMIN_NAME și WEBLATE_ADMIN_EMAIL.

Atenționare

Stocarea parolei în fișierul de configurare ar putea reprezenta un risc de securitate. Luați în considerare utilizarea acestei variabile numai pentru configurarea inițială (sau lăsați Weblate să genereze o parolă aleatorie la pornirea inițială) sau pentru recuperarea parolei.

WEBLATE_ADMIN_PASSWORD_FILE

Stabilește calea către un fișier care conține parola pentru utilizatorul admin.

WEBLATE_SERVER_EMAIL
WEBLATE_DEFAULT_FROM_EMAIL

Configurează adresa pentru e-mailurile de ieșire.

WEBLATE_CONTACT_FORM

Configurează comportamentul formularului de contact, a se vedea CONTACT_FORM.

WEBLATE_ALLOWED_HOSTS

Configurează numele de gazdă HTTP permise folosind ALLOWED_HOSTS.

Valoarea implicită este * care permite toate numele de gazdă.

Exemplu:

environment:
  WEBLATE_ALLOWED_HOSTS: weblate.example.com,example.com
WEBLATE_REGISTRATION_OPEN

Configurează dacă înregistrările sunt deschise prin activarea REGISTRATION_OPEN.

Exemplu:

environment:
  WEBLATE_REGISTRATION_OPEN: 0
WEBLATE_REGISTRATION_ALLOW_BACKENDS

Configurați ce metode de autentificare pot fi folosite pentru a crea un cont nou prin REGISTRATION_ALLOW_BACKENDS.

Exemplu:

environment:
  WEBLATE_REGISTRATION_OPEN: 0
  WEBLATE_REGISTRATION_ALLOW_BACKENDS: azuread-oauth2,azuread-tenant-oauth2
WEBLATE_TIME_ZONE

Configurează fusul orar utilizat în Weblate, vezi TIME_ZONE.

Notă

Pentru a schimba fusul orar al containerului Docker în sine, utilizați variabila de mediu TZ.

Exemplu:

environment:
  WEBLATE_TIME_ZONE: Europe/Prague
WEBLATE_ENABLE_HTTPS

Face ca Weblate să presupună că este operat în spatele unui proxy HTTPS inversat, face ca Weblate să utilizeze HTTPS în e-mail și în legăturile API sau să seteze indicatori de siguranță pe cookie-uri.

Sugestie

Vă rugăm să consultați documentația ENABLE_HTTPS pentru eventualele avertismente.

Notă

Acest lucru nu face ca containerul Weblate să accepte conexiuni HTTPS, trebuie să configurați și acest lucru, consultați Container Docker cu suport HTTPS pentru exemple.

Exemplu:

environment:
  WEBLATE_ENABLE_HTTPS: 1
WEBLATE_IP_PROXY_HEADER

Permite lui Weblate să extragă adresa IP din orice antet HTTP dat. Utilizați această opțiune atunci când utilizați un proxy invers în fața containerului Weblate.

Activează IP_BEHIND_REVERSE_PROXY și setează IP_PROXY_HEADER.

Notă

Formatul trebuie să fie în conformitate cu așteptările Django. Acesta transformă numele brute ale antetului HTTP după cum urmează:

  • convertește toate caracterele în majuscule

  • înlocuiește orice cratimă cu sublinieri

  • adaugă prefixul HTTP_ ``

Așadar, X-Forwarded-For ar trebui să fie corespondat cu HTTP_X_FORWARDED_FOR.

Exemplu:

environment:
  WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
WEBLATE_SECURE_PROXY_SSL_HEADER

Un tuple care reprezintă o combinație antet HTTP/valoare care indică faptul că o cerere este sigură. Acest lucru este necesar atunci când Weblate rulează în spatele unui proxy invers care face terminarea SSL și care nu transmite antetele HTTPS standard.

Exemplu:

environment:
  WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
WEBLATE_REQUIRE_LOGIN

Activează REQUIRE_LOGIN pentru a impune autentificarea pe întregul Weblate.

Exemplu:

environment:
  WEBLATE_REQUIRE_LOGIN: 1
WEBLATE_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_ADD_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS

Adaugă excepții URL pentru autentificarea necesară pentru întreaga instalare Weblate folosind LOGIN_REQUIRED_URLS_EXCEPTIONS.

Puteți fie să înlocuiți setări întregi, fie să modificați valoarea implicită folosind variabilele ADD și REMOVE.

WEBLATE_GOOGLE_ANALYTICS_ID

Configurează ID-ul pentru Google Analytics prin modificarea GOOGLE_ANALYTICS_ID.

WEBLATE_GITHUB_USERNAME

Configurează numele de utilizator GitHub pentru GitHub pull-requests prin modificarea GITHUB_USERNAME.

Vezi și

GitHub

WEBLATE_GITHUB_TOKEN

Nou în versiunea 4.3.

Configurează token-ul de acces personal GitHub pentru solicitările GitHub pull-requests prin API prin modificarea GITHUB_TOKEN.

Vezi și

GitHub

WEBLATE_GITLAB_USERNAME

Configurează numele de utilizator GitLab pentru cererile de fuziune GitLab prin modificarea GITLAB_USERNAME

Vezi și

GitLab

WEBLATE_GITLAB_TOKEN

Configurează token-ul de acces personal GitLab pentru cererile de fuziune GitLab prin API, modificând GITLAB_TOKEN

Vezi și

GitLab

WEBLATE_PAGURE_USERNAME

Configurează numele de utilizator Pagure pentru cererile de fuziune Pagure prin modificarea PAGURE_USERNAME

Vezi și

Pagure

WEBLATE_PAGURE_TOKEN

Configurează token-ul de acces personal Pagure pentru cererile de fuziune Pagure prin API prin modificarea PAGURE_TOKEN

Vezi și

Pagure

WEBLATE_SIMPLIFY_LANGUAGES

Configurează politica de simplificare a limbilor, a se vedea SIMPLIFY_LANGUAGES.

WEBLATE_DEFAULT_ACCESS_CONTROL

Configurează controlul implicit Controlul accesului pentru proiectele noi, a se vedea DEFAULT_ACCESS_CONTROL.

WEBLATE_DEFAULT_RESTRICTED_COMPONENT

Configurează valoarea implicită pentru Acces restricționat pentru componentele noi, a se vedea DEFAULT_RESTRICTED_COMPONENT.

WEBLATE_DEFAULT_TRANSLATION_PROPAGATION

Configurează valoarea implicită pentru Permiteți propagarea traducerii pentru componentele noi, a se vedea DEFAULT_TRANSLATION_PROPAGATION.

WEBLATE_DEFAULT_COMMITER_EMAIL

Configurează DEFAULT_COMMITER_EMAIL.

WEBLATE_DEFAULT_COMMITER_NAME

Configurează DEFAULT_COMMITER_NAME.

WEBLATE_DEFAULT_SHARED_TM

Configurează DEFAULT_SHARED_TM.

WEBLATE_AKISMET_API_KEY

Configurează cheia Akismet API, vezi AKISMET_API_KEY.

WEBLATE_GPG_IDENTITY

Configurează semnarea GPG a modificărilor, a se vedea WEBLATE_GPG_IDENTITY.

WEBLATE_URL_PREFIX

Configurează prefixul URL în care rulează Weblate, vezi URL_PREFIX.

WEBLATE_SILENCED_SYSTEM_CHECKS

Configurează verificările care nu doriți să fie afișate, a se vedea SILENCED_SYSTEM_CHECKS.

WEBLATE_CSP_SCRIPT_SRC
WEBLATE_CSP_IMG_SRC
WEBLATE_CSP_CONNECT_SRC
WEBLATE_CSP_STYLE_SRC
WEBLATE_CSP_FONT_SRC

Permite personalizarea antetului HTTP Content-Security-Policy.

WEBLATE_LICENSE_FILTER

Configurează LICENSE_FILTER.

WEBLATE_LICENSE_REQUIRED

Configurează LICENSE_REQUIRED

WEBLATE_WEBSITE_REQUIRED

Configurează WEBSITE_REQUIRED

WEBLATE_HIDE_VERSION

Configurează HIDE_VERSION.

WEBLATE_BASIC_LANGUAGES

Configurează BASIC_LANGUAGES.

WEBLATE_DEFAULT_AUTO_WATCH

Configurează DEFAULT_AUTO_WATCH.

WEBLATE_RATELIMIT_ATTEMPTS
WEBLATE_RATELIMIT_LOCKOUT
WEBLATE_RATELIMIT_WINDOW

Nou în versiunea 4.6.

Configurează limitatorul de viteză.

Sugestie

Puteți seta configurația pentru orice rază de cuprindere a limitatorului de viteză. Pentru a face acest lucru, adăugați prefixul WEBLATE_ la oricare dintre setările descrise în Limitarea ratei.

WEBLATE_ENABLE_AVATARS

Nou în versiunea 4.6.1.

Configurează ENABLE_AVATARS.

WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH

Nou în versiunea 4.9.

Configures LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH.

WEBLATE_SSH_EXTRA_ARGS

Nou în versiunea 4.9.

Configures SSH_EXTRA_ARGS.

WEBLATE_BORG_EXTRA_ARGS

Nou în versiunea 4.9.

Configures BORG_EXTRA_ARGS.

Setări de traducere automată

Sugestie

Configurarea cheii API pentru un serviciu îl configurează automat în MT_SERVICES.

WEBLATE_MT_APERTIUM_APY

Activează traducerea automată Apertium și setează MT_APERTIUM_APY

WEBLATE_MT_AWS_REGION
WEBLATE_MT_AWS_ACCESS_KEY_ID
WEBLATE_MT_AWS_SECRET_ACCESS_KEY

Configurează traducerea automată AWS.

environment:
  WEBLATE_MT_AWS_REGION: us-east-1
  WEBLATE_MT_AWS_ACCESS_KEY_ID: AKIAIOSFODNN7EXAMPLE
  WEBLATE_MT_AWS_SECRET_ACCESS_KEY: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
WEBLATE_MT_DEEPL_KEY

Activează traducerea automată DeepL și setează MT_DEEPL_KEY

WEBLATE_MT_DEEPL_API_URL

Configurează DeepL versiunea API de utilizat, a se vedea MT_DEEPL_API_URL.

WEBLATE_MT_LIBRETRANSLATE_KEY

Activează traducerea automată Traducere Libre și setează MT_LIBRETRANSLATE_KEY

WEBLATE_MT_LIBRETRANSLATE_API_URL

Configurează Traducere Libre Instanța API de utilizat, a se vedea MT_LIBRETRANSLATE_API_URL.

WEBLATE_MT_GOOGLE_KEY

Activează Google Traducere și setează MT_GOOGLE_KEY

WEBLATE_MT_GOOGLE_CREDENTIALS

Enables Google Translate API V3 (Avansat) and sets MT_GOOGLE_CREDENTIALS

WEBLATE_MT_GOOGLE_PROJECT

Enables Google Translate API V3 (Avansat) and sets MT_GOOGLE_PROJECT

WEBLATE_MT_GOOGLE_LOCATION

Enables Google Translate API V3 (Avansat) and sets MT_GOOGLE_LOCATION

WEBLATE_MT_MICROSOFT_COGNITIVE_KEY

Activează Microsoft Servicii Cognitive Translator și setează MT_MICROSOFT_COGNITIVE_KEY

WEBLATE_MT_MICROSOFT_ENDPOINT_URL

Setează MT_MICROSOFT_ENDPOINT_URL; vă rugăm să rețineți că acesta trebuie să conțină doar numele de domeniu.

WEBLATE_MT_MICROSOFT_REGION

Setează MT_MICROSOFT_REGION

WEBLATE_MT_MICROSOFT_BASE_URL

Setează MT_MICROSOFT_BASE_URL

WEBLATE_MT_MODERNMT_KEY

Activează ModernMT și setează MT_MODERNMT_KEY.

WEBLATE_MT_MYMEMORY_ENABLED

Activează traducerea automată MemoriaMea și setează MT_MYMEMORY_EMAIL la WEBLATE_ADMIN_EMAIL.

Exemplu:

environment:
  WEBLATE_MT_MYMEMORY_ENABLED: 1
WEBLATE_MT_GLOSBE_ENABLED

Activează traducerea automată Glosbe.

environment:
  WEBLATE_MT_GLOSBE_ENABLED: 1
WEBLATE_MT_MICROSOFT_TERMINOLOGY_ENABLED

Activează traducerea automată ms-terminologie.

environment:
  WEBLATE_MT_MICROSOFT_TERMINOLOGY_ENABLED: 1
WEBLATE_MT_SAP_BASE_URL
WEBLATE_MT_SAP_SANDBOX_APIKEY
WEBLATE_MT_SAP_USERNAME
WEBLATE_MT_SAP_PASSWORD
WEBLATE_MT_SAP_USE_MT

Configurează traducerea automată Centrul de traduceri SAP.

environment:
    WEBLATE_MT_SAP_BASE_URL: "https://example.hana.ondemand.com/translationhub/api/v1/"
    WEBLATE_MT_SAP_USERNAME: "user"
    WEBLATE_MT_SAP_PASSWORD: "password"
    WEBLATE_MT_SAP_USE_MT: 1

Setări de autentificare

LDAP

WEBLATE_AUTH_LDAP_SERVER_URI
WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE
WEBLATE_AUTH_LDAP_USER_ATTR_MAP
WEBLATE_AUTH_LDAP_BIND_DN
WEBLATE_AUTH_LDAP_BIND_PASSWORD
WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS
WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER
WEBLATE_AUTH_LDAP_USER_SEARCH_UNION
WEBLATE_AUTH_LDAP_USER_SEARCH_UNION_DELIMITER

Configurarea autentificării LDAP.

Exemplu pentru legarea directă:

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

Exemplu pentru căutare și legare:

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

Exemplu pentru căutarea și legarea uniunii:

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

Exemplu cu căutare și legare în 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

Activează Autentificarea GitHub.

Bitbucket

WEBLATE_SOCIAL_AUTH_BITBUCKET_KEY
WEBLATE_SOCIAL_AUTH_BITBUCKET_SECRET

Activează Autentificarea Bitbucket.

Facebook

WEBLATE_SOCIAL_AUTH_FACEBOOK_KEY
WEBLATE_SOCIAL_AUTH_FACEBOOK_SECRET

Activează 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

Activează Google OAuth 2.

GitLab

WEBLATE_SOCIAL_AUTH_GITLAB_KEY
WEBLATE_SOCIAL_AUTH_GITLAB_SECRET
WEBLATE_SOCIAL_AUTH_GITLAB_API_URL

Activează GitLab OAuth 2.

Directorul Azure Activ

WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET

Activează autentificarea Azure Active Directory, consultați Microsoft Azure directoare active.

Azure Active Directory cu suport Tenant

WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID

Activează autentificarea Azure Active Directory cu suport pentru Tenant, vezi Microsoft Azure directoare active.

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

Activează autentificarea Keycloak, a se vedea documentația.

Furnizori Linux

Puteți activa autentificarea utilizând serviciile de autentificare ale furnizorilor Linux prin setarea următoarelor variabile la orice valoare.

WEBLATE_SOCIAL_AUTH_FEDORA
WEBLATE_SOCIAL_AUTH_OPENSUSE
WEBLATE_SOCIAL_AUTH_UBUNTU

Slack

WEBLATE_SOCIAL_AUTH_SLACK_KEY
SOCIAL_AUTH_SLACK_SECRET

Activează autentificarea Slack, vezi Slack.

SAML

Cheile SAML autofirmate sunt generate automat la prima pornire a containerului. În cazul în care doriți să utilizați chei proprii, plasați certificatul și cheia privată în /app/data/ssl/saml.crt și /app/data/ssl/saml.key.

WEBLATE_SAML_IDP_ENTITY_ID
WEBLATE_SAML_IDP_URL
WEBLATE_SAML_IDP_X509CERT

Setările furnizorului de identitate SAML, consultați Autentificare SAML.

Alte setări de autentificare

WEBLATE_NO_EMAIL_AUTH

Dezactivează autentificarea e-mailurilor atunci când este setat la orice valoare.

Configurarea bazei de date PostgreSQL

Baza de date este creată de docker-compose.yml, astfel încât aceste setări afectează atât containerele Weblate, cât și PostgreSQL.

POSTGRES_PASSWORD

Parola PostgreSQL.

POSTGRES_PASSWORD_FILE

Calea către fișierul care conține parola PostgreSQL. Se utilizează ca alternativă la POSTGRES_PASSWORD.

POSTGRES_USER

Nume de utilizator PostgreSQL.

POSTGRES_DATABASE

Numele bazei de date PostgreSQL.

POSTGRES_HOST

Numele de gazdă sau adresa IP a serverului PostgreSQL. Valoarea implicită este database.

POSTGRES_PORT

Portul serverului PostgreSQL. Valoarea implicită este niciunul (utilizează valoarea implicită).

POSTGRES_SSL_MODE

Configurați modul în care PostgreSQL gestionează SSL în conexiunea cu serverul, pentru opțiunile posibile consultați SSL Mode Descriptions

POSTGRES_ALTER_ROLE

Configurează numele rolului care trebuie modificat în timpul migrărilor, a se vedea Configurarea Weblate pentru a utiliza PostgreSQL.

POSTGRES_CONN_MAX_AGE

Nou în versiunea 4.8.1.

Durata de viață a unei conexiuni la baza de date, ca număr întreg de secunde. Utilizați 0 pentru a închide conexiunile la baza de date la sfârșitul fiecărei cereri (acesta este comportamentul implicit).

Activarea persistenței conexiunii va determina, de obicei, mai multe conexiuni deschise la baza de date. Vă rugăm să ajustați configurația bazei de date înainte de activare.

Exemplu de configurare:

environment:
    POSTGRES_CONN_MAX_AGE: 3600
POSTGRES_DISABLE_SERVER_SIDE_CURSORS

Nou în versiunea 4.9.1.

Disable server side cursors in the database. This is necessary in some pgbouncer setups.

Exemplu de configurare:

environment:
    POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1

Setări de salvare a bazei de date

WEBLATE_DATABASE_BACKUP

Configurează descărcarea zilnică a bazei de date folosind DATABASE_BACKUP. Valoarea implicită este plain.

Configurarea serverului Caching

Utilizarea Redis este puternic recomandată de Weblate și trebuie să furnizați o instanță Redis atunci când executați Weblate în Docker.

REDIS_HOST

Numele de gazdă sau adresa IP a serverului Redis. Valoarea implicită este cache.

REDIS_PORT

Portul serverului Redis. Valoarea implicită este 6379.

REDIS_DB

Numărul bazei de date Redis, valoarea implicită este 1.

REDIS_PASSWORD

Parola serverului Redis, care nu este utilizată în mod implicit.

REDIS_TLS

Activează utilizarea SSL pentru conexiunea Redis.

REDIS_VERIFY_SSL

Poate fi utilizat pentru a dezactiva verificarea certificatului SSL pentru conexiunea Redis.

Configurarea serverului de e-mail

Pentru ca poșta electronică de ieșire să funcționeze, trebuie să furnizați un server de poștă electronică.

Exemplu de configurare TLS:

environment:
    WEBLATE_EMAIL_HOST: smtp.example.com
    WEBLATE_EMAIL_HOST_USER: user
    WEBLATE_EMAIL_HOST_PASSWORD: pass

Exemplu de configurare 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

Numele de gazdă sau adresa IP a serverului de poștă electronică.

WEBLATE_EMAIL_PORT

Portul serverului de poștă electronică, valoarea implicită este 25.

Vezi și

EMAIL_PORT

WEBLATE_EMAIL_HOST_USER

Utilizator de autentificare prin e-mail.

Vezi și

EMAIL_HOST_USER

WEBLATE_EMAIL_HOST_PASSWORD

Parola de autentificare a e-mailului.

WEBLATE_EMAIL_HOST_PASSWORD_FILE

Calea către fișierul care conține parola de autentificare a e-mailului.

WEBLATE_EMAIL_USE_SSL

Dacă se utilizează o conexiune TLS (securizată) implicită atunci când se vorbește cu serverul SMTP. În cea mai mare parte a documentației despre e-mail, acest tip de conexiune TLS este denumit SSL. În general, este utilizat pe portul 465. Dacă întâmpinați probleme, consultați setarea TLS explicită WEBLATE_EMAIL_USE_TLS.

WEBLATE_EMAIL_USE_TLS

Dacă se utilizează o conexiune TLS (securizată) atunci când se vorbește cu serverul SMTP. Aceasta este utilizată pentru conexiunile TLS explicite, în general pe portul 587 sau 25. Dacă vă confruntați cu conexiuni care se blochează, consultați setarea TLS implicită WEBLATE_EMAIL_USE_SSL.

WEBLATE_EMAIL_BACKEND

Configurează back-end-ul Django care va fi folosit pentru trimiterea de e-mailuri.

WEBLATE_AUTO_UPDATE

Configures if and how Weblate should update repositories.

Vezi și

AUTO_UPDATE

Notă

This is a Boolean setting (use "true" or "false").

Integrare site

WEBLATE_GET_HELP_URL

Configurează GET_HELP_URL.

WEBLATE_STATUS_URL

Configurează STATUS_URL.

Configurează LEGAL_URL.

WEBLATE_PRIVACY_URL

Configurează PRIVACY_URL.

Raportarea erorilor

Se recomandă colectarea sistematică a erorilor de la instalare, a se vedea Colectarea rapoartelor de eroare.

Pentru a activa suportul pentru Rollbar, setați următoarele:

ROLLBAR_KEY

Tokenul tău de acces la serverul Rollbar post.

ROLLBAR_ENVIRONMENT

Mediul dumneavoastră Rollbar, implicit production.

Pentru a activa suportul pentru Sentry, setați următoarele:

SENTRY_DSN

DSN-ul tău Sentry.

SENTRY_ENVIRONMENT

Mediul dumneavoastră Sentry (opțional).

Localizare CDN

WEBLATE_LOCALIZE_CDN_URL
WEBLATE_LOCALIZE_CDN_PATH

Nou în versiunea 4.2.1.

Configurație pentru CDN de localizare JavaScript.

WEBLATE_LOCALIZE_CDN_PATH este calea din container. Acesta trebuie să fie stocat pe volumul persistent și nu în memoria tranzitorie.

Una dintre posibilități este stocarea acestora în directorul de date Weblate:

environment:
  WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/
  WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn

Notă

Sunteți responsabil pentru configurarea serviciului de servire a fișierelor generate de Weblate, acesta doar stochează fișierele în locația configurată.

Schimbarea aplicațiilor, verificărilor, suplimentelor sau autofixelor activate

Nou în versiunea 3.8-5.

Configurația încorporată a verificărilor activate, a suplimentelor sau a corecțiilor automate poate fi ajustată cu ajutorul următoarelor variabile:

WEBLATE_ADD_APPS
WEBLATE_REMOVE_APPS
WEBLATE_ADD_CHECK
WEBLATE_REMOVE_CHECK
WEBLATE_ADD_AUTOFIX
WEBLATE_REMOVE_AUTOFIX
WEBLATE_ADD_ADDONS
WEBLATE_REMOVE_ADDONS

Exemplu:

environment:
  WEBLATE_REMOVE_AUTOFIX: weblate.trans.autofixes.whitespace.SameBookendingWhitespace
  WEBLATE_ADD_ADDONS: customize.addons.MyAddon,customize.addons.OtherAddon

Setări container

WEBLATE_WORKERS

Nou în versiunea 4.6.1.

Numărul de bază al proceselor de lucru care rulează în container. Dacă nu este setat, acesta este determinat automat la pornirea containerului pe baza numărului de nuclee CPU disponibile.

It is used to determine CELERY_MAIN_OPTIONS, CELERY_NOTIFY_OPTIONS, CELERY_MEMORY_OPTIONS, CELERY_TRANSLATE_OPTIONS, CELERY_BACKUP_OPTIONS, CELERY_BEAT_OPTIONS, and WEB_WORKERS. You can use these settings to fine-tune.

CELERY_MAIN_OPTIONS
CELERY_NOTIFY_OPTIONS
CELERY_MEMORY_OPTIONS
CELERY_TRANSLATE_OPTIONS
CELERY_BACKUP_OPTIONS
CELERY_BEAT_OPTIONS

Aceste variabile vă permit să ajustați opțiunile lucrătorului Celery. Poate fi utilă pentru a ajusta concurența (--concurrency 16) sau pentru a utiliza o implementare diferită a pool-ului (--pool=gevent).

În mod implicit, numărul de lucrători simultani se bazează pe WEBLATE_WORKERS.

Exemplu:

environment:
  CELERY_MAIN_OPTIONS: --concurrency 16
WEB_WORKERS

Configurați câți lucrători uWSGI trebuie să fie executați.

Valoarea implicită este WEBLATE_WORKERS.

Exemplu:

environment:
  WEB_WORKERS: 32
WEBLATE_SERVICE

Definește ce servicii ar trebui să fie executate în interiorul containerului. Utilizați acest lucru pentru Scalare pe orizontală.

Sunt definite următoarele servicii:

celery-beat

Celery task scheduler, doar o singură instanță ar trebui să ruleze. Acest container este, de asemenea, responsabil pentru migrarea structurii bazei de date și trebuie să fie pornit înaintea celorlalte.

celery-backup

Celery worker pentru copii de rezervă, o singură instanță trebuie să ruleze.

celery-celery

Lucrător generic Celery.

celery-memory

Memoria de traducere Celery worker.

celery-notify

Notificări Celery worker.

celery-translate

Traducere automată Celery worker.

web

Serverul web.

Volumele containerelor Docker

Există două volume (date și cache) exportate de containerul Weblate. Celelalte containere de servicii (PostgreSQL sau Redis) au, de asemenea, volumele lor de date, dar acestea nu sunt acoperite de acest document.

Volumul de date este utilizat pentru a stoca date persistente Weblate, cum ar fi depozitele clonate sau pentru a personaliza instalarea Weblate.

Amplasarea volumului Docker pe sistemul gazdă depinde de configurația Docker, dar de obicei acesta este stocat în /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ (calea este formată din numele directorului docker-compose, containerul și numele volumului). În container, acesta este montat ca /app/data.

Volumul cache este montat ca /app/cache și este utilizat pentru a stoca fișiere statice. Conținutul său este recreat la pornirea containerului, iar volumul poate fi montat utilizând un sistem de fișiere efemere, cum ar fi tmpfs.

La crearea manuală a volumelor, directoarele trebuie să fie deținute de UID 1000, deoarece acesta este utilizatorul utilizat în container.

Personalizare suplimentară a configurației

Puteți personaliza în continuare instalarea Weblate în volumul de date, consultați Volumele containerelor Docker.

Fișiere de configurare personalizate

Puteți suprascrie suplimentar configurația în /app/data/settings-override.py (vezi Volumele containerelor Docker). Acesta este executat la sfârșitul setărilor încorporate, după ce toate setările de mediu sunt încărcate, și le puteți ajusta sau suprascrie.

Înlocuirea logo-ului și a altor fișiere statice

Nou în versiunea 3.8-5.

Fișierele statice care vin cu Weblate pot fi înlocuite prin plasarea în /app/data/python/customize/static (a se vedea Volumele containerelor Docker). De exemplu, crearea /app/data/python/customize/static/favicon.ico va înlocui faviconul.

Sugestie

Fișierele sunt copiate în locația corespunzătoare la pornirea containerului, astfel încât este necesară o repornire a Weblate după modificarea conținutului volumului.

Alternativ, puteți, de asemenea, să includeți propriul modul (a se vedea Personalizarea Weblate) și să îl adăugați ca volum separat la containerul Docker, de exemplu:

weblate:
  volumes:
    - weblate-data:/app/data
    - ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
  environment:
    WEBLATE_ADD_APPS: weblate_customization

Adăugarea de module Python proprii

Nou în versiunea 3.8-5.

Puteți plasa propriile module Python în /app/data/python/ (a se vedea Volumele containerelor Docker) și acestea pot fi apoi încărcate de Weblate, cel mai probabil prin utilizarea Fișiere de configurare personalizate.