Installing using 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.
Hardware requirements
Weblate should run on any contemporary hardware without problems, the following is the minimal configuration required to run Weblate on a single host (Weblate, database and webserver):
2 GB of RAM
2 CPU cores
1 GB of storage space
The more memory the better - it is used for caching on all levels (filesystem, database and Weblate).
Many concurrent users increases the amount of needed CPU cores. For hundreds of translation components at least 4 GB of RAM is recommended.
The typical database storage usage is around 300 MB per 1 million hosted words. Storage space needed for cloned repositories varies, but Weblate tries to keep their size minimal by doing shallow clones.
Bemerkung
Actual requirements for your installation of Weblate vary heavily based on the size of the translations managed in it.
Installation
The following examples assume you have a working Docker environment, with
docker-compose
installed. Please check the Docker documentation for instructions.
Clone the weblate-docker repo:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
Create a
docker-compose.override.yml
file with your settings. See Docker-Umgebungsvariablen for full list of environment variables.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
Bemerkung
If
WEBLATE_ADMIN_PASSWORD
is not set, the admin user is created with a random password shown on first startup.The provided example makes Weblate listen on port 80, edit the port mapping in the
docker-compose.override.yml
file to change it.Start Weblate containers:
docker-compose up
Enjoy your Weblate deployment, it’s accessible on port 80 of the weblate
container.
Geändert in Version 2.15-2: The setup has changed recently, priorly there was separate web server container, since 2.15-2 the web server is embedded in the Weblate container.
Geändert in Version 3.7.1-6: In July 2019 (starting with the 3.7.1-6 tag), the containers are not running as a root user. This has changed the exposed port from 80 to 8080.
Siehe auch
Auswählen des Docker-Hub-Tags
Sie können die folgenden Tags auf Docker Hub verwenden. Eine vollständige Liste der verfügbaren Tags finden Sie unter https://hub.docker.com/r/weblate/weblate/tags/.
Tag-Name |
Beschreibung |
Use case |
---|---|---|
|
Stabile Version von Weblate, entspricht der neuesten getaggten Version |
Fortlaufende Updates in einer Produktionsumgebung |
|
Weblate stabile Version |
Gut definierter Einsatz in einer Produktionsumgebung |
|
Stabiles Weblate-Release mit Entwicklungsänderungen im Docker-Container (z. B. aktualisierte Abhängigkeiten) |
Fortlaufende Updates in einer Staging-Umgebung |
|
Stabiles Weblate-Release mit Entwicklungsänderungen im Docker-Container (z. B. aktualisierte Abhängigkeiten) |
Gut definierter Einsatz in einer Staging-Umgebung |
|
Weblate-Entwicklungsversion von Git |
Fortlaufende Updates zum Testen kommender Weblate-Funktionen |
|
Weblate-Entwicklungsversion von Git |
Gut definierter Einsatz zum Testen kommender Weblate-Funktionen |
Jedes Bild wird vor der Veröffentlichung von unserer CI getestet, so dass selbst die bleeding-Version sicher zu verwenden ist.
Docker-Container mit HTTPS-Unterstützung
Please see Installation for generic deployment instructions, this section only mentions differences compared to it.
Verwendung eigener SSL-Zertifikate
Neu in Version 3.8-3.
Wenn Sie ein eigenes SSL-Zertifikat haben, das Sie verwenden möchten, legen Sie die Dateien einfach in das Weblate-Datenvolumen (siehe Docker-Container-Volumes):
ssl/fullchain.pem
containing the certificate including any needed CA certificatesssl/privkey.pem
containing the private key
Both of these files must be owned by the same user as the one starting the docker container and have file mask set to 600
(readable and writable only by the owning user).
Additionally, Weblate container will now accept SSL connections on port 4443, you will want to include the port forwarding for HTTPS in docker compose override:
version: '3'
services:
weblate:
ports:
- 80:8080
- 443:4443
If you already host other sites on the same server, it is likely ports 80
and 443
are used by a reverse proxy, such as NGINX. To pass the HTTPS connection from NGINX to the docker container, you can use the following configuration:
server {
listen 443;
listen [::]:443;
server_name <SITE_URL>;
ssl_certificate /etc/letsencrypt/live/<SITE>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<SITE>/privkey.pem;
location / {
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_pass https://127.0.0.1:<EXPOSED_DOCKER_PORT>;
}
}
Replace <SITE_URL>
, <SITE>
and <EXPOSED_DOCKER_PORT>
with actual values from your environment.
Automatische SSL-Zertifikate mit Let’s Encrypt
In case you want to use Let’s Encrypt
automatically generated SSL certificates on public installation, you need to
add a reverse HTTPS proxy an additional Docker container, https-portal will be used for that.
This is made use of in the docker-compose-https.yml
file. Then create
a docker-compose-https.override.yml
file with your settings:
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
Aktualisieren des Docker-Containers
Normalerweise ist es eine gute Idee, nur den Weblate-Container zu aktualisieren und den PostgreSQL-Container auf der vorhandenen Version zu belassen, da ein Upgrade von PostgreSQL ziemlich mühsam ist und in den meisten Fällen nicht viel bringt.
Geändert in Version 4.10-1: Since Weblate 4.10-1, the Docker container uses Django 4.0 what requires PostgreSQL 10 or newer, please upgrade it prior to upgrading Weblate. See Upgrade von 4.0 auf 4.10 and Aktualisieren des PostgreSQL-Containers.
Sie können dies tun, indem Sie das bestehende Docker-Compose beibehalten und einfach die neuesten Images ziehen und dann neu 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
Die Weblate-Datenbank sollte beim ersten Start automatisch migriert werden, und es sollten keine weiteren manuellen Maßnahmen erforderlich sein.
Bemerkung
Upgrades across major versions are not supported by Weblate. For example,
if you are on 3.x series and want to upgrade to 4.x, first upgrade to the
latest 4.0.x-y image (at time of writing this it is the 4.0.4-5
), which
will do the migration and then continue upgrading to newer versions.
You might also want to update the docker-compose
repository, though it’s
not needed in most case. See Aktualisieren des PostgreSQL-Containers for upgrading the PostgreSQL server.
Aktualisieren des PostgreSQL-Containers
PostgreSQL containers do not support automatic upgrading between version, you need to perform the upgrade manually. Following steps show one of the options of upgrading.
Weblate-Container stoppen:
docker-compose stop weblate cache
Backup the database:
docker-compose exec database pg_dumpall --clean --username weblate > backup.sql
Datenbank-Container sperren:
docker-compose stop database
Entfernen des PostgreSQL-Volumes:
docker-compose rm -v database docker volume remove weblate_postgres-data
Adjust
docker-compose.yml
to use new PostgreSQL version.Datenbank-Container öffnen:
docker-compose up -d database
Datenbank aus Sicherung wiederherstellen:
cat backup.sql | docker-compose exec -T database psql --username weblate --dbname postgres
Alle verbleibenden Container öffnen:
docker-compose up -d
Administrator-Anmeldung
Nach der Container-Einrichtung können Sie sich als Benutzer admin mit dem in WEBLATE_ADMIN_PASSWORD
bereitgestellten Passwort oder, falls es nicht festgelegt wurde, mit einem beim ersten Öffnen erzeugten Zufallspasswort anmelden.
Um das Passwort für admin zurückzusetzen, öffnen Sie den Container mit dem in WEBLATE_ADMIN_PASSWORD
neu festgelegten Passwort nochmals.
Siehe auch
WEBLATE_ADMIN_PASSWORD
,
WEBLATE_ADMIN_NAME
,
WEBLATE_ADMIN_EMAIL
Anzahl der Prozesse und Speicherverbrauch
Die Anzahl der Mitarbeitervorgänge wird sowohl für uWSGI als auch Celery automatisch auf Grundlage der Anzahl der CPUs bestimmt. Dies funktioniert für die meisten virtuellen Maschinen in der Cloud gut, da sie typischerweise wenig CPUs und große Speicherkapazitäten besitzen.
Für den Fall, dass Sie sehr viele CPU-Kerne haben und auf Speicherprobleme stoßen, versuchen Sie die Zahl der Arbeitskräfte zu reduzieren:
environment:
WEBLATE_WORKERS: 2
Sie können auch individuelle Arbeitskräftekategorien feinabstimmen:
environment:
WEB_WORKERS: 4
CELERY_MAIN_OPTIONS: --concurrency 2
CELERY_NOTIFY_OPTIONS: --concurrency 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1
Siehe auch
WEBLATE_WORKERS
CELERY_MAIN_OPTIONS
, CELERY_NOTIFY_OPTIONS
, CELERY_MEMORY_OPTIONS
, CELERY_TRANSLATE_OPTIONS
, CELERY_BACKUP_OPTIONS
, CELERY_BEAT_OPTIONS
, UWSGI_WORKERS
Horizontale Skalierung
Neu in Version 4.6.
Sie können mehrere Weblate-Container ausführen, um den Dienst horizontal zu skalieren. Das Volume /app/data
muss von allen Containern gemeinsam genutzt werden, es wird empfohlen, dafür ein Cluster-Dateisystem wie z. B. GlusterFS zu verwenden. Das Volume /app/cache
sollte für jeden Container separat sein.
Jeder Weblate-Container hat eine definierte Rolle mit der Umgebungsvariablen WEBLATE_SERVICE
. Bitte folgen Sie sorgfältig der Dokumentation, da einige der Dienste nur einmal im Cluster laufen sollen und auch die Reihenfolge der Dienste wichtig ist.
Ein Beispiel-Setup finden Sie im docker-compose
-Repo als docker-compose-split.yml.
Docker-Umgebungsvariablen
Many of Weblate’s Konfiguration can be set in the Docker container using environment variables:
Allgemeine Einstellungen
- WEBLATE_DEBUG
Configures Django debug mode using
DEBUG
.Beispiel:
environment: WEBLATE_DEBUG: 1
Siehe auch
- WEBLATE_LOGLEVEL
Configures the logging verbosity.
- WEBLATE_LOGLEVEL_DATABASE
Configures the logging of the database queries verbosity.
- WEBLATE_SITE_TITLE
Changes the site-title shown in the header of all pages.
- WEBLATE_SITE_DOMAIN
Konfiguriert die Seitendomain. Dieser Parameter ist erforderlich.
Siehe auch
- WEBLATE_ADMIN_NAME
- WEBLATE_ADMIN_EMAIL
Configures the site-admin’s name and e-mail. It is used for both
ADMINS
setting and creating admin user (seeWEBLATE_ADMIN_PASSWORD
for more info on that).Beispiel:
environment: WEBLATE_ADMIN_NAME: Weblate admin WEBLATE_ADMIN_EMAIL: noreply@example.com
Siehe auch
- WEBLATE_ADMIN_PASSWORD
Sets the password for the admin user.
If not set and admin user does not exist, it is created with a random password shown on first container startup.
If not set and admin user exists, no action is performed.
If set the admin user is adjusted on every container startup to match
WEBLATE_ADMIN_PASSWORD
,WEBLATE_ADMIN_NAME
andWEBLATE_ADMIN_EMAIL
.
Warnung
It might be a security risk to store password in the configuration file. Consider using this variable only for initial setup (or let Weblate generate random password on initial startup) or for password recovery.
- WEBLATE_ADMIN_PASSWORD_FILE
Legt den Pfad zu einer Datei fest, die das Passwort für den Benutzer Administrator enthält.
Siehe auch
- WEBLATE_SERVER_EMAIL
The email address that error messages are sent from.
Siehe auch
- WEBLATE_DEFAULT_FROM_EMAIL
Legt die Adresse für ausgehende E-Mails fest.
Siehe auch
- WEBLATE_CONTACT_FORM
Konfiguriert das Verhalten des Kontaktformulars, siehe
CONTACT_FORM
.
- WEBLATE_ALLOWED_HOSTS
Configures allowed HTTP hostnames using
ALLOWED_HOSTS
.Defaults to
*
which allows all hostnames.Beispiel:
environment: WEBLATE_ALLOWED_HOSTS: weblate.example.com,example.com
Siehe auch
- WEBLATE_REGISTRATION_OPEN
Configures whether registrations are open by toggling
REGISTRATION_OPEN
.Beispiel:
environment: WEBLATE_REGISTRATION_OPEN: 0
- WEBLATE_REGISTRATION_ALLOW_BACKENDS
Configure which authentication methods can be used to create new account via
REGISTRATION_ALLOW_BACKENDS
.Beispiel:
environment: WEBLATE_REGISTRATION_OPEN: 0 WEBLATE_REGISTRATION_ALLOW_BACKENDS: azuread-oauth2,azuread-tenant-oauth2
- WEBLATE_TIME_ZONE
Configures the used time zone in Weblate, see
TIME_ZONE
.Bemerkung
To change the time zone of the Docker container itself, use the
TZ
environment variable.Beispiel:
environment: WEBLATE_TIME_ZONE: Europe/Prague
- WEBLATE_ENABLE_HTTPS
Makes Weblate assume it is operated behind a reverse HTTPS proxy, it makes Weblate use HTTPS in e-mail and API links or set secure flags on cookies.
Hinweis
Please see
ENABLE_HTTPS
documentation for possible caveats.Bemerkung
This does not make the Weblate container accept HTTPS connections, you need to configure that as well, see Docker-Container mit HTTPS-Unterstützung for examples.
Beispiel:
environment: WEBLATE_ENABLE_HTTPS: 1
- WEBLATE_INTERLEDGER_PAYMENT_POINTERS
Neu in Version 4.12.1.
Lets Weblate set the meta[name=monetization] field in the head of the document. If multiple are specified, chooses one randomly.
Siehe auch
- WEBLATE_IP_PROXY_HEADER
Lets Weblate fetch the IP address from any given HTTP header. Use this when using a reverse proxy in front of the Weblate container.
Enables
IP_BEHIND_REVERSE_PROXY
and setsIP_PROXY_HEADER
.Bemerkung
The format must conform to Django’s expectations. Django transforms raw HTTP header names as follows:
converts all characters to uppercase
replaces any hyphens with underscores
prepends
HTTP_
prefix
So
X-Forwarded-For
would be mapped toHTTP_X_FORWARDED_FOR
.Beispiel:
environment: WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
- WEBLATE_SECURE_PROXY_SSL_HEADER
A tuple representing a 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.
Beispiel:
environment: WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
Siehe auch
- WEBLATE_REQUIRE_LOGIN
Enables
REQUIRE_LOGIN
to enforce authentication on whole Weblate.Beispiel:
environment: WEBLATE_REQUIRE_LOGIN: 1
- WEBLATE_LOGIN_REQUIRED_URLS_EXCEPTIONS
- WEBLATE_ADD_LOGIN_REQUIRED_URLS_EXCEPTIONS
- WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS
Adds URL exceptions for authentication required for the whole Weblate installation using
LOGIN_REQUIRED_URLS_EXCEPTIONS
.You can either replace whole settings, or modify default value using
ADD
andREMOVE
variables.
- WEBLATE_GOOGLE_ANALYTICS_ID
Configures ID for Google Analytics by changing
GOOGLE_ANALYTICS_ID
.
- WEBLATE_GITHUB_USERNAME
Configures GitHub username for GitHub pull-requests by changing
GITHUB_USERNAME
.Siehe auch
- WEBLATE_GITHUB_TOKEN
Neu in Version 4.3.
Configures GitHub personal access token for GitHub pull-requests via API by changing
GITHUB_TOKEN
.Siehe auch
- WEBLATE_GITLAB_USERNAME
Configures GitLab username for GitLab merge-requests by changing
GITLAB_USERNAME
Siehe auch
- WEBLATE_GITLAB_TOKEN
Configures GitLab personal access token for GitLab merge-requests via API by changing
GITLAB_TOKEN
Siehe auch
- WEBLATE_PAGURE_USERNAME
Configures Pagure username for Pagure merge-requests by changing
PAGURE_USERNAME
Siehe auch
- WEBLATE_PAGURE_TOKEN
Configures Pagure personal access token for Pagure merge-requests via API by changing
PAGURE_TOKEN
Siehe auch
- WEBLATE_DEFAULT_PULL_MESSAGE
Configures the default title and message for pull requests via API by changing
DEFAULT_PULL_MESSAGE
Siehe auch
- WEBLATE_SIMPLIFY_LANGUAGES
Configures the language simplification policy, see
SIMPLIFY_LANGUAGES
.
- WEBLATE_DEFAULT_ACCESS_CONTROL
Configures the default Zugriffssteuerung for new projects, see
DEFAULT_ACCESS_CONTROL
.
- WEBLATE_DEFAULT_RESTRICTED_COMPONENT
Configures the default value for Restricted access for new components, see
DEFAULT_RESTRICTED_COMPONENT
.
- WEBLATE_DEFAULT_TRANSLATION_PROPAGATION
Configures the default value for Verbreitung von Übersetzungen erlauben for new components, see
DEFAULT_TRANSLATION_PROPAGATION
.
- WEBLATE_DEFAULT_COMMITER_EMAIL
Configures
DEFAULT_COMMITER_EMAIL
.
- WEBLATE_DEFAULT_COMMITER_NAME
Configures
DEFAULT_COMMITER_NAME
.
- WEBLATE_DEFAULT_SHARED_TM
Configures
DEFAULT_SHARED_TM
.
- WEBLATE_AKISMET_API_KEY
Configures the Akismet API key, see
AKISMET_API_KEY
.
- WEBLATE_GPG_IDENTITY
Configures GPG signing of commits, see
WEBLATE_GPG_IDENTITY
.Siehe auch
- WEBLATE_URL_PREFIX
Configures URL prefix where Weblate is running, see
URL_PREFIX
.
- WEBLATE_SILENCED_SYSTEM_CHECKS
Configures checks which you do not want to be displayed, see
SILENCED_SYSTEM_CHECKS
.
- WEBLATE_CSP_SCRIPT_SRC
- WEBLATE_CSP_IMG_SRC
- WEBLATE_CSP_CONNECT_SRC
- WEBLATE_CSP_STYLE_SRC
- WEBLATE_CSP_FONT_SRC
Allows to customize
Content-Security-Policy
HTTP header.
- WEBLATE_LICENSE_FILTER
Configures
LICENSE_FILTER
.
- WEBLATE_LICENSE_REQUIRED
Configures
LICENSE_REQUIRED
- WEBLATE_WEBSITE_REQUIRED
Configures
WEBSITE_REQUIRED
- WEBLATE_HIDE_VERSION
Configures
HIDE_VERSION
.
- WEBLATE_BASIC_LANGUAGES
Configures
BASIC_LANGUAGES
.
- WEBLATE_DEFAULT_AUTO_WATCH
Configures
DEFAULT_AUTO_WATCH
.
- WEBLATE_RATELIMIT_ATTEMPTS
- WEBLATE_RATELIMIT_LOCKOUT
- WEBLATE_RATELIMIT_WINDOW
Neu in Version 4.6.
Konfiguriert den Ratelimiter.
Hinweis
You can set configuration for any rate limiter scopes. To do that add
WEBLATE_
prefix to any of setting described in Rate limiting.Siehe auch
Rate limiting,
RATELIMIT_ATTEMPTS
,RATELIMIT_WINDOW
,RATELIMIT_LOCKOUT
- WEBLATE_API_RATELIMIT_ANON
- WEBLATE_API_RATELIMIT_USER
Neu in Version 4.11.
Configures API rate limiting. Defaults to
100/day
for anonymous and5000/hour
for authenticated users.Siehe auch
- WEBLATE_ENABLE_HOOKS
Neu in Version 4.13.
Configures
ENABLE_HOOKS
.
- WEBLATE_ENABLE_AVATARS
Neu in Version 4.6.1.
Configures
ENABLE_AVATARS
.
- WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH
Neu in Version 4.9.
Konfiguriert
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH
.
- WEBLATE_SSH_EXTRA_ARGS
Neu in Version 4.9.
Konfiguriert
SSH_EXTRA_ARGS
.
- WEBLATE_BORG_EXTRA_ARGS
Neu in Version 4.9.
Konfiguriert
BORG_EXTRA_ARGS
.
Automatic suggestion settings
Geändert in Version 4.13: Automatic suggestion services are now configured in the user interface, see Configuring automatic suggestions.
The existing environment variables are imported during the migration to Weblate 4.13, but changing them will not have any further effect.
Authentifizierungseinstellungen
LDAP
- WEBLATE_AUTH_LDAP_SERVER_URI
- WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE
- WEBLATE_AUTH_LDAP_USER_ATTR_MAP
- WEBLATE_AUTH_LDAP_BIND_DN
- WEBLATE_AUTH_LDAP_BIND_PASSWORD
- WEBLATE_AUTH_LDAP_BIND_PASSWORD_FILE
Path to the file containing the LDAP server bind password.
Siehe auch
- WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS
- WEBLATE_AUTH_LDAP_USER_SEARCH
- WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER
- WEBLATE_AUTH_LDAP_USER_SEARCH_UNION
- WEBLATE_AUTH_LDAP_USER_SEARCH_UNION_DELIMITER
Konfiguration der LDAP-Authentifizierung.
Example for direct bind:
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
Example for search and bind:
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
Example for union search and bind:
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
Example with search and bind against 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)
Siehe auch
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
Enables GitHub-Authentifizierung.
Bitbucket
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET
- WEBLATE_SOCIAL_AUTH_BITBUCKET_KEY
- WEBLATE_SOCIAL_AUTH_BITBUCKET_SECRET
Enables Bitbucket-Authentifizierung.
Facebook
- WEBLATE_SOCIAL_AUTH_FACEBOOK_KEY
- WEBLATE_SOCIAL_AUTH_FACEBOOK_SECRET
Enables 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
Enables Google OAuth 2.
GitLab
- WEBLATE_SOCIAL_AUTH_GITLAB_KEY
- WEBLATE_SOCIAL_AUTH_GITLAB_SECRET
- WEBLATE_SOCIAL_AUTH_GITLAB_API_URL
Enables GitLab OAuth 2.
Azure Active Directory
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET
Enables Azure Active Directory authentication, see Microsoft Azure Active Directory.
Azure Active Directory with Tenant support
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID
Enables Azure Active Directory authentication with Tenant support, see Microsoft Azure Active Directory.
Keycloak
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_KEY
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_SECRET
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ALGORITHM
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ACCESS_TOKEN_URL
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_TITLE
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_IMAGE
Enables Keycloak authentication, see documentation.
Linux vendors
You can enable authentication using Linux vendors authentication services by setting following variables to any value.
- WEBLATE_SOCIAL_AUTH_FEDORA
- WEBLATE_SOCIAL_AUTH_OPENSUSE
- WEBLATE_SOCIAL_AUTH_UBUNTU
Slack
- WEBLATE_SOCIAL_AUTH_SLACK_KEY
OpenID Connect
Neu 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
Configures generic OpenID Connect intergration.
Siehe auch
SAML
Self-signed SAML keys are automatically generated on first container startup.
In case you want to use own keys, place the certificate and private key in
/app/data/ssl/saml.crt
and /app/data/ssl/saml.key
.
- WEBLATE_SAML_IDP_ENTITY_ID
- WEBLATE_SAML_IDP_URL
- WEBLATE_SAML_IDP_X509CERT
- WEBLATE_SAML_IDP_IMAGE
- WEBLATE_SAML_IDP_TITLE
SAML Identity Provider settings, see SAML-Authentifizierung.
Other authentication settings
- WEBLATE_NO_EMAIL_AUTH
Disables e-mail authentication when set to any value. See Passwort-Authentifizierung deaktivieren.
PostgreSQL database setup
The database is created by docker-compose.yml
, so these settings affect
both Weblate and PostgreSQL containers.
Siehe auch
- POSTGRES_PASSWORD
PostgreSQL-Passwort.
- POSTGRES_PASSWORD_FILE
Path to the file containing the PostgreSQL password. Use as an alternative to POSTGRES_PASSWORD.
- POSTGRES_USER
PostgreSQL-Benutzername.
- POSTGRES_DATABASE
PostgreSQL-Datenbankname.
- POSTGRES_HOST
PostgreSQL server hostname or IP address. Defaults to
database
.
- POSTGRES_PORT
PostgreSQL server port. Defaults to none (uses the default value).
- POSTGRES_SSL_MODE
Configure how PostgreSQL handles SSL in connection to the server, for possible choices see SSL Mode Descriptions
- POSTGRES_ALTER_ROLE
Configures name of role to alter during migrations, see Configuring Weblate to use PostgreSQL.
- POSTGRES_CONN_MAX_AGE
Neu in Version 4.8.1.
Die Lebensdauer einer Datenbankverbindung als ganze Zahl von Sekunden. Verwenden Sie 0, um Datenbankverbindungen am Ende jeder Anfrage zu schließen (dies ist das Standardverhalten).
Die Aktivierung der Verbindungsaufrechterhaltung führt in der Regel zu mehr offenen Verbindungen zur Datenbank. Bitte passen Sie Ihre Datenbankkonfiguration vor der Aktivierung an.
Beispielkonfiguration:
environment: POSTGRES_CONN_MAX_AGE: 3600
Siehe auch
- POSTGRES_DISABLE_SERVER_SIDE_CURSORS
Neu in Version 4.9.1.
Disable server side cursors in the database. This is necessary in some pgbouncer setups.
Beispielkonfiguration:
environment: POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
Database backup settings
Siehe auch
- WEBLATE_DATABASE_BACKUP
Configures the daily database dump using
DATABASE_BACKUP
. Defaults toplain
.
Caching server setup
Using Redis is strongly recommended by Weblate and you have to provide a Redis instance when running Weblate in Docker.
Siehe auch
- REDIS_HOST
The Redis server hostname or IP address. Defaults to
cache
.
- REDIS_PORT
The Redis server port. Defaults to
6379
.
- REDIS_DB
The Redis database number, defaults to
1
.
- REDIS_PASSWORD
The Redis server password, not used by default.
- REDIS_PASSWORD_FILE
Path to the file containing the Redis server password.
Siehe auch
- REDIS_TLS
Enables using SSL for Redis connection.
- REDIS_VERIFY_SSL
Can be used to disable SSL certificate verification for Redis connection.
Einrichtung eines E-Mail-Servers
Damit ausgehende E-Mails funktionieren, müssen Sie einen Mailserver bereitstellen.
Beispiel für eine TLS-Konfiguration:
environment:
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_HOST_USER: user
WEBLATE_EMAIL_HOST_PASSWORD: pass
Beispiel für eine SSL-Konfiguration:
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
Siehe auch
- WEBLATE_EMAIL_HOST
Mail server hostname or IP address.
- WEBLATE_EMAIL_PORT
Mail server port, defaults to 25.
Siehe auch
- WEBLATE_EMAIL_HOST_USER
Benutzer der E-Mail-Authentifizierung.
Siehe auch
- WEBLATE_EMAIL_HOST_PASSWORD
Passwort für die E-Mail-Authentifizierung.
Siehe auch
- WEBLATE_EMAIL_HOST_PASSWORD_FILE
Pfad zu der Datei, die das Kennwort für die E-Mail-Authentifizierung enthält.
Siehe auch
- WEBLATE_EMAIL_USE_SSL
Whether to use an implicit TLS (secure) connection when talking to the SMTP server. In most e-mail documentation, this type of TLS connection is referred to as SSL. It is generally used on port 465. If you are experiencing problems, see the explicit TLS setting
WEBLATE_EMAIL_USE_TLS
.Geändert in Version 4.11: The SSL/TLS support is automatically enabled based on the
WEBLATE_EMAIL_PORT
.Siehe auch
- WEBLATE_EMAIL_USE_TLS
Whether to use a TLS (secure) connection when talking to the SMTP server. This is used for explicit TLS connections, generally on port 587 or 25. If you are experiencing connections that hang, see the implicit TLS setting
WEBLATE_EMAIL_USE_SSL
.Geändert in Version 4.11: The SSL/TLS support is automatically enabled based on the
WEBLATE_EMAIL_PORT
.Siehe auch
- WEBLATE_EMAIL_BACKEND
Konfiguriert das Django-Backend, das für den Versand von E-Mails verwendet werden soll.
Siehe auch
- WEBLATE_AUTO_UPDATE
Configures if and how Weblate should update repositories.
Siehe auch
Bemerkung
This is a Boolean setting (use
"true"
or"false"
).
Integration der Website
- WEBLATE_GET_HELP_URL
Configures
GET_HELP_URL
.
- WEBLATE_STATUS_URL
Configures
STATUS_URL
.
- WEBLATE_PRIVACY_URL
Konfiguriert
PRIVACY_URL
.
Fehlerbericht
Es wird empfohlen, Fehler bei der Installation systematisch zu sammeln, siehe Collecting error reports.
To enable support for Rollbar, set the following:
- ROLLBAR_KEY
Your Rollbar post server access token.
- ROLLBAR_ENVIRONMENT
Your Rollbar environment, defaults to
production
.
To enable support for Sentry, set following:
- SENTRY_DSN
Your Sentry DSN.
- SENTRY_ENVIRONMENT
Your Sentry Environment (optional).
Lokalisierung CDN
- WEBLATE_LOCALIZE_CDN_URL
- WEBLATE_LOCALIZE_CDN_PATH
Neu in Version 4.2.1.
Configuration for JavaScript-Lokalisierung CDN.
The
WEBLATE_LOCALIZE_CDN_PATH
is path within the container. It should be stored on the persistent volume and not in the transient storage.One of possibilities is storing that inside the Weblate data dir:
environment: WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/ WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn
Bemerkung
You are responsible for setting up serving of the files generated by Weblate, it only does stores the files in configured location.
Changing enabled apps, checks, add-ons or autofixes
Neu in Version 3.8-5.
The built-in configuration of enabled checks, add-ons or autofixes can be adjusted by the following variables:
- WEBLATE_ADD_APPS
- WEBLATE_REMOVE_APPS
- WEBLATE_ADD_CHECK
- WEBLATE_REMOVE_CHECK
- WEBLATE_ADD_AUTOFIX
- WEBLATE_REMOVE_AUTOFIX
- WEBLATE_ADD_ADDONS
- WEBLATE_REMOVE_ADDONS
Beispiel:
environment:
WEBLATE_REMOVE_AUTOFIX: weblate.trans.autofixes.whitespace.SameBookendingWhitespace
WEBLATE_ADD_ADDONS: customize.addons.MyAddon,customize.addons.OtherAddon
Siehe auch
Container-Einstellungen
- WEBLATE_WORKERS
Neu in Version 4.6.1.
Basisanzahl der im Container laufenden Arbeitsprozesse. Wenn sie nicht festgelegt ist, wird sie automatisch beim Start des Containers anhand der Anzahl der verfügbaren CPU-Kerne ermittelt.
Wird zur Bestimmung von
CELERY_MAIN_OPTIONS
,CELERY_NOTIFY_OPTIONS
,CELERY_MEMORY_OPTIONS
,CELERY_TRANSLATE_OPTIONS
,CELERY_BACKUP_OPTIONS
,CELERY_BEAT_OPTIONS
undWEB_WORKERS
verwendet. Sie können diese Einstellungen zur Feinabstimmung nutzen.
- CELERY_MAIN_OPTIONS
- CELERY_NOTIFY_OPTIONS
- CELERY_MEMORY_OPTIONS
- CELERY_TRANSLATE_OPTIONS
- CELERY_BACKUP_OPTIONS
- CELERY_BEAT_OPTIONS
These variables allow you to adjust Celery worker options. It can be useful to adjust concurrency (
--concurrency 16
) or use different pool implementation (--pool=gevent
).By default, the number of concurrent workers is based on
WEBLATE_WORKERS
.Beispiel:
environment: CELERY_MAIN_OPTIONS: --concurrency 16
Siehe auch
- WEB_WORKERS
Configure how many uWSGI workers should be executed.
It defaults to
WEBLATE_WORKERS
.Beispiel:
environment: WEB_WORKERS: 32
- WEBLATE_SERVICE
Defines which services should be executed inside the container. Use this for Horizontale Skalierung.
Folgende Dienste sind definiert:
celery-beat
Celery-Aufgabenplaner, es sollte nur eine Instanz ausgeführt werden. Dieser Container ist auch für die Migrationen der Datenbankstruktur zuständig und sollte vor den anderen gestartet werden.
celery-backup
Celery-Worker für Backups, es sollte nur eine Instanz laufen.
celery-celery
Generischer Celery-Worker.
celery-memory
Übersetzungsspeicher Celery-Worker.
celery-notify
Benachrichtigungen Celery-Worker.
celery-translate
Automatische Übersetzung Celery-Worker.
web
Webserver.
Docker-Container-Volumes
Es gibt zwei Volumes (Daten und Cache), die vom Weblate-Container exportiert werden. Die anderen Service-Container (PostgreSQL oder Redis) verfügen ebenfalls über Datenvolumina, die jedoch in diesem Dokument nicht behandelt werden.
Das Datenvolumen wird verwendet, um persistente Weblate-Daten wie geklonte Repositorys zu speichern oder die Weblate-Installation anzupassen.
Die Platzierung des Docker-Volumes auf dem Host-System hängt von Ihrer Docker-Konfiguration ab, aber normalerweise wird es in /var/lib/docker/volumes/weblate-docker_weblate-data/_data/
gespeichert (der Pfad besteht aus dem Namen Ihres Docker-Compose-Verzeichnisses, dem Container und den Volume-Namen). Im Container wird es als /app/data
eingehängt.
Das Cache-Volume wird als /app/cache
gemountet und dient der Speicherung statischer Dateien. Sein Inhalt wird beim Start des Containers neu erstellt und das Volume kann mit einem ephemeren Dateisystem wie tmpfs eingebunden werden.
Wenn Sie die Volumes manuell erstellen, sollten die Verzeichnisse der UID 1000 gehören, da dies der im Container verwendete Benutzer ist.
Siehe auch
Weitere Anpassungen der Konfiguration
Sie können die Installation von Weblate im Datenvolumen weiter anpassen, siehe Docker-Container-Volumes.
Benutzerdefinierte Konfigurationsdateien
Sie können die Konfiguration zusätzlich in /app/data/settings-override.py
überschreiben (siehe Docker-Container-Volumes). Dies wird am Ende der integrierten Einstellungen ausgeführt, nachdem alle Umgebungseinstellungen geladen wurden, und Sie können sie anpassen oder überschreiben.
Ersetzen des Logos und anderer statischer Dateien
Neu in Version 3.8-5.
Die mit Weblate gelieferten statischen Dateien können überschrieben werden, indem sie in /app/data/python/customize/static
abgelegt werden (siehe Docker-Container-Volumes). Zum Beispiel wird durch die Erstellung von /app/data/python/customize/static/favicon.ico
das Favicon ersetzt.
Hinweis
Die Dateien werden beim Start des Containers an den entsprechenden Ort kopiert, so dass ein Neustart von Weblate erforderlich ist, wenn der Inhalt des Volumes geändert wurde.
This approach can be also used to override Weblate templates. For example
Rechtliche Grundlagen documents can be placed into
/app/data/python/customize/templates/legal/documents
.
Alternativ können Sie auch ein eigenes Modul einbinden (siehe Customizing Weblate) und es z.B. als separates Volume dem Docker-Container hinzufügen:
weblate:
volumes:
- weblate-data:/app/data
- ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
environment:
WEBLATE_ADD_APPS: weblate_customization
Hinzufügen eigener Python-Module
Neu in Version 3.8-5.
You can place own Python modules in /app/data/python/
(see
Docker-Container-Volumes) and they can be then loaded by Weblate, most likely by
using Benutzerdefinierte Konfigurationsdateien.
Siehe auch
Configuring PostgreSQL server
The PostgtreSQL container uses default PostgreSQL configuration and it won’t effectively utilize your CPU cores or memory. It is recommended to customize the configuration to improve the performance.
The configuration can be adjusted as described in Database Configuration at https://hub.docker.com/_/postgres. The configuration matching your environment can be generated using https://pgtune.leopard.in.ua/.