Instalarea folosind Docker#

With dockerized Weblate deployment you can get your personal Weblate instance up and running in seconds. All of Weblate’s dependencies are already included. PostgreSQL is set up as the default database and Redis as a caching backend.

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):

  • 3 GB of 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.

Sugestie

For systems with less memory than recommended, Single-process Celery setup is recommended.

Instalare#

Sugestie

The following examples assume you have a working Docker environment, with docker-compose-plugin installed. Please check the Docker documentation for instructions.

This creates a Weblate deployment server via HTTP, so you should place it behind HTTPS terminating proxy. You can also deploy with a HTTPS proxy, see Certificate SSL automate folosind Let’s Encrypt. For larger setups, please see Scalare pe orizontală.

  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.

Choosing Docker image registry#

Weblate containers are published to following registries:

Notă

All examples currently fetch images from Docker Hub, please adjust the configuration accordingly to use a different registry.

Choosing Docker image tag#

Please choose a tag that matches your environment and expectations:

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

<MAJOR>

Weblate versiune stabilă

Rolling updates within a major version in a production environment

<MAJOR>.<MINOR>

Weblate versiune stabilă

Rolling updates within a minor version in a production environment

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

Full list of published tags can be found at GitHub Packages

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#

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

Î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'

Whenever invoking docker compose you need to pass both files to it, and then do:

docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml build
docker compose -f docker-compose-https.yml -f docker-compose-https.override.yml up

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.

Schimbat în versiunea 4.17-1: Since Weblate 4.17-1, the Docker container uses Django 4.2 what requires PostgreSQL 12 or newer, please upgrade it prior to upgrading Weblate. See Actualizarea containerului PostgreSQL.

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 între versiunile majore nu sunt suportate de Weblate. De exemplu, dacă sunteți pe seria 3.x și doriți să faceți upgrade la 4.x, faceți mai întâi upgrade la cea mai recentă imagine 4.0.x-y (la momentul scrierii acestui articol este 4.0.4-5), care va face migrația ș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. Consultați Actualizarea containerului PostgreSQL pentru actualizarea serverului PostgreSQL.

Actualizarea containerului PostgreSQL#

Containerele PostgreSQL nu acceptă actualizarea automată între versiuni, trebuie să efectuați actualizarea manual. Următorii pași prezintă una dintre opțiunile de actualizare.

  1. Opriți containerul Weblate:

    docker compose stop weblate cache
    
  2. Efectuați o copie de rezervă a bazei de date:

    docker compose exec database pg_dumpall --clean --if-exists --username weblate > backup.sql
    
  3. Opriți containerul bazei de date:

    docker compose stop database
    
  4. Eliminați volumul PostgreSQL:

    docker compose rm -v database
    docker volume remove weblate-docker_postgres-data
    

    Sugestie

    The volume name contains name of the Docker Compose project, which is by default the directory name what is weblate-docker in this documentation.

  5. Ajustați docker-compose.yml pentru a utiliza noua versiune PostgreSQL.

  6. Porniți containerul bazei de date:

    docker compose up -d database
    
  7. Restaurați baza de date din backup:

    cat backup.sql | docker compose exec -T database psql --username weblate --dbname weblate
    

    Sugestie

    Please check that the database name matches POSTGRES_DB.

  8. (Optional) Update password for the Weblate user. This might be needed when migrating to PostgreSQL 14 or 15 as way of storing passwords has been changed:

    docker compose exec -T database psql --username weblate --dbname weblate -c "ALTER USER weblate WITH PASSWORD 'weblate'"
    

    Sugestie

    Please check that the database name matches POSTGRES_DB.

  9. Porniți toate containerele rămase:

    docker compose up -d
    

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.

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#

Many of Weblate’s Configurație can be set in the Docker container using the environment variables described below.

If you need to define a setting not exposed through Docker environment variables, see Configuration beyond environment variables.

Passing secrets#

Nou în versiunea 5.0.

Weblate container supports passing secrets as files. To utilize that, append _FILE suffix to the environment variable and pass secret file via Docker.

Related docker-compose.yml might look like:

services:
   weblate:
      environment:
         POSTGRES_PASSWORD_FILE: /run/secrets/db_password
      secrets:
         - db_password
   database:
      environment:
         POSTGRES_PASSWORD_FILE: /run/secrets/db_password
      secrets:
         - db_password


secrets:
   db_password:
     file: db_password.txt

Setări generice#

WEBLATE_DEBUG#

Configurează modul de depanare Django folosind DEBUG.

Exemplu:

environment:
  WEBLATE_DEBUG: 1
WEBLATE_LOGLEVEL#

Configures the logging verbosity. Set this to DEBUG to get more detailed logs.

Defaults to INFO when WEBLATE_DEBUG is turned off, DEBUG is used when debug mode is turned on.

For more silent logging use ERROR or WARNING.

WEBLATE_LOGLEVEL_DATABASE#

Configurează înregistrarea în jurnal a verbozității interogărilor bazei de date.

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_SERVER_EMAIL#

Adresa de e-mail de la care sunt trimise mesajele de eroare.

WEBLATE_DEFAULT_FROM_EMAIL#

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

WEBLATE_ADMINS_CONTACT#

Configures ADMINS_CONTACT.

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_REGISTRATION_REBIND#

Nou în versiunea 4.16.

Configures REGISTRATION_REBIND.

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_INTERLEDGER_PAYMENT_POINTERS#

Nou în versiunea 4.12.1.

Permite lui Weblate să seteze câmpul meta[name=monetization] în capul documentului. Dacă sunt specificate mai multe câmpuri, se alege unul la întâmplare.

Vezi și

: setări:INTERLEDGER_PAYMENT_POINTERS

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_IP_PROXY_OFFSET#

Nou în versiunea 5.0.1.

Configures IP_PROXY_OFFSET.

WEBLATE_USE_X_FORWARDED_PORT#

Nou în versiunea 5.0.1.

A boolean that specifies whether to use the X-Forwarded-Port header in preference to the SERVER_PORT META variable. This should only be enabled if a proxy which sets this header is in use.

Notă

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

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.

To enforce authentication for the contact form, do:

environment:
  WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS: /contact/$
WEBLATE_GOOGLE_ANALYTICS_ID#

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

WEBLATE_DEFAULT_PULL_MESSAGE#

Configurează titlul și mesajul implicit pentru solicitările de extragere prin API prin modificarea DEFAULT_PULL_MESSAGE

WEBLATE_SIMPLIFY_LANGUAGES#

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

WEBLATE_DEFAULT_ACCESS_CONTROL#

Configurează controlul implicit Control acces 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 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_API_RATELIMIT_ANON#
WEBLATE_API_RATELIMIT_USER#

Nou în versiunea 4.11.

Configurează limitarea ratei API. Valoarea implicită este de 100/zi pentru utilizatorii anonimi și 5000/oră pentru utilizatorii autentificați.

WEBLATE_ENABLE_HOOKS#

Nou în versiunea 4.13.

Configurează ENABLE_HOOKS.

WEBLATE_ENABLE_AVATARS#

Nou în versiunea 4.6.1.

Configurează ENABLE_AVATARS.

WEBLATE_AVATAR_URL_PREFIX#

Nou în versiunea 4.15.

Configurează AVATAR_URL_PREFIX.

WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH#

Nou în versiunea 4.9.

Configurează LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH.

WEBLATE_SSH_EXTRA_ARGS#

Nou în versiunea 4.9.

Configurează SSH_EXTRA_ARGS.

WEBLATE_BORG_EXTRA_ARGS#

Nou în versiunea 4.9.

Configures BORG_EXTRA_ARGS as a comma separated list of args.

Exemplu:

environment:
  WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
WEBLATE_ENABLE_SHARING#

Nou în versiunea 4.14.1.

Configurează ENABLE_SHARING.

WEBLATE_SUPPORT_STATUS_CHECK#

Nou în versiunea 5.5.

Configures SUPPORT_STATUS_CHECK.

WEBLATE_EXTRA_HTML_HEAD#

Nou în versiunea 4.15.

Configures EXTRA_HTML_HEAD.

WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE#

Nou în versiunea 4.15.

Configures PRIVATE_COMMIT_EMAIL_TEMPLATE.

WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN#

Nou în versiunea 4.15.

Configures PRIVATE_COMMIT_EMAIL_OPT_IN.

WEBLATE_UNUSED_ALERT_DAYS#

Nou în versiunea 4.17.

Configures UNUSED_ALERT_DAYS.

WEBLATE_CORS_ALLOWED_ORIGINS#

Nou în versiunea 4.16.

Allow CORS requests from given origins.

Exemplu:

environment:
  WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
CLIENT_MAX_BODY_SIZE#

Nou în versiunea 4.16.3.

Configures maximal body size accepted by the built-in web server.

environment:
    CLIENT_MAX_BODY_SIZE: 200m

Sugestie

This variable intentionally lacks WEBLATE_ prefix as it is shared with third-party container used in Certificate SSL automate folosind Let’s Encrypt.

Code hosting sites credentials#

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 solicitări de tracțiune, but applies to all Integrare control versiune with appropriately changed variable names.

An example configuration for GitHub might look like:

WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com

Will be used as:

GITHUB_CREDENTIALS = {
    "api.github.com": {
        "username": "api-user",
        "token": "api-token",
    }
}

Alternatively the Python dictionary can be provided as a string:

WEBLATE_GITHUB_CREDENTIALS='{ "api.github.com": { "username": "api-user", "token": "api-token", } }'

Or the path to a file containing the Python dictionary:

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 solicitări de tracțiune by changing GITHUB_CREDENTIALS.

WEBLATE_GITLAB_USERNAME#
WEBLATE_GITLAB_TOKEN#
WEBLATE_GITLAB_HOST#
WEBLATE_GITLAB_CREDENTIALS#

Configures Cereri de fuziune GitLab by changing GITLAB_CREDENTIALS.

WEBLATE_GITEA_USERNAME#
WEBLATE_GITEA_TOKEN#
WEBLATE_GITEA_HOST#
WEBLATE_GITEA_CREDENTIALS#

Configures Gitea cereri de pull by changing GITEA_CREDENTIALS.

WEBLATE_PAGURE_USERNAME#
WEBLATE_PAGURE_TOKEN#
WEBLATE_PAGURE_HOST#
WEBLATE_PAGURE_CREDENTIALS#

Configures Cereri de fuziune Pagure by changing PAGURE_CREDENTIALS.

WEBLATE_BITBUCKETSERVER_USERNAME#
WEBLATE_BITBUCKETSERVER_TOKEN#
WEBLATE_BITBUCKETSERVER_HOST#
WEBLATE_BITBUCKETSERVER_CREDENTIALS#

Configures Bitbucket Server pull requests by changing BITBUCKETSERVER_CREDENTIALS.

WEBLATE_AZURE_DEVOPS_USERNAME#
WEBLATE_AZURE_DEVOPS_ORGANIZATION#
WEBLATE_AZURE_DEVOPS_TOKEN#
WEBLATE_AZURE_DEVOPS_HOST#
WEBLATE_AZURE_DEVOPS_CREDENTIALS#

Configures Azure DevOps pull requests by changing AZURE_DEVOPS_CREDENTIALS.

Setări de sugestii automate#

Schimbat în versiunea 4.13: Serviciile de sugestie automată sunt acum configurate în interfața cu utilizatorul, a se vedea Sugestii automate.

Variabilele de mediu existente sunt importate în timpul migrării la Weblate 4.13, dar modificarea lor nu va mai avea niciun efect.

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

Activează Autentificarea GitHub.

GitHub Enterprise Edition#

WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_URL#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL#
WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE#

Enables GitHub EE authentication.

Bitbucket#

WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY#
WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET#
WEBLATE_SOCIAL_AUTH_BITBUCKET_KEY#
WEBLATE_SOCIAL_AUTH_BITBUCKET_SECRET#

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.

Gitea#

WEBLATE_SOCIAL_AUTH_GITEA_API_URL#
WEBLATE_SOCIAL_AUTH_GITEA_KEY#
WEBLATE_SOCIAL_AUTH_GITEA_SECRET#

Enables Gitea authentication.

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#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_TITLE#
WEBLATE_SOCIAL_AUTH_KEYCLOAK_IMAGE#

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_OPENINFRA#
WEBLATE_SOCIAL_AUTH_UBUNTU#

Slack#

WEBLATE_SOCIAL_AUTH_SLACK_KEY#
SOCIAL_AUTH_SLACK_SECRET#

Activează autentificarea Slack, vezi Slack.

Conectare OpenID#

Nou în versiunea 4.13-1.

WEBLATE_SOCIAL_AUTH_OIDC_OIDC_ENDPOINT#
WEBLATE_SOCIAL_AUTH_OIDC_KEY#
WEBLATE_SOCIAL_AUTH_OIDC_SECRET#
WEBLATE_SOCIAL_AUTH_OIDC_USERNAME_KEY#

Configures generic OpenID Connect integration.

Vezi și

psa:backend/oidc

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#
WEBLATE_SAML_IDP_IMAGE#
WEBLATE_SAML_IDP_TITLE#

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

WEBLATE_SAML_ID_ATTR_NAME#
WEBLATE_SAML_ID_ATTR_USERNAME#
WEBLATE_SAML_ID_ATTR_EMAIL#
WEBLATE_SAML_ID_ATTR_USER_PERMANENT_ID#

Nou în versiunea 4.18.

SAML attributes mapping.

Alte setări de autentificare#

WEBLATE_NO_EMAIL_AUTH#

Dezactivează autentificarea e-mailurilor atunci când este setat la orice valoare. A se vedea Dezactivarea autentificării prin parolă.

WEBLATE_MIN_PASSWORD_SCORE#

Minimal password score as evaluated by the zxcvbn password strength estimator. Defaults to 3, set to 0 to disable strenght checking.

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.

Vezi și

Passing secrets

POSTGRES_USER#

Nume de utilizator PostgreSQL.

POSTGRES_DB#

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.

The lifetime of a database connection, as an integer of seconds. Use 0 to close database connections at the end of each request.

Schimbat în versiunea 5.1: The default behavior is to have unlimited persistent database connections.

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.

Dezactivați cursorii de pe server în baza de date. Acest lucru este necesar în unele configurații pgbouncer.

Exemplu de configurare:

environment:
    POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1

Vezi și

DISABLE_SERVER_SIDE_CURSORS, django:transaction-pooling-server-side-cursorsors

WEBLATE_DATABASES#

Nou în versiunea 5.1.

Set to false to disables environment based configuration of the database connection. Use Overriding settings from the data volume to configure the database connection manually.

MySQL or MariaDB server#

Neither MySQL nor MariaDB can not be configured via environment variables. See MySQL și MariaDB for info on using those with Weblate. Use WEBLATE_DATABASES to configure the database connection manually.

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.

Vezi și

Passing secrets

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

Schimbat în versiunea 4.11: Suportul SSL/TLS este activat automat pe baza parametrului WEBLATE_EMAIL_PORT.

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.

Schimbat în versiunea 4.11: Suportul SSL/TLS este activat automat pe baza parametrului WEBLATE_EMAIL_PORT.

WEBLATE_EMAIL_BACKEND#

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

WEBLATE_AUTO_UPDATE#

Configurează dacă și cum Weblate trebuie să actualizeze depozitele.

Notă

Aceasta este o setare booleană (utilizați "true" sau "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.

Collecting error reports and monitoring performance#

Se recomandă colectarea sistematică a erorilor de la instalare, a se vedea Collecting error reports and monitoring performance.

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#

Your Sentry DSN, see SENTRY_DSN.

SENTRY_ENVIRONMENT#

Your Sentry Environment (optional), defaults to WEBLATE_SITE_DOMAIN.

SENTRY_TRACES_SAMPLE_RATE#

Configure sampling rate for performance monitoring. Set to 1 to trace all events, 0 (the default) disables tracing.

Exemplu:

environment:
  SENTRY_TRACES_SAMPLE_RATE: 0.5
SENTRY_PROFILES_SAMPLE_RATE#

Configure sampling rate for profiling monitoring. Set to 1 to trace all events, 0 (the default) disables tracing.

Exemplu:

environment:
  SENTRY_PROFILES_SAMPLE_RATE: 0.5

Vezi și

Sentry Profiling

SENTRY_SEND_PII#

Configures SENTRY_SEND_PII.

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, add-onurilor sau autofixelor activate#

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.

Este folosit pentru a determina CELERY_MAIN_OPTIONS, CELERY_NOTIFY_OPTIONS, CELERY_MEMORY_OPTIONS, : envvar:CELERY_TRANSLATE_OPTIONS, CELERY_BACKUP_OPTIONS, CELERY_BEAT_OPTIONS și WEB_WORKERS. Puteți utiliza aceste setări pentru a regla cu precizie.

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.

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.

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

Read-only root filesystem#

Nou în versiunea 4.18.

When running the container with a read-only root filesystem, two additional tmpfs volumes are required - /tmp and /run.

Configuration beyond environment variables#

Docker environment variables are intended to expose most configuration settings of relevance for Weblate installations.

If you find a setting that is not exposed as an environment variable, and you believe that it should be, feel free to ask for it to be exposed in a future version of Weblate.

If you need to modify a setting that is not exposed as a Docker environment variable, you can still do so, either from the data volume or extending the Docker image.

Overriding settings from the data volume#

You can create a file at /app/data/settings-override.py, i.e. at the root of the data volume, to extend or override settings defined through environment variables.

Overriding settings by extending the Docker image#

To override settings at the Docker image level instead of from the data volume:

  1. Create a custom Python package.

  2. Add a module to your package that imports all settings from weblate.settings_docker.

    For example, within the example package structure defined at Crearea unui modul Python, you could create a file at weblate_customization/weblate_customization/settings.py with the following initial code:

    from weblate.settings_docker import *
    
  3. Create a custom Dockerfile that inherits from the official Weblate Docker image, and then installs your package and points the DJANGO_SETTINGS_MODULE environment variable to your settings module:

    FROM weblate/weblate
    
    USER root
    
    COPY weblate_customization /usr/src/weblate_customization
    RUN pip install --no-cache-dir /usr/src/weblate_customization
    ENV DJANGO_SETTINGS_MODULE=weblate_customization.settings
    
    USER 1000
    
  4. Instead of using the official Weblate Docker image, build a custom image from this Dockerfile file.

    There is no clean way to do this with docker-compose.override.yml. You could add build: . to the weblate node in that file, but then your custom image will be tagged as weblate/weblate in your system, which could be problematic.

    So, instead of using the docker-compose.yml straight from the official repository, unmodified, and extending it through docker-compose.override.yml, you may want to make a copy of the official docker-compose.yml file, and edit your copy to replace image: weblate/weblate with build: ..

    See the Compose file build reference for details on building images from source when using docker-compose.

  5. Extend your custom settings module to define or redefine settings.

    You can define settings before or after the import statement above to determine which settings take precedence. Settings defined before the import statement can be overridden by environment variables and setting overrides defined in the data volume. Setting defined after the import statement cannot be overridden.

    You can also go further. For example, you can reproduce some of the things that weblate.docker_settings does, such as exposing settings as environment variables, or allow overriding settings from Python files in the data volume.

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

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.

Această abordare poate fi utilizată și pentru a suprascrie șabloanele Weblate. De exemplu, documentele Legal pot fi plasate în /app/data/python/customize/templates/legal/documents.

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

Configurarea serverului PostgreSQL#

Containerul PostgreSQL utilizează configurația PostgreSQL implicită și nu va utiliza eficient nucleele CPU sau memoria. Se recomandă personalizarea configurației pentru a îmbunătăți performanța.

Configurația poate fi ajustată așa cum este descris în Database Configuration la https://hub.docker.com/_/postgres. Configurația care corespunde mediului dumneavoastră poate fi generată folosind https://pgtune.leopard.in.ua/.

Container internals#

The container is using supervisor to start individual services. In case of Scalare pe orizontală, it only starts single service in a container.

To check the services status use:

docker compose exec --user weblate weblate supervisorctl status

There are individual services for each Celery queue (see Sarcini de fundal folosind Celery for details). You can stop processing some tasks by stopping the appropriate worker:

docker compose exec --user weblate weblate supervisorctl stop celery-translate