Installeren met Docker

Met een docker-uitrol van Weblate kunt u uw persoonlijke instantie van Weblate in seconden hebben ingesteld en gereed voor gebruik. Alle afhankelijkheden voor Weblate zijn al opgenomen. PostgreSQL is ingesteld als de standaard database en Valkey als een backend voor cachen.

Hardware vereisten

Weblate zou zonder problemen moeten kunnen worden uitgevoerd op elke hedendaagse hardware, het volgende is de minimale configuratie die is vereist om Weblate uit te voeren als een enkele host (Weblate, database en webserver):

  • 3 GB RAM

  • 2 CPU-bronnen

  • 1 GB opslagruimte

Notitie

Feitelijke vereisten voor uw installatie van Weblate kunnen enorm variëren, gebaseerd op de grootte van de vertalingen die erin beheerd moeten worden.

Geheugengebruik

Hoe meer geheugen hoe beter - het wordt gebruikt voor cachen op alle niveaus (bestandssysteem, database en Weblate). Voor honderden vertaalonderdelen wordt ten minste 4 GB RAM aanbevolen.

Hint

Voor systemen met minder geheugen dan aanbevolen, wordt Opstelling een-proces Celery aanbevolen.

CPU-gebruik

Veel gelijktijdige gebruikers verhogen het aantal benodigde CPU-bronnen.

Opslaggebruik

Het gewoonlijke gebruik voor opslag van de database ligt rond de 300 MB per 1 miljoen gehoste woorden.

Opslagruimte die nodig is voor gekloonde opslagruimten varieert, maar Weblate probeert hun grootte minimaal te houden door oppervlakkig te klonen.

Knooppunt

Voor kleine en gemiddelde sites (miljoenen gehoste woorden), kunnen alle onderdelen van Weblate (bekijk Overzicht architectuur) worden uitgevoerd op een enkel knooppunt.

Wanneer u groeit naar honderden miljoenen gehoste woorden, wordt aanbevolen om een toegewezen knooppunt voor de database te hebben (bekijk Instellingen database voor Weblate).

Installatie

Hint

De volgende voorbeelden gaan ervan uit dat u een werkende omgeving voor Docker hebt, met docker-compose-plugin geïnstalleerd. Bekijk de documentatie van Docker voor instructies.

Dit maakt een uitgerolde server voor Weblate via HTTP, dus u zou het moeten plaatsen achter een HTTPS beëindigende proxy. U kunt ook uitrollen met een HTTPS proxy, bekijk Automatische SSL-certificaten met Let’s Encrypt. Voor grotere opstellingen, bekijk Horizontaal schalen.

  1. Kloon de weblate-docker repo:

    git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker
    cd weblate-docker
    
  2. Maak een bestand docker-compose.override.yml met uw instellingen. Bekijk Docker omgevingsvariabelen voor een volledige lijst met omgevingsvariabelen.

    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
    

    Notitie

    Als WEBLATE_ADMIN_PASSWORD niet is ingesteld, wordt de gebruiker admin gemaakt met een willekeurig wachtwoord dat wordt weergegeven bij de eerste keer opstarten.

    Het verschafte voorbeeld zorgt ervoor dat Weblate luistert op poort 80, bewerk de verwijzingen naar de poort in het bestand docker-compose.override.yml om dat te wijzigen.

  3. Weblate containers starten:

    docker compose up
    

Veel plezier met uw uitrol van Weblate, het is toegankelijk via poort 80 van de container weblate.

Docker image registratie kiezen

Weblate containers worden gepubliceerd naar de volgende registraties:

Notitie

Alle huidige voorbeelden halen afbeeldingen op vanaf Docker Hub, pas de configuratie overeenkomstig aan om een andere registratie te gebruiken.

Docker image tag kiezen

Kies een tag die overeenkomt met uw omgeving en uw verwachtingen:

Tagnaam

Omschrijving

Te gebruiken

latest

Weblate stabiele uitgave, komt overeen met de als latest getagde uitgave

Doorlopend bijwerken in een productieomgeving

<YEAR>

Weblate stabiele uitgave

Doorlopend bijwerken in een kalenderjaar in een productieomgeving

<YEAR>.<MONTH>

Weblate stabiele uitgave

Doorlopend bijwerken in een maandelijkse uitgave in een productieomgeving

<YEAR>.<MONTH>.<PATCH>.<BUILD>

Weblate stabiele uitgave

Goed gedefinieerde uitrol in een productieomgeving

edge

Weblate stabiele uitgave met ontwikkelingswijzigingen in de Docker container (bijvoorbeeld bijgewerkte afhankelijkheden)

Doorlopend bijwerken in een proefomgeving

edge-<DATE>-<SHA>

Weblate stabiele uitgave met ontwikkelingswijzigingen in de Docker container (bijvoorbeeld bijgewerkte afhankelijkheden)

Goed gedefinieerde uitrol in een proefomgeving

bleeding

Ontwikkelingsversie Weblate vanuit Git

Doorlopend bijwerken om aankomende mogelijkheden voor Weblate te testen

bleeding-<DATE>-<SHA>

Ontwikkelingsversie Weblate vanuit Git

Goed gedefinieerde uitrol om aankomende mogelijkheden voor Weblate te testen

Elk image is getest door ons CI voordat het werd gepubliceerd, dus zelfs de versie bleeding zou veilig genoeg moeten zijn om te gebruiken.

Volledige lijst met gepubliceerde tags is te vinden op GitHub Packages

Docker container met ondersteuning voor HTTPS

Bekijk Installatie voor algemene instructies voor uitrollen, dit gedeelte vermeldt alleen verschillen in vergelijking daarmee.

SSL eindigende proxy

SSL kan worden beëindigd buiten de container van Weblate container. Om dit goed samen te laten werken, moeten verscheidene koppen worden doorgegeven aan de container, zodat die zich bewust is van zijn feitelijke omgeving. Deze koppen worden meer in detail beschreven in Uitvoeren achter een omgekeerde proxy.

Voorbeeld van configuratie van een omgekeerde proxy van nginx voor een Docker-container.
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;
}
Omgeving Docker-container voor extern beëindigen van SSL.
WEBLATE_ENABLE_HTTPS=1
WEBLATE_IP_PROXY_HEADER=HTTP_X_FORWARDED_FOR

Eigen certificaten voor SSL gebruiken

In het geval dat u uw eigen certificaat voor SSL hebt dat u wilt gebruiken, plaats eenvoudigweg de bestanden in het Weblate-volume data (bekijk Docker container volumes):

  • ssl/fullchain.pem bevat het certificaat, inclusief alle benodigde CA-certificaten

  • ssl/privkey.pem bevat de privé-sleutel

Deze beide bestanden moeten eigendom zijn van dezelfde gebruiker als die welke de Docker container startte en het bestandsmasker hebben ingesteld op 600 (alleen te lezen en te beschrijven door de gebruiker die eigenaar is).

Aanvullend zal de Weblate container nu SSL-verbindingen accepteren op poort 4443, u zou de poort forwarding voor HTTPS op willen nemen in docker compose override:

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

Als u al andere sites host op dezelfde server, is het waarschijnlijk dat de poorten 80 en 443 worden gebruikt door een omgekeerde proxy, zoals NGINX. U kunt de volgende configuratie gebruiken om de HTTPS-verbinding van NGINX door te geven aan de Docker container:

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

Vervang <SITE_URL>, <SITE> en <EXPOSED_DOCKER_PORT> door de feitelijke waarden van uw omgeving.

Automatische SSL-certificaten met Let’s Encrypt

In het geval dat u Let’s Encrypt automatisch gegenereerde SSL-certificaten wilt gebruiken op een publieke installatie, moet u een omgekeerde HTTPS proxy toevoegen aan een aanvullende Docker container, https-portal zal daarvoor worden gebruikt. Die maakt gebruik van het bestand docker-compose-https.yml. Maak dan een bestand docker-compose-https.override.yml met uw instellingen:

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'

Altijd bij het uitvoeren van docker compose moet u beide bestanden er aan doorgeven, en dan doen:

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

Upgraden van de Docker container

Gewoonlijk is het een goed idee om alleen de Weblate container bij te werken en de PostgreSQL container op de versie te houden die u al hebt, omdat het bijwerken van PostgreSQL vrij pijnlijk is en in de meeste gevallen niet veel voordelen oplevert.

U kunt dit doen door te blijven bij de bestaande docker-compose en eenvoudigweg de laatste images op te halen en dan opnieuw op te starten:

# 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

De database van Weblate zou automatisch moeten worden gemigreerd bij de eerste keer opstarten, en er zou geen noodzaak moeten zijn voor aanvullende handmatige acties.

Notitie

Direct upgraden wordt alleen ondersteund voor uitgaven van het huidige of vorige kalenderjaar. Wanneer u moet upgraden vanuit een oudere uitgave, upgrade dan eerst naar een tussenliggende versie die is vermeld in Versie-specifieke instructies.

U zou misschien ook de opslagruimte docker-compose willen bijwerken, hoewel dat in de meeste gevallen niet nodig is. Bekijk PostgreSQL container upgraden voor het upgraden van de PostgreSQL-server.

PostgreSQL container upgraden

Notitie

PostgreSQL 18 wijzigde de standaard gegevensmap binnen de container. Een veel voorkomende oudere instelling bouwde het databasevolume op /var/lib/postgresql/data, terwijl PostgreSQL 18 nu standaard /var/lib/postgresql gebruikt.

Als u upgradet vanuit een oudere versie, werk dan het gemounte doel in uw Docker-configuratie bij naar het nieuwe pad, of behoudt het oude gemounte doel en stel PGDATA overeenkomstig in.

Het oude gemounte doel ongewijzigd laten, zonder PGDATA in te stellen, kan ervoor zorgen dan PostgreSQL zijn gegevens buiten het doorlopende volume plaatst.

Bekijk PGDATA documentatie voor meer informatie.

PostgreSQL containers ondersteunen niet automatisch upgraden tussen versies, u moet het upgraden handmatig uitvoeren. De hieronder weergegeven stappen geven een van de opties voor upgraden weer.

  1. Weblate container stoppen:

    docker compose stop weblate cache
    
  2. Back-up de database:

    docker compose exec database pg_dumpall --clean --if-exists --username weblate > backup.sql
    
  3. Stop de database container:

    docker compose stop database
    
  4. Verwijder het volume van PostgreSQL:

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

    Hint

    De naam van het volume bevat de naam van het project van Docker Compose, wat standaard de naam van de map is, dat is weblate-docker in deze documentatie.

  5. Pas docker-compose.yml aan om de nieuwe versie van PostgreSQL te gebruiken.

  6. Start de database container:

    docker compose up -d database
    
  7. Zet de database terug vanuit de back-up:

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

    Hint

    Controleer of de naam van de database overeenkomt met POSTGRES_DB.

  8. (Optioneel) Werk het wachtwoord voor de gebruiker Weblate bij. Dit zou nodig kunnen zijn bij migreren naar PostgreSQL 14 of 15, omdat de manier van opslaan van wachtwoorden is veranderd:

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

    Hint

    Controleer of de naam van de database overeenkomt met POSTGRES_DB.

  9. Start alle resterende containers:

    docker compose up -d
    

Beheerder inloggen

Na het instellen van de container kunt u inloggen als gebruiker admin met het wachtwoord dat is opgegeven in WEBLATE_ADMIN_PASSWORD, of een willekeurig wachtwoord dat is gegenereerd bij de eerste keer opstarten, als dat niet was opgegeven.

Herstellen van het wachtwoord voor admin, start de container opnieuw op met WEBLATE_ADMIN_PASSWORD ingesteld op het nieuwe wachtwoord.

Aantal processen en geheugengebruik

Het aantal processen voor werkers voor zowel WSGI en Celery wordt automatisch bepaald, gebaseerd op het aantal CPU’s. Dit werkt goed voor de meeste machines in de virtuele cloud, omdat die gewoonlijk een paar CPU’s hebben en een goede hoeveelheid geheugen.

Voor het geval u veel CPU-bronnen hebt en problemen met het geheugen ervaart, probeer het aantal werkers te verkleinen:

environment:
  WEBLATE_WORKERS: 2

U kunt ook de categorieën van individuele werkers fijner afstemmen:

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

Geheugengebruik kan verder worden beperkt door slechts een enkel proces voor Celery uit te voeren:

environment:
  CELERY_SINGLE_PROCESS: 1

Horizontaal schalen

Added in version 4.6.

U kunt meerdere Weblate containers uitvoeren om de service horizontaal te schalen. Het volume /app/data moet worden gedeeld door alle containers, aanbevolen wordt een geclusterd bestandssysteem hiervoor te gebruiken, zoals GlusterFS. Het volume /app/cache moet voor elke container afzonderlijk zijn.

Elke Weblate container heeft een rol gedefinieerd met de omgevingsvariabele WEBLATE_SERVICE. Volg de documentatie zorgvuldig, omdat sommige services slechts een keer zouden moeten worden uitgevoerd in de cluster, en de volgorde van de services is ook van belang.

U kunt een voorbeeld voor de opstelling vinden in de opslagruimte docker-compose als docker-compose-split.yml.

Docker omgevingsvariabelen

Veel van de Configuratie van Weblate kan worden ingesteld in de Docker container met de hieronder beschreven omgevingsvariabelen.

Als u een instelling moet definiëren die niet is weergegeven in de Docker omgevingsvariabelen, bekijk Configuratie voorbij omgevingsvariabelen.

Geheim invoeren

Added in version 5.0.

Weblate container ondersteunt het doorgeven van geheimen als bestanden. Voeg, om dat te gebruiken, het achtervoegsel _FILE toe aan de omgevingsvariabele en geef het bestand met het geheim door via Docker.

Het gerelateerde docker-compose.yml zou er zo uit kunnen zien:

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

Generieke instellingen

WEBLATE_DEBUG

Configureert de Django debug-modus met DEBUG.

Voorbeeld:

environment:
  WEBLATE_DEBUG: 1
WEBLATE_LOGLEVEL

Configureert de registratie breedsprakigheid. Zet dit op DEBUG om meer gedetailleerde logs te zien.

Standaard ingesteld op INFO als WEBLATE_DEBUG uitgezet is, DEBUG wordt gebruikt als de debug-modus aangezet is.

Voor stillere registratie, gebruik ERROR of WARNING.

WEBLATE_LOGLEVEL_DATABASE

Configureert het loggen van de hoeveelheid informatie in de query’s van de database.

WEBLATE_LOG_GELF_HOST

Added in version 5.9.

Configureert loggen op afstand met een TCP-verbinding voor GELF. Kan worden gebruikt om te integreren met Graylog.

WEBLATE_LOG_GELF_PORT

Added in version 5.9.

Aangepaste poort gebruiken voor WEBLATE_LOG_GELF_HOST, standaard is 12201.

WEBLATE_SITE_TITLE

Wijzigt de site-titel die getoond wordt in de header van alle pagina’s.

WEBLATE_SITE_DOMAIN

Configureert het site domein. Deze parameter is verplicht.

Neem de poort op als er geen standaard poort gebruikt wordt.

Voorbeeld:

environment:
  WEBLATE_SITE_DOMAIN: example.com:8080
WEBLATE_ADMIN_NAME
WEBLATE_ADMIN_EMAIL

Configureert de site-admin zijn naam en e-mail. Wordt gebruikt voor de ADMINS instelling alsook het maken van een admin gebruiker (zie WEBLATE_ADMIN_PASSWORD voor meer informatie hierover).

Voorbeeld:

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

Zet het wachtwoord voor de admin gebruiker.

  • Indien niet ingesteld en de gebruiker admin bestaat niet, wordt het gemaakt met een willekeurig wachtwoord, dat wordt weergegeven bij de eerste keer opstarten.

  • Indien niet ingesteld en de gebruiker admin bestaat, wordt geen actie uitgevoerd.

  • Indien ingesteld wordt de gebruiker admin aangepast bij het opstarten van elke container om overeen te komen met WEBLATE_ADMIN_PASSWORD, WEBLATE_ADMIN_NAME en WEBLATE_ADMIN_EMAIL.

Waarschuwing

Het zou een beveiligingsrisico kunnen zijn om het wachtwoord op te slaan in het bestand voor de configuratie. Overweeg om deze variabele alleen te gebruiken voor de initiële opstelling (of laat Weblate een willekeurig wachtwoord genereren bij het opstarten) of voor het herstellen van het wachtwoord.

WEBLATE_ADMIN_NOTIFY_ERROR

Of e-mail aan de admins moet worden verzonden bij fouten op de server. Standaard ingeschakeld.

U wilt misschien een andere verzameling voor fouten gebruiken, zoals Sentry of Rollbar, en dit uitschakelen.

WEBLATE_SERVER_EMAIL

Het e-mailadres van waaruit foutberichten worden verstuurd.

WEBLATE_DEFAULT_FROM_EMAIL

Configureert het adres voor uitgaande e-mails.

WEBLATE_ADMINS_CONTACT

Configureert ADMINS_CONTACT.

WEBLATE_CONTACT_FORM

Configureert het gedrag voor het contactformulier, bekijk CONTACT_FORM.

WEBLATE_ALLOWED_HOSTS

Configureert toegestane HTTP-hostnamen met ALLOWED_HOSTS.

Standaard * dat alle hostnamen toestaat.

Voorbeeld:

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

Configureert of registreren mogelijk is door te schakelen REGISTRATION_OPEN.

Voorbeeld:

environment:
  WEBLATE_REGISTRATION_OPEN: 0
WEBLATE_REGISTRATION_CAPTCHA

Added in version 5.10.

Configureert of captcha wordt gebruikt voor registreren en andere acties voor autoriseren, bekijk REGISTRATION_CAPTCHA.

Voorbeeld:

environment:
  WEBLATE_REGISTRATION_CAPTCHA: 0
WEBLATE_REGISTRATION_ALLOW_BACKENDS

Configureer welk methoden voor authenticatie kunnen worden gebruikt om een nieuw account te maken via REGISTRATION_ALLOW_BACKENDS.

Voorbeeld:

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

Added in version 4.16.

Configureert REGISTRATION_REBIND.

WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS

Added in version 5.16.1.

Configureert REGISTRATION_ALLOW_DISPOSABLE_EMAILS.

Voorbeeld:

environment:
  WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS: 1
WEBLATE_PROJECT_WEB_RESTRICT_PRIVATE

Added in version 5.17.

Configureert PROJECT_WEB_RESTRICT_PRIVATE.

Standaard ingeschakeld.

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.

Configureert WEBHOOK_RESTRICT_PRIVATE.

Standaard ingeschakeld.

WEBLATE_WEBHOOK_PRIVATE_ALLOWLIST

Added in version 5.17.

Configureert WEBHOOK_PRIVATE_ALLOWLIST.

Expects a comma-separated list of trusted hostnames or domains.

WEBLATE_ASSET_RESTRICT_PRIVATE

Added in version 2025.5.

Configureert ASSET_RESTRICT_PRIVATE.

Standaard ingeschakeld.

WEBLATE_ASSET_PRIVATE_ALLOWLIST

Added in version 2025.5.

Configureert ASSET_PRIVATE_ALLOWLIST.

Expects a comma-separated list of trusted hostnames or domains.

WEBLATE_TIME_ZONE

Configureert de gebruikte tijdzone in Weblate, bekijk TIME_ZONE.

Notitie

Gebruik de omgevingsvariabele TZ om de tijdzone van de Docker container zelf te wijzigen.

Voorbeeld:

environment:
  WEBLATE_TIME_ZONE: Europe/Prague
WEBLATE_ENABLE_HTTPS

Laat Weblate ervan uitgaan dat het wordt uitgevoerd vanachter een omgekeerde HTTPS-proxy, het zorgt ervoor dat Weblate HTTPS gebruikt in e-mail en koppelingen voor de API of veilige vlaggen instelt in cookies.

Hint

Bekijk de documentatie van ENABLE_HTTPS voor mogelijke valkuilen.

Notitie

Dit zorgt er niet voor dat de Weblate container HTTPS-verbindingen accepteert, u moet dat ook configureren, bekijk Docker container met ondersteuning voor HTTPS voor voorbeelden.

Voorbeeld:

environment:
  WEBLATE_ENABLE_HTTPS: 1
WEBLATE_NGINX_IPV6

Added in version 5.17.

Beheert of de gebundelde NGINX luistert op IPv6-adressen.

Ondersteunde waarden zijn:

  • auto om IPv6-listeners alleen in te schakelen als IPv6 beschikbaar is in de container-runtime. Dit is de standaard.

  • on om IPv6-listeners altijd in te schakelen.

  • off om IPv6-listeners uit te schakelen.

Voorbeeld:

environment:
  WEBLATE_NGINX_IPV6: auto
WEBLATE_IP_PROXY_HEADER

Laat Weblate het IP-adres ophalen van een opgegeven HTTP-header. Gebruik dit bij het gebruiken van een omgekeerde proxy voor de Weblate container.

Schakelt IP_BEHIND_REVERSE_PROXY in en stelt IP_PROXY_HEADER in.

Notitie

De indeling moet zich conformeren aan de verwachtingen van Django. Django transformeert namen van ruwe HTTP- header als volgt:

  • converteert alle tekens naar hoofdletters

  • vervangt alle afbreekstreepjes door underscores

  • voegt het voorvoegsel HTTP_ toe

Dus X-Forwarded-For zou worden hernoemd naar HTTP_X_FORWARDED_FOR.

Voorbeeld:

environment:
  WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
WEBLATE_IP_PROXY_OFFSET

Added in version 5.0.1.

Configureert IP_PROXY_OFFSET.

WEBLATE_USE_X_FORWARDED_PORT

Added in version 5.0.1.

Een Booleaanse waarde die specificeert of de kop X-Forwarded-Port moet worden gebruikt als voorkeur voor de variabele SERVER_PORT META. Dit zou alleen ingeschakeld moeten worden als een proxy, die deze kop instelt, in gebruik is.

Notitie

Dit is een instelling met een Booleaanse waarde (gebruik "true" of "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.

Voorbeeld:

environment:
  WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
WEBLATE_REQUIRE_LOGIN

Schakelt REQUIRE_LOGIN in om authenticatie af te dwingen voor geheel Weblate.

Voorbeeld:

environment:
  WEBLATE_REQUIRE_LOGIN: 1

Schakelt de module Wettelijke module in voor uitrollen van Docker. Standaard is de integratie uitgeschakeld; laat deze variabele als niet ingesteld of leeg om het uit te schakelen.

Ondersteunde waarden zijn:

  • tos-confirm om de module Legal in te schakelen en bevestigen van gebruiksbepalingen afdwingen gedurende sociale authenticatie en voor aangemelde gebruikers.

  • wllegal om dezelfde integratie in te schakelen en aanvullend de gehoste sjablonen voor wettelijke documenten te laden vanuit wllegal. Deze sjablonen worden gebruikt door services die worden uitgevoerd door Weblate s.r.o. en zijn niet bedoeld voor algemeen gebruik.

Uw eigen wettelijke documenten aanbieden in Docker, overschrijf de sjablonen in /app/data/python/customize/templates/legal/documents, bekijk Vervangen van logo en andere statische bestanden.

Voorbeeld:

environment:
  WEBLATE_LEGAL_INTEGRATION: tos-confirm
WEBLATE_PUBLIC_ENGAGE

Configureert PUBLIC_ENGAGE.

WEBLATE_GOOGLE_ANALYTICS_ID

Configureert ID voor Google Analytics door GOOGLE_ANALYTICS_ID te wijzigen.

WEBLATE_DEFAULT_PULL_MESSAGE

Configureert de standaard titel en bericht voor pull requests via de API door DEFAULT_PULL_MESSAGE te wijzigen.

WEBLATE_SIMPLIFY_LANGUAGES

Configureert het beleid voor het vereenvoudigen van taal, bekijk SIMPLIFY_LANGUAGES.

WEBLATE_HIDE_SHARED_GLOSSARY_COMPONENTS

Verbergt gedeelde onderdelen van de woordenlijst voor andere projecten, zie HIDE_SHARED_GLOSSARY_COMPONENTS.

WEBLATE_DEFAULT_ACCESS_CONTROL

Configureert het standaard Toegangsbeheer voor nieuwe projecten, bekijk DEFAULT_ACCESS_CONTROL.

WEBLATE_DEFAULT_TRANSLATION_REVIEW

Added in version 5.16.

Configureert de standaardwaarde voor Beoordelingen inschakelen, standaard uitgeschakeld.

WEBLATE_DEFAULT_SOURCE_REVIEW

Added in version 5.16.

Configureert de standaardwaarde van Bronbeoordelingen inschakelen, standaard uitgeschakeld.

WEBLATE_DEFAULT_RESTRICTED_COMPONENT

Configureert de standaard waarde van Beperkte toegang voor nieuwe onderdelen, bekijk DEFAULT_RESTRICTED_COMPONENT.

WEBLATE_DEFAULT_TRANSLATION_PROPAGATION

Configureert de standaard waarde van Sta propageren van vertalingen toe voor nieuwe onderdelen, bekijk DEFAULT_TRANSLATION_PROPAGATION.

WEBLATE_DEFAULT_COMMITER_EMAIL

Configureert DEFAULT_COMMITER_EMAIL.

WEBLATE_DEFAULT_COMMITER_NAME

Configureert DEFAULT_COMMITER_NAME.

WEBLATE_DEFAULT_SHARED_TM

Configureert DEFAULT_SHARED_TM.

WEBLATE_DEFAULT_AUTOCLEAN_TM

Configureert DEFAULT_AUTOCLEAN_TM.

WEBLATE_COMMIT_PENDING_HOURS

Configureert de standaard waarde van Ouderdom van door te voeren wijzigingen voor nieuwe onderdelen, bekijk COMMIT_PENDING_HOURS.

WEBLATE_GPG_IDENTITY

Configureert het met GPG ondertekenen van commits, bekijk WEBLATE_GPG_IDENTITY.

WEBLATE_URL_PREFIX

Configureert het voorvoegsel voor de URL waar Weblate wordt uitgevoerd, bekijk URL_PREFIX.

WEBLATE_STATIC_URL

Configureert het voorvoegsel voor de URL voor statische bestanden, geserveerd vanaf CACHE_DIR.

WEBLATE_SILENCED_SYSTEM_CHECKS

Configureert controles die u niet wilt hebben weergegeven, bekijk 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

Maakt het mogelijk de HTTP header Content-Security-Policy aan te passen.

WEBLATE_LICENSE_FILTER

Configureert LICENSE_FILTER.

WEBLATE_LICENSE_REQUIRED

Configureert LICENSE_REQUIRED.

WEBLATE_WEBSITE_REQUIRED

Configureert WEBSITE_REQUIRED.

WEBLATE_VERSION_DISPLAY

Configureert VERSION_DISPLAY.

WEBLATE_HIDE_VERSION

Configureert HIDE_VERSION.

WEBLATE_BASIC_LANGUAGES

Configureert BASIC_LANGUAGES.

WEBLATE_DEFAULT_AUTO_WATCH

Configureert DEFAULT_AUTO_WATCH.

WEBLATE_RATELIMIT_ATTEMPTS
WEBLATE_RATELIMIT_LOCKOUT
WEBLATE_RATELIMIT_WINDOW

Added in version 4.6.

Configureert tijdslimiet.

Hint

U kunt een configuratie instellen voor elk bereik aan tijdslimieten. Voeg, om dat te doen, het voorvoegsel WEBLATE_ toe aan elke instelling die wordt beschreven in Opvraaglimiet gebruiken.

WEBLATE_API_RATELIMIT_ANON
WEBLATE_API_RATELIMIT_USER

Added in version 4.11.

Configureert API-toegangslimiet. Standaard 100/day voor anoniem en 5000/hour voor geauthenticeerde gebruikers.

WEBLATE_ENABLE_HOOKS

Added in version 4.13.

Configureert ENABLE_HOOKS.

WEBLATE_ENABLE_AVATARS

Added in version 4.6.1.

Configureert ENABLE_AVATARS.

WEBLATE_AVATAR_URL_PREFIX

Added in version 4.15.

Configureert AVATAR_URL_PREFIX.

WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH

Added in version 4.9.

Configureert LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH.

WEBLATE_SSH_EXTRA_ARGS

Added in version 4.9.

Configureert SSH_EXTRA_ARGS.

WEBLATE_BORG_EXTRA_ARGS

Added in version 4.9.

Configureert BORG_EXTRA_ARGS als een door komma’s gescheiden lijst met argumenten.

Voorbeeld:

environment:
  WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
WEBLATE_ENABLE_SHARING

Added in version 4.14.1.

Configureert ENABLE_SHARING.

WEBLATE_SUPPORT_STATUS_CHECK

Added in version 5.5.

Configureert SUPPORT_STATUS_CHECK.

WEBLATE_EXTRA_HTML_HEAD

Added in version 4.15.

Configureert EXTRA_HTML_HEAD.

WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE

Added in version 4.15.

Configureert PRIVATE_COMMIT_EMAIL_TEMPLATE.

WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN

Added in version 4.15.

Configureert PRIVATE_COMMIT_EMAIL_OPT_IN.

WEBLATE_PRIVATE_COMMIT_NAME_TEMPLATE

Added in version 5.16.

Configureert PRIVATE_COMMIT_NAME_TEMPLATE.

WEBLATE_PRIVATE_COMMIT_NAME_OPT_IN

Added in version 5.16.

Configureert PRIVATE_COMMIT_NAME_OPT_IN.

WEBLATE_UNUSED_ALERT_DAYS

Added in version 4.17.

Configureert UNUSED_ALERT_DAYS.

WEBLATE_UPDATE_LANGUAGES

Added in version 4.3.2.

Configureert UPDATE_LANGUAGES.

WEBLATE_VCS_ALLOW_HOSTS

Added in version 5.15.

Configureert VCS_ALLOW_HOSTS.

WEBLATE_VCS_ALLOW_SCHEMES

Added in version 5.15.

Configureert VCS_ALLOW_SCHEMES.

WEBLATE_VCS_RESTRICT_PRIVATE

Added in version 5.17.

Configureert VCS_RESTRICT_PRIVATE.

WEBLATE_VCS_CLONE_DEPTH

Added in version 5.4.

Configureert VCS_CLONE_DEPTH.

WEBLATE_VCS_API_DELAY

Added in version 5.4.

Configureert VCS_API_DELAY.

WEBLATE_VCS_API_TIMEOUT

Added in version 5.15.

Configureert VCS_API_TIMEOUT.

WEBLATE_CORS_ALLOWED_ORIGINS

Added in version 4.16.

Staat verzoeken CORS aan de API toe vanuit opgegeven bronnen.

Voorbeeld:

environment:
  WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
WEBLATE_CORS_ALLOW_ALL_ORIGINS

Added in version 5.6.1: Staat verzoeken CORS aan de API toe vanuit alle bronnen.

WEBLATE_WEBSITE_ALERTS_ENABLED

Added in version 5.17.

Configureert WEBSITE_ALERTS_ENABLED.

CLIENT_MAX_BODY_SIZE

Added in version 4.16.3.

Configureert maximale grootte body die wordt geaccepteerd door de ingebouwde webserver.

environment:
    CLIENT_MAX_BODY_SIZE: 200m

Hint

Bij deze variabele ontbreekt met opzet het voorvoegsel WEBLATE_, omdat die wordt gedeeld met een container van derde partijen die wordt gebruikt in Automatische SSL-certificaten met 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_SIZE is 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.

Inloggegevens sites hosten code

In de Docker container kunnen de inloggegevens voor het hosten van worden geconfigureerd, ofwel in afzonderlijke variabelen of met een dictionary van Python om ze in een keer in te stellen. De volgende voorbeelden zijn voor GitHub pull requests, maar zijn van toepassing voor alle Versiebeheerintegratie met toepasselijk gewijzigde namen voor variabelen.

Belangrijk

Alle namen van omgevingsvariabelen moeten het voorvoegsel WEBLATE_ bevatten. Om bijvoorbeeld inloggegevens voor GitHub te configureren, gebruik WEBLATE_GITHUB_USERNAME, niet GITHUB_USERNAME. Dit is van toepassing of u nu configureert voor pull requests of voor enige andere integratie voor het VCS.

Een voorbeeldconfiguratie voor pull requests van GitHub zou eruit kunnen zien als:

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

Zal worden gebruikt als:

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

Als alternatief kan de dictionary van Python worden opgegeven als een tekenreeks:

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

Of het pad naar een bestand dat de dictionary voor Python bevat:

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

Configureert GitHub pull requests door GITHUB_CREDENTIALS te wijzigen.

WEBLATE_GITLAB_USERNAME
WEBLATE_GITLAB_TOKEN
WEBLATE_GITLAB_HOST
WEBLATE_GITLAB_CREDENTIALS

Configureert GitLab verzoeken voor samenvoegen door GITLAB_CREDENTIALS te wijzigen.

WEBLATE_GITEA_USERNAME
WEBLATE_GITEA_TOKEN
WEBLATE_GITEA_HOST
WEBLATE_GITEA_CREDENTIALS

Configureert Gitea pull requests door GITEA_CREDENTIALS te wijzigen.

WEBLATE_PAGURE_USERNAME
WEBLATE_PAGURE_TOKEN
WEBLATE_PAGURE_HOST
WEBLATE_PAGURE_CREDENTIALS

Configureert Pagure verzoeken voor samenvoegen door PAGURE_CREDENTIALS te wijzigen.

WEBLATE_BITBUCKETSERVER_USERNAME
WEBLATE_BITBUCKETSERVER_TOKEN
WEBLATE_BITBUCKETSERVER_HOST
WEBLATE_BITBUCKETSERVER_CREDENTIALS

Configureert Pull requesten op Bitbucket Data Center door BITBUCKETSERVER_CREDENTIALS te wijzigen.

WEBLATE_BITBUCKETCLOUD_USERNAME
WEBLATE_BITBUCKETCLOUD_WORKSPACE
WEBLATE_BITBUCKETCLOUD_TOKEN
WEBLATE_BITBUCKETCLOUD_HOST
WEBLATE_BITBUCKETCLOUD_CREDENTIALS

Configureert Bitbucket Cloud pull requests door BITBUCKETCLOUD_CREDENTIALS te wijzigen.

WEBLATE_AZURE_DEVOPS_USERNAME
WEBLATE_AZURE_DEVOPS_ORGANIZATION
WEBLATE_AZURE_DEVOPS_TOKEN
WEBLATE_AZURE_DEVOPS_HOST
WEBLATE_AZURE_DEVOPS_CREDENTIALS

Configureert Azure DevOps pull requests door AZURE_DEVOPS_CREDENTIALS te wijzigen.

Instellingen automatische suggesties

Veranderd in versie 4.13: Services voor automatische suggesties zijn nu geconfigureerd in de gebruikersinterface, bekijk Automatische vertalingen.

De bestaande omgevingsvariabelen worden geïmporteerd tijdens de migratie naar Weblate 4.13, maar wijzigen ervan zal verder geen effect meer hebben.

Instellingen voor authenticatie

Hint

De op e-mail gebaseerde authenticatie is ingeschakeld, tenzij die is uitgeschakeld met 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_FILTER
WEBLATE_AUTH_LDAP_USER_SEARCH_UNION
WEBLATE_AUTH_LDAP_USER_SEARCH_UNION_DELIMITER

LDAP authenticatie configuratie.

Voorbeeld voor directe binding:

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

Voorbeeld voor zoeken en binden:

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

Voorbeeld voor verenigd zoeken en binden:

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

Voorbeeld met zoeken en binden in 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

Schakelt GitHub authenticatie in.

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

Schakelt GitHub EE authenticatie in.

Bitbucket

WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET

Schakelt Bitbucket authenticatie in.

Facebook

WEBLATE_SOCIAL_AUTH_FACEBOOK_KEY
WEBLATE_SOCIAL_AUTH_FACEBOOK_SECRET

Schakelt Facebook OAuth 2 in.

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

Schakelt Google OAuth 2 in.

GitLab

WEBLATE_SOCIAL_AUTH_GITLAB_KEY
WEBLATE_SOCIAL_AUTH_GITLAB_SECRET
WEBLATE_SOCIAL_AUTH_GITLAB_API_URL

Schakelt GitLab OAuth 2 in.

Gitea

WEBLATE_SOCIAL_AUTH_GITEA_API_URL
WEBLATE_SOCIAL_AUTH_GITEA_KEY
WEBLATE_SOCIAL_AUTH_GITEA_SECRET

Schakelt authenticatie voor Gitea in.

Microsoft Entra ID

WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET

Schakelt Microsoft Entra ID authenticatie in, bekijk Microsoft Entra ID.

Microsoft Entra ID met ondersteuning voor Tenant

WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID

Schakelt Microsoft Entra ID authenticatie in met ondersteuning voor Tenant, bekijk 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

Schakelt authenticatie voor Keycloak in, bekijk Keycloak - Open Source Red Hat SSO.

WEBLATE_SOCIAL_AUTH_KEYCLOAK_ID_KEY

Added in version 5.17.

Configureert welk claim wordt gebruikt als de unieke gebruikersidentificatie van Keycloak. Standaard email.

Hint

Wanneer Keycloak is geconfigureerd om derde partij IDP samen te vatten, moet u WEBLATE_CSP_FORM_SRC configureren voor het domein van de derde partij IDP.

Voorbeeld waar Keycloak authenticatie doorgeeft aan Microsoft.
environment:
  WEBLATE_CSP_FORM_SRC: login.microsoftonline.com

Verkopers Linux

U kunt authenticatie inschakelen met services van Linux vendors-authenticatie door de volgende variabelen op enige waarde in te stellen.

WEBLATE_SOCIAL_AUTH_FEDORA
WEBLATE_SOCIAL_AUTH_OPENSUSE
WEBLATE_SOCIAL_AUTH_OPENINFRA
WEBLATE_SOCIAL_AUTH_UBUNTU

Slack

WEBLATE_SOCIAL_AUTH_SLACK_KEY
WEBLATE_SOCIAL_AUTH_SLACK_SECRET

Schakelt Slack authenticatie in, bekijk 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

Configureert algemene integratie van OpenID Connect.

Fedora OpenID Connect

Added in version 5.15.

WEBLATE_SOCIAL_AUTH_FEDORA_OIDC_KEY
WEBLATE_SOCIAL_AUTH_FEDORA_OIDC_SECRET

Configureert integratie voor Fedora OpenID Connect.

Zie ook

Fedora

SAML

Zelf ondertekende sleutels van SAML worden automatisch gegenereerd bij het eerste opstarten van de container. Voor het geval u uw eigen sleutels wilt gebruiken, plaats het certificaat en de privé sleutel in /app/data/ssl/saml.crt en /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

Instellingen SAML Identity Provider, bekijk SAML authenticatie.

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

Andere instellingen voor authenticatie

WEBLATE_NO_EMAIL_AUTH

Schakelt authenticatie voor e-mail uit indien ingesteld op enige waarde. Bekijk Authenticatie met wachtwoord uitschakelen.

WEBLATE_MIN_PASSWORD_SCORE

Minimale score voor wachtwoord zoals geëvalueerd door de zxcvbn schatting voor sterkte van wachtwoorden. Standaard 3, stel in op 0 om de controle op de sterkte uit te schakelen.

PostgreSQL database opstelling

De database wordt gemaakt door docker-compose.yml, deze instellingen hebben dus invloed op zowel Weblate containers als op PostgreSQL containers.

POSTGRES_PASSWORD

PostgreSQL wachtwoord.

Zie ook

Geheim invoeren

POSTGRES_USER

PostgreSQL gebruikersnaam.

POSTGRES_DB

PostgreSQL databasenaam.

POSTGRES_HOST

PostgreSQL server hostnaam of IP-adres. Standaard database.

POSTGRES_PORT

PostgreSQL server poort. Standaard geen (gebruikt de standaard waarde).

POSTGRES_SSL_MODE

Configureer hoe PostgreSQL SSL afhandelt in verbindingen met de server, bekijk voor mogelijke keuzes SSL Mode Descriptions.

POSTGRES_ALTER_ROLE

Configureert de naam van de rol voor PostgreSQL die tijdens migratie van de database moet worden gewijzigd, bekijk Weblate configureren om PostgreSQL te gebruiken.

Standaard is POSTGRES_USER.

POSTGRES_CONN_MAX_AGE

Added in version 4.8.1.

De levensduur van een databaseverbinding, als een Integer van seconden. Gebruik 0 om databaseverbindingen te sluiten aan het einde van elk verzoek.

Veranderd in versie 5.1: Het standaard gedrag is om onbeperkt blijvende databaseverbindingen te hebben.

Inschakelen van blijvende verbindingen zal gewoonlijk zorgen voor meer geopende verbindingen naar de database. Pas de configuratie van uw database aan voordat u het inschakelt.

Voorbeeld configuratie:

environment:
    POSTGRES_CONN_MAX_AGE: 3600
POSTGRES_DISABLE_SERVER_SIDE_CURSORS

Added in version 4.9.1.

Schakel cursors aan de kant van de server uit in de database. Dit is noodzakelijk bij sommige pgbouncer opstellingen.

Voorbeeld configuratie:

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 Instellingen overschrijven vanuit het volume data to configure the database connection manually.

Instellingen voor back-up van de database

WEBLATE_DATABASE_BACKUP

Configureert de dagelijkse databasedump met DATABASE_BACKUP. Standaard is plain.

Opstelling server gegevensopslag

Gebruiken van Valkey of Redis wordt door de container van Weblate vereist en u moet parameters voor een verbinding opgeven als u Weblate uitvoert in Docker.

REDIS_HOST

De hostnaam van de server voor gegevensopslag of IP-adres. Standaard is cache.

REDIS_PORT

De serverpoort voor de gegevensopslag. Standaard is 6379.

REDIS_DB

Het databasenummer voor de gegevensopslag, standaard is 1.

REDIS_USER

Added in version 5.13: De databasegebruiker van de gegevensopslag, wordt standaard niet gebruikt.

REDIS_PASSWORD

Het serverwachtwoord voor de gegevensopslag, wordt standaard niet gebruikt.

Zie ook

Geheim invoeren

REDIS_TLS

Schakelt SSL in voor de verbinding van de gegevensopslag.

REDIS_VERIFY_SSL

Kan worden gebruikt om verificatie van het SSL-certificaat voor de verbinding van de gegevensopslag uit te schakelen.

Opstelling e-mail server

U moet, om uitgaande e-mail te laten werken, een mailserver opgeven.

Voorbeeld TLS-configuratie:

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

Voorbeeld SSL-configuratie:

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

Mailserver hostnaam of IP-adres.

WEBLATE_EMAIL_PORT

Mailserver poort, standaard is 25.

Zie ook

EMAIL_PORT

WEBLATE_EMAIL_HOST_USER

E-mailauthenticatie gebruiker.

Zie ook

EMAIL_HOST_USER

WEBLATE_EMAIL_HOST_PASSWORD

Wachtwoord e-mail authenticatie.

WEBLATE_EMAIL_USE_SSL

Of een impliciete TLS (veilige) verbinding moet worden gebruikt tijdens het praten met de SMTP-server. In de meeste documentatie voor e-mail, wordt naar dit type TLS-verbinding verwezen als SSL. Over het algemeen wordt het gebruikt op poort 465. Als u problemen ervaart, bekijk de expliciete instelling voor TLS WEBLATE_EMAIL_USE_TLS.

Veranderd in versie 4.11: De ondersteuning voor SSL/TLS wordt automatisch ingeschakeld, gebaseerd op WEBLATE_EMAIL_PORT.

WEBLATE_EMAIL_USE_TLS

Of een TLS (veilige) verbinding moet worden gebruikt tijdens het praten met de SMTP-server. Dit wordt gebruikt voor expliciete TLS-verbindingen, over het algemeen op poort 587 of 25. Als u problemen ervaart met verbindingen die blijven hangen, bekijk de impliciete instelling voor TLS WEBLATE_EMAIL_USE_SSL.

Veranderd in versie 4.11: De ondersteuning voor SSL/TLS wordt automatisch ingeschakeld, gebaseerd op WEBLATE_EMAIL_PORT.

WEBLATE_EMAIL_BACKEND

Configureert de backend van Django om voor het versturen van e-mails te gebruiken.

WEBLATE_AUTO_UPDATE

Configureert of en hoe Weblate opslagruimten zou moeten bijwerken.

Zie ook

AUTO_UPDATE

Notitie

Dit is een Booleaanse waarde (gebruik "true" of "false").

Site-integratie

WEBLATE_GET_HELP_URL

Configureert GET_HELP_URL.

WEBLATE_STATUS_URL

Configureert STATUS_URL.

Configureert LEGAL_URL.

WEBLATE_PRIVACY_URL

Configureert PRIVACY_URL.

WEBLATE_PASSWORD_RESET_URL

Configureert PASSWORD_RESET_URL.

Foutrapporten verzamelen en prestaties monitoren

Aanbevolen wordt om systematisch fouten te verzamelen vanuit de installatie, bekijk Foutrapporten verzamelen en prestaties monitoren.

Stel het volgende in om ondersteuning voor Rollbar in te schakelen:

ROLLBAR_KEY

Uw Rollbar post server token voor toegang.

ROLLBAR_ENVIRONMENT

Uw Rollbar omgeving, standaard is production.

Stel het volgende in om ondersteuning voor Sentry in te schakelen:

SENTRY_DSN

Uw Sentry DSN, bekijk SENTRY_DSN.

SENTRY_ENVIRONMENT

Uw Sentry Environment (optioneel), standaard is WEBLATE_SITE_DOMAIN.

SENTRY_MONITOR_BEAT_TASKS

Of taken van Celery Beat moeten worden gemonitord met Sentry, standaard True.

SENTRY_TRACES_SAMPLE_RATE

Configureert SENTRY_TRACES_SAMPLE_RATE.

Voorbeeld:

environment:
  SENTRY_TRACES_SAMPLE_RATE: 0.5
SENTRY_PROFILES_SAMPLE_RATE

Configureert SENTRY_PROFILES_SAMPLE_RATE.

Voorbeeld:

environment:
  SENTRY_PROFILES_SAMPLE_RATE: 0.5
SENTRY_SEND_PII

Configureert SENTRY_SEND_PII.

Vertaling CDN

WEBLATE_LOCALIZE_CDN_URL
WEBLATE_LOCALIZE_CDN_PATH

Added in version 4.2.1.

Configuration for CDN add-ons, including JavaScript-vertaling CDN and Translation files CDN.

Het pad WEBLATE_LOCALIZE_CDN_PATH is het pad binnen de container. Het zou moeten worden opgeslagen op een blijvend volume en niet in de tijdelijke opslag.

Een van de mogelijkheden is om het op te slaan in de Weblate-map data:

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

Notitie

You are responsible for setting up serving of the files generated by Weblate, it only stores the files in configured location. See Vertaling CDN for secure serving guidance.

Wijzigen ingeschakelde apps, controles, add-ons, machinevertaling of automatische reparaties

De ingebouwde configuratie van ingeschakelde controles, add-ons of automatische reparaties kan worden aangepast met de volgende variabelen:

WEBLATE_ADD_APPS
WEBLATE_REMOVE_APPS
WEBLATE_ADD_CHECK
WEBLATE_REMOVE_CHECK
WEBLATE_ADD_AUTOFIX
WEBLATE_REMOVE_AUTOFIX
WEBLATE_ADD_ADDONS
WEBLATE_REMOVE_ADDONS
WEBLATE_ADD_MACHINERY

Added in version 5.6.1.

WEBLATE_REMOVE_MACHINERY

Added in version 5.6.1.

Voorbeeld:

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

Instellingen container

WEBLATE_WORKERS

Added in version 4.6.1.

Basisaantal processen voor werkers die in de container kunnen worden uitgevoerd. Indien niet ingesteld wordt het automatisch bepaald bij het opstarten van de container, gebaseerd op het aantal beschikbare CPU-bronnen.

Het wordt gebruikt om te bepalen CELERY_MAIN_OPTIONS, CELERY_NOTIFY_OPTIONS, CELERY_MEMORY_OPTIONS, CELERY_TRANSLATE_OPTIONS, CELERY_BACKUP_OPTIONS, CELERY_BEAT_OPTIONS en WEB_WORKERS. U kunt deze instellingen fijn afstemmen.

CELERY_MAIN_OPTIONS
CELERY_NOTIFY_OPTIONS
CELERY_MEMORY_OPTIONS
CELERY_TRANSLATE_OPTIONS
CELERY_BACKUP_OPTIONS
CELERY_BEAT_OPTIONS

Deze variabelen stellen u in staat opties voor werkers van Celery aan te passen. Het kan nuttig zijn om de gelijktijdige aan te passen (--concurrency 16) of een andere implementatie van de pool te gebruiken (--pool=gevent).

Standaard is het aantal gelijktijdige werkers gebaseerd op WEBLATE_WORKERS.

Voorbeeld:

environment:
  CELERY_MAIN_OPTIONS: --concurrency 16
CELERY_SINGLE_PROCESS

Added in version 5.7.1: Deze variabele kan worden ingesteld op 1 om slechts een proces van Celery uit te voeren. Dit reduceert het geheugengebruik, maar zou invloed kunnen hebben op de prestaties van Weblate.

environment:
  CELERY_SINGLE_PROCESS: 1
WEB_WORKERS

Configureer hoeveel werkers van WSGI zouden moeten worden uitgevoerd.

Standaard is het de helft van WEBLATE_WORKERS, maar het is altijd ten minste 2.

Voorbeeld:

environment:
  WEB_WORKERS: 4

Veranderd in versie 5.13: WEB_WORKERS configureert hoeveel worker-processen zullen worden gebruikt door granian.

WEBLATE_SERVICE

Definieert welke services zouden moeten worden uitgevoerd binnen de container. Gebruik dit voor Horizontaal schalen.

De volgende services zijn gedefinieerd:

celery-beat

Celery schema voor taken, er zou slechts een instantie moeten worden uitgevoerd. Deze container is ook verantwoordelijk voor de migraties van de structuur van de database en het zou voorafgaande aan andere moeten worden gestart.

celery-backup

Celery werker voor back-ups, er zou slechts een instantie moeten worden uitgevoerd.

celery-celery

Algemene Celery werker.

celery-memory

Vertaalgeheugen Celery-werking.

celery-notify

Notificaties Celery- werking.

celery-translate

Automatische vertaling Celery-werking.

web

Webserver.

WEBLATE_ANUBIS_URL

Added in version 5.11.4.

URL voor de Anubis server om subverzoeken voor authenticatie af te handelen. Dit kan nuttig zijn om inkomende HTTP-verzoeken te filteren met proof-of-work om AI-crawlers af te stoppen. U moet Anubis for Subrequest Authentication configureren om het te laten werken.

Docker container volumes

Er bestaan twee volumes (data en cache) geëxporteerd door de container Weblate.

Notitie

De andere servicecontainers (zoals PostgreSQL of Valkey) hebben ook hun eigen gegevensvolumes, en zijn vereist om het bestaan van Weblate te verzekeren.

De container PostgreSQL slaat de database op in het volume /var/lib/postgresql en Valkey in het volume /data. Container Valkey slaat standaard de gegevens niet op en moet aanvullend worden geconfigureerd om het voortbestaan te verzekeren.

Baseer uw configuratie op door Weblate verschafte voorbeelden of raadpleeg hun documentatie voor meer informatie.

Het volume data wordt gemount als /app/data en wordt gebruikt om blijvende gegevens voor Weblate op te slaan, zoals gekloonde opslagruimten of om de installatie van Weblate aan te passen. DATA_DIR beschrijft meer in detail wat hier wordt opgeslagen.

Het volume data is ook de plaats om aanpassingen van Weblate neer te zetten, zoals Instellingen overschrijven vanuit het volume data, Vervangen van logo en andere statische bestanden of Code aanpassen.

De plaatsing van het volume voor Docker op het hostsysteem is afhankelijk van uw configuratie van Docker, maar gewoonlijk wordt het opgeslagen in /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ (het pad bestaat uit de naam van uw map docker-compose, container en volumenamen).

Het volume cache wordt gemount als /app/cache en wordt gebruikt om statische bestanden op te slaan en CACHE_DIR. De inhoud ervan wordt opnieuw gemaakt bij het opstarten van de container en het volume kan worden gemount met een vluchtig bestandssysteem, zoals tmpfs, maar de mount moet uitvoeren toestaan omdat Weblate daar de gemaakte hulpbestanden opslaat.

Bij het expliciet mounten van /app/cache als tmpfs in Docker Compose, schakel uitvoering in:

tmpfs:
  - /app/cache:exec

Indien ook opties voor eigenaar worden ingesteld, behoud de optie exec:

tmpfs:
  - /app/cache:exec,uid=1000,gid=1000

Bij het handmatig maken van de volumes, zouden de mappen eigendom moeten zijn van UID 1000 omdat dat de gebruiker is die gebruikt wordt binnen de container.

Weblate container kan ook worden uitgevoerd met een alleen-lezen root-bestandssysteem. In dat geval zouden twee aanvullende volumes tmpfs moeten worden gemount: /tmp en /run.

Alleen-lezen root bestandssysteem

Added in version 4.18.

Bij het uitvoeren van de container met een alleen-lezen root-bestandssysteem, zijn twee aanvullende volumes tmpfs vereist - /tmp en /run.

Configuratie voorbij omgevingsvariabelen

Docker omgevingsvariabelen zijn bedoeld om de meeste instellingen voor configureren, die van belang zijn voor installaties van Weblate, weer te geven.

Als u een instelling vindt die niet is weergegeven als een omgevingsvariabele, en u van mening bent dat het dat wel zou moeten zijn, staat het u vrij te vragen om het in een toekomstige versie van Weblate weer te geven.

Als u een instelling moet aanpassen die niet is weergegeven als een Docker omgevingsvariabele, kunt u dat nog steeds doen, ofwel in het volume data of door de Docker image uit te breiden.

Instellingen overschrijven vanuit het volume data

U kunt een bestand maken in /app/data/settings-override.py, d.i. aan de bron van het volume data, om instellingen, die worden gedefinieerd door omgevingsvariabelen, uit te breiden of te overschrijven.

Instellingen overschrijven door de Docker image uit te breiden

Instellingen op het niveau van de Docker image overschrijven in plaats van uit het volume data:

  1. Een aangepast pakket voor Python maken.

  2. Voeg een module toe aan uw pakket dat alle instellingen importeert vanuit weblate.settings_docker.

    Bijvoorbeeld in de voorbeeldpakketstructuur die is gedefinieerd in Een module voor Python maken, zou u een bestand weblate_customization/weblate_customization/settings.py kunnen maken, met de volgende initiële code:

    from weblate.settings_docker import *
    
  3. Maak een aangepast Dockerfile, dat erft van de officiële Weblate Docker image, en dan uw pakket installeert en wijst naar de omgevingsvariabele DJANGO_SETTINGS_MODULE in uw module voor instellingen:

    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
    
  4. In plaats van de officiële Weblate Docker image te gebruiken, bouw een aangepast image uit dat bestand Dockerfile.

    Er is geen schone manier om dit te doen met docker-compose.override.yml. U zou build: . kunnen toevoegen aan de node weblate in dat bestand, maar dan zal uw aangepaste image worden getagd als weblate/weblate in uw systeem, wat problematisch zou kunnen zijn.

    Dus, in plaats van docker-compose.yml direct te gebruiken vanuit de officiële opslagruimte, niet aangepast en het uit te breiden via docker-compose.override.yml, zou u een kopie willen maken van het officiële bestand docker-compose.yml, en uw kopie willen bewerken om image: weblate/weblate te vervangen door build: ..

    Bekijk de Compose file build reference voor details over het bouwen van images vanuit d ebron met docker-compose.

  5. Uw module met aangepaste instellingen uitbreiden om instellingen te definiëren of opnieuw te definiëren.

    U kunt instellingen definiëren voor en na het argument import hierboven om te bepalen welke instellingen voorrang hebben. Instellingen die zijn gedefinieerd voor het argument import kunnen worden overschreven door omgevingsvariabelen en instelling overschrijven die zijn gedefinieerd in het volume data. Instellingen die zijn gedefinieerd na het argument import kunnen niet worden overschreven.

    U kunt ook verder gaan. U kunt bijvoorbeeld enkele dingen reproduceren die weblate.docker_settings doet, zoals instellingen weergeven als omgevingsvariabelen, of toestaan dat instellingen worden overschreven door bestanden van Python in het volume data.

Vervangen van logo en andere statische bestanden

De statische bestanden die worden meegeleverd met Weblate kunnen worden overschreven door ze te plaatsen in /app/data/python/customize/static (bekijk Docker container volumes). Bijvoorbeeld het maken van /app/data/python/customize/static/favicon.ico zal het favicon vervangen.

Hint

De bestanden worden gekopieerd naar de corresponderende locatie bij het opstarten van de container, dus opnieuw opstarten van Weblate is nodig na het wijzigen van de inhoud van het volume.

Deze benadering kan ook worden gebruikt om sjablonen van Weblate te overschrijven. Bijvoorbeeld documenten voor Wettelijke module kunnen worden geplaatst in /app/data/python/customize/templates/legal/documents.

Als alternatief kunt u ook uw eigen module opnemen (bekijk Weblate aanpassen) en het toevoegen als een afzonderlijk volume aan de Docker container, bijvoorbeeld:

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

Code aanpassen

Notitie

De interne Weblate API kan significant variëren tussen uitgaven en is niet bedoeld om stabiel te zijn. Bekijk uw aangepaste code die interacteert met het interne van Weblate bij elke upgrade.

U kunt aanvullende code van Python plaatsen in /app/data/python/customize (bekijk Docker container volumes). Het is al geïnstalleerd als een toepassing voor Django binnen Weblate (dit wordt gebruikt voor het aanpassen van sjablonen en statische bestanden, zoals hierboven beschreven).

Dit kan worden gebruikt om elke code te plaatsen (bijvoorbeeld Eigen controles schrijven) of om aangepaste taken voor onderhoud toe te voegen aan het taakschema van Celery.

An example of custom scheduled tasks in /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"
    )

Interacteren met containers van derde partijen

Het instellen van Weblate Docker kan worden uitgebreid met extra containers om aanvullende services te verschaffen, zoals machinevertaling, spellingscontrole, of andere programma’s die de werkstroom voor vertalingen verbeteren. Deze services kunnen worden geïntegreerd in uw configuratie van Docker Compose en werken naast Weblate.

Overweeg het volgende bij het toevoegen van containers van derde partijen:

  • Netwerk connectiviteit: Zorgt ervoor dat containers met elkaar kunnen communiceren door ze op hetzelfde netwerk van Docker te plaatsen

  • Gegevens behouden: Gebruik volumes voor services die gegevens moeten behouden

  • Beveiliging: Configureer toepasselijk toegangsbeheer en vermijd het weergeven van onnodige poorten

Integratie LibreTranslate Docker container

LibreTranslate is een gratis en open-bron service voor machinevertaling, die zelf gehost kan worden. Het integreren met Weblate verschaft mogelijkheden voor offline machinevertaling, zonder te vertrouwen op externe services.

U kunt de service van LibreTranslate inbouwen in uw uitrol van Weblate door het op te nemen in een bestand docker-compose.override.yml. Omdat het werkt binnen het netwerk van Docker, is het alleen toegankelijk voor Weblate en wordt niet weergegeven op het openbare internet.

Basis instelling met 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:

Voor GPU-geaccelereerde vertaling (als u NVIDIA GPU beschikbaar hebt):

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:

Na het starten van de services met docker compose down && docker compose up -d, configureer LibreTranslate in Weblate:

  1. Ga naar de Weblate beheerinterface

  2. Navigeer naar MachinevertalingAutomatische suggesties

  3. Voeg een nieuwe service van LibreTranslate toe met:

    Dienst:

    LibreTranslate

    URL API:

    http://libretranslate:5000

    Api-sleutel:

    Laat leeg

LibreTranslate is nu geconfigureerd en beschikbaar voor machinevertaling in Weblate.

Notitie

  • De service LibreTranslate wordt uitgevoerd zonder de web-UI (--disable-web-ui) en is alleen toegankelijk via de API binnen het netwerk van Docker.

  • Modellen worden automatisch bijgewerkt als de container opstart. (LT_UPDATE_MODELS: true)

  • Gegevens worden behouden met volumes van Docker voor optimale prestaties en veiligheid voor de gegevens.

  • Gezondheidscontroles zorgen ervoor dat het Docker-programma de status van de service juist observeert.

  • Voor GPU-acceleratie, gebruik de CUDA image-variant en zorg ervoor dat uw systeem ondersteuning voor NVIDIA Docker heeft. Deze container wordt als een geprivilegieerde gebruiker uitgevoerd, om de GPU te kunnen gebruiken.

  • Er worden geen externe poorten weergegeven, wat de instelling standaard veilig maakt.

Anubis Docker container integratie

Anubis is een web AI firewall-programma om AI-schrapers en ander ontregelend verkeer op de service te blokkeren. Het is gewoonlijk nodig op voor publiek geopende installaties van Weblate om extreem laden door schrapen te vermijden.

Anubis kan worden uitgerold met 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:

Notitie

Het volume anubis-data in bovenstaande configuratie wordt geacht botPolicies.yaml te bevatten met een beleid voor het bot dat naar uw behoeften is geconfigureerd.

U dient, minimaal, de statuscodes aan te passen, zoals beschreven in https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth.

Ook wordt aanbevolen om een persistent backend voor opslag te configureren, zoals beschreven in https://anubis.techaro.lol/docs/admin/policies/#storage-backends.

U kunt dan het gebruiken van Anubis in Weblate inschakelen met:

environment:
   WEBLATE_ANUBIS_URL: http://anubis:8923

Configureren server voor PostgreSQL

De PostgreSQL container gebruikt de standaard configuratie voor PostgreSQL en zal uw CPU-bronnen of geheugen niet effectief genoeg gebruiken. Aanbevolen wordt om de configuratie aan te passen om de prestaties te verbeteren.

De configuratie kan worden aangepast zoals beschreven in Database Configuration op https://hub.docker.com/_/postgres. De configuratie die overeenkomt met uw omgeving kan worden gegenereerd met https://pgtune.leopard.in.ua/.

Container internen

De container gebruikt supervisor om individuele services te starten. In het geval van Horizontaal schalen, start het slechts een enkele service in een container.

Gebruik, om de status van de service te controleren:

docker compose exec --user weblate weblate supervisorctl status

Er zijn individuele services voor elke wachtrij van Celery (bekijk Achtergrondtaken met Celery voor details). U kunt sommige taken stoppen door de van toepassing zijnde werker te stoppen:

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