使用 Docker 安装

通过 dockerized Weblate 部署,您可以在几秒钟内启动并运行您的个人 Weblate 实例。Weblate 的所有依赖项已包含在内。PostgreSQL 被新建为默认数据库。

硬件要求

Weblate 应该可以在所有现代硬件上正常运行,以下是在单个主机( Weblate ,数据库和 Web 服务器)上运行 Weblate 所需的最低配置:

  • 2 GB 的内存

  • 2 个 CPU 核心

  • 1 GB 的存储空间

内存越多越好 —— 用于所有级别的缓存(文件系统,数据库和 Weblate )。

许多并发用户会增加所需的 CPU 内核数量。对于数百个翻译组件,推荐至少有 4 GB 的内存。

注解

根据 Weblate 中管理的翻译大小,安装 Weblate 的实际要求差异很大。

安装

以下示例假设您拥有一个工作正常的 Docker 环境,并安装了 docker-compose 。请查看 Docker 文档以获取说明。

  1. 克隆 weblate-docker 存储库:

    git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker
    cd weblate-docker
    
  2. 使用您的设置创建一个 docker-compose.override.yml 文件。请参阅 Docker 环境变量 以获取环境变量的完整列表。

    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
    

    注解

    如果未设置 WEBLATE_ADMIN_PASSWORD,则使用首次启动时显示的随机密码创建管理员用户。

    提供的例子使 Weblate 侦听端口 80,在 docker-compose.override.yml 文件中编辑端口映射以进行更改。

  3. 启动 Weblate 容器:

    docker-compose up
    

享受您的 Weblate 部署,可以在 weblate 容器的端口 80 上进行访问。

在 2.15-2 版更改: 最近更改了设置,以前有单独的 web 服务器容器,因为 2.15-2 开始,web 服务器已嵌入 Weblate 容器中。

在 3.7.1-6 版更改: 在 2019 年 7 月(从 3.7.1-6 标签开始)中,容器未以 root 用户身份运行。这已将裸露端口从 80 更改为 8080。

具有 HTTPS 支持的 Docker 容器

请参阅 安装 以获取常规部署说明,本节仅提及与之相比的差异。

使用自己的 SSL 证书

3.8-3 新版功能.

如果您要使用自己的 SSL 证书,只需将文件放入 Weblate 数据卷中(请参阅 Docker 容器卷):

  • ssl/fullchain.pem 包含证书,包括任何需要的 CA 证书

  • ssl/privkey.pem 包含有私钥

拥有这两个文件的用户必须与启动 docker 容器并将文件掩码设置为 600 (仅拥有用户可读可写)的用户为同一用户。

此外,Weblate 容器现在将在端口 4443 上接受 SSL 连接,您将要在 docker compose override 中包括 HTTPS 的端口转发:

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

如果您已经在同一服务器上托管其他站点,则反向代理(例如 NGINX )可能会使用端口 80443。要将 HTTPS 连接从 NGINX 传递到 docker 容器,可以使用以下配置:

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

<SITE_URL><SITE><EXPOSED_DOCKER_PORT> 替换为您环境中的实际值。

使用 Let’s Encrypt 自动生成 SSL 证书

如果要在公共安装中使用 Let’s Encrypt 自动生成的 SSL 证书,则需要在其他 Docker 容器中添加反向 HTTPS 代理,这将使用 https-portal。这是在 docker-compose-https.yml 文件中使用的。然后使用您的设置创建一个 docker-compose-https.override.yml 文件:

version: '3'
services:
  weblate:
    environment:
      WEBLATE_EMAIL_HOST: smtp.example.com
      WEBLATE_EMAIL_HOST_USER: user
      WEBLATE_EMAIL_HOST_PASSWORD: pass
      WEBLATE_SITE_DOMAIN: weblate.example.com
      WEBLATE_ADMIN_PASSWORD: password for admin user
  https-portal:
    environment:
      DOMAINS: 'weblate.example.com -> http://weblate:8080'

每当调用 docker-compose 时,您都需要将两个文件都传递给它,然后执行以下操作:

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

升级 Docker 容器

通常,只更新 Weblate 容器并保持 PostgreSQL 容器为您的版本是一个好主意,因为升级 PostgreSQL 会很痛苦,并且在大多数情况下不会带来很多好处。

您可以通过坚持使用现有的 docker-compose,并且只是拉取最新映像,然后重新启动,来执行此操作:

docker-compose stop
docker-compose pull
docker-compose up

Weblate 数据库应在首次启动时自动迁移,并且不需要其他手动操作。

注解

Weblate 不支持跨 3.0 的升级。如果您使用的是 2.x 系列,并且要升级到 3.x,请首先升级到最新的 3.0.1-x(在撰写本文时为 3.0.1-7)镜像,它将进行迁移和然后继续升级到较新版本。

您可能还想更新 docker-compose 仓库,尽管在大多数情况下并不需要。在这种情况下,请注意 PostgreSQL 版本的更改,因为升级数据库并不容易,请参见 GitHub issue 以获取更多信息。

管理员登录

设置容器之后,您可以使用 WEBLATE_ADMIN_PASSWORD 中提供的密码以 管理员 用户身份登录,或者如果未设置该密码,则在首次启动时生成随机密码。

要重置 管理员 密码,请在 WEBLATE_ADMIN_PASSWORD 设置为新密码的情况下重启容器。

Docker 环境变量

可以使用环境变量在 Docker 容器中设置许多 Weblate 的 配置

通用设置

WEBLATE_DEBUG

使用 DEBUG 配置 Django 调试模式。

示例:

environment:
  WEBLATE_DEBUG: 1
WEBLATE_LOGLEVEL

配置日志记录的详细程度。

WEBLATE_SITE_TITLE

更改所有页面页眉上显示的站点标题。

WEBLATE_SITE_DOMAIN

配置网站域名.

提示

在没有设置的情况下,使用 WEBLATE_ALLOWED_HOSTS 的第一项。

WEBLATE_ADMIN_NAME
WEBLATE_ADMIN_EMAIL

配置站点管理员的姓名和电子邮件。它用于 ADMINS 设置和创建 管理员 用户(有关此信息,请参阅 WEBLATE_ADMIN_PASSWORD)。

示例:

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

设置 管理员 用户的密码。

  • 如果未设置并且 管理员 用户不存在,则会使用首次启动容器时显示的随机密码来创建它。

  • 如果未设置并且 管理员 用户存在,则不执行任何操作。

  • 如果设置,则在每次容器启动时都会对 管理员 用户进行调整,以匹配 WEBLATE_ADMIN_PASSWORDWEBLATE_ADMIN_NAMEWEBLATE_ADMIN_EMAIL

警告

将密码存储在配置文件中可能会带来安全风险。考虑仅将此变量用于初始设置(或让 Weblate 在初始启动时生成随机密码)或用于密码恢复。

WEBLATE_SERVER_EMAIL
WEBLATE_DEFAULT_FROM_EMAIL

配置外发电子邮件的地址。

WEBLATE_ALLOWED_HOSTS

使用 ALLOWED_HOSTS 配置允许的 HTTP 主机名。

默认为 * 来允许所有的主机名称。

示例:

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

通过切换 REGISTRATION_OPEN 配置是否打开注册。

示例:

environment:
  WEBLATE_REGISTRATION_OPEN: 0
WEBLATE_REGISTRATION_ALLOW_BACKENDS

配置可用于通过 REGISTRATION_ALLOW_BACKENDS 创建新帐户的身份验证方法。

示例:

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

在 Weblate 中配置使用的时区,请参阅 TIME_ZONE

注解

为了更改 Docker 自己的时区,使用 TZ 环境变量。

示例:

environment:
  WEBLATE_TIME_ZONE: Europe/Prague
WEBLATE_ENABLE_HTTPS

让 Weblate 假定在反向 HTTPS 代理后面操作,这使 Weblate 在电子邮件和 API 链接中使用 HTTPS ,或者在 cookies 上设置安全标志。

注解

这不会使 Weblate 容器接受 HTTPS 连接,您同样需要配置它,例子请参见 具有 HTTPS 支持的 Docker 容器

示例:

environment:
  WEBLATE_ENABLE_HTTPS: 1
WEBLATE_IP_PROXY_HEADER

让 Weblate 从任何给定的 HTTP 标头中取回 IP 地址。在使用 Weblate 容器之前的反向代理时使用它。

允许 IP_BEHIND_REVERSE_PROXY 并设置 IP_PROXY_HEADER

注解

格式必须符合 Django 的要求。 Django transforms 原始 HTTP 标头如下命名:

  • 将所有字符装换为大写

  • 用下划线替代任何连字符

  • 预置 HTTP_ 前缀

所以 X-Forwarded-For 将被映射到 HTTP_X_FORWARDED_FOR

示例:

environment:
  WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
WEBLATE_SECURE_PROXY_SSL_HEADER

代表 HTTP 标头/值的组合的元组,用于表达请求,这样的元组是安全的。当 Weblate 在进行终止SSL 的反向代理之后运行时,这是需要的,终止 SSL 不通过标准 HTTPS 标头。

示例:

environment:
  WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
WEBLATE_REQUIRE_LOGIN

使用 LOGIN_REQUIRED_URLS 来配置整个 Weblate 安装所需要的登录。

示例:

environment:
  WEBLATE_REQUIRE_LOGIN: 1
WEBLATE_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_ADD_LOGIN_REQUIRED_URLS_EXCEPTIONS
WEBLATE_REMOVE_LOGIN_REQUIRED_URLS_EXCEPTIONS

使用 LOGIN_REQUIRED_URLS_EXCEPTIONS 来添加整个 Weblate 安装所需要的 URL 例外。

可以代替整个设置,或者使用 ADDREMOVE 变量修改默认值。

WEBLATE_GOOGLE_ANALYTICS_ID

通过 GOOGLE_ANALYTICS_ID 来配置用于 Google Analytics 的 ID 。

WEBLATE_GITHUB_USERNAME

通过更改 GITHUB_USERNAME 来配置用于 GitHub 拉取请求的 GitHub 用户名。

参见

GitHub

WEBLATE_GITHUB_TOKEN

4.3 新版功能.

通过更改 GITHUB_TOKEN,为 Github 通过 API 的拉取请求来配置 GitHub 的个人访问令牌。

参见

GitHub

WEBLATE_GITLAB_USERNAME

通过更改 GITLAB_USERNAME 来配置用于 GitLab 合并请求的 GitLab 用户名

参见

GitLab

WEBLATE_GITLAB_TOKEN

通过更改 GITLAB_TOKEN ,为 GitLab 通过 API 的合并请求来配置 GitLab 的个人访问令牌

参见

GitLab

WEBLATE_SIMPLIFY_LANGUAGES

配置语言简化策略,请参见 SIMPLIFY_LANGUAGES

WEBLATE_DEFAULT_ACCESS_CONTROL

为新项目配置默认的 访问控制 ,请参见 DEFAULT_ACCESS_CONTROL

WEBLATE_DEFAULT_RESTRICTED_COMPONENT

为新组件的 受限制的访问 配置默认值,请参见 DEFAULT_RESTRICTED_COMPONENT

WEBLATE_DEFAULT_TRANSLATION_PROPAGATION

为新组件的 允许同步翻译 配置默认值,请参见 DEFAULT_TRANSLATION_PROPAGATION

WEBLATE_DEFAULT_COMMITER_EMAIL

配置 DEFAULT_COMMITER_EMAIL

WEBLATE_DEFAULT_COMMITER_NAME

配置 DEFAULT_COMMITER_NAME

WEBLATE_AKISMET_API_KEY

配置 Akismet API 密钥,请参见 AKISMET_API_KEY

WEBLATE_GPG_IDENTITY

配置提交的 GPG 签名,请参见 WEBLATE_GPG_IDENTITY

WEBLATE_URL_PREFIX

配置 Weblate 运行的 URL 前缀,请参见 URL_PREFIX

WEBLATE_SILENCED_SYSTEM_CHECKS

配置您不想要显示的检查,请参见 SILENCED_SYSTEM_CHECKS

WEBLATE_CSP_SCRIPT_SRC
WEBLATE_CSP_IMG_SRC
WEBLATE_CSP_CONNECT_SRC
WEBLATE_CSP_STYLE_SRC
WEBLATE_CSP_FONT_SRC

允许定制 Content-Security-Policy HTTP 标头。

WEBLATE_LICENSE_FILTER

配置 LICENSE_FILTER.

机器翻译设置

WEBLATE_MT_APERTIUM_APY

启用 Apertium 机器翻译并设置 MT_APERTIUM_APY

WEBLATE_MT_AWS_REGION
WEBLATE_MT_AWS_ACCESS_KEY_ID
WEBLATE_MT_AWS_SECRET_ACCESS_KEY

配置 AWS 机器翻译。

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

允许 DeepL 机器翻译,并设置 MT_DEEPL_KEY

WEBLATE_MT_DEEPL_API_VERSION

配置使用的 DeepL API 版本,请参见 MT_DEEPL_API_VERSION

WEBLATE_MT_GOOGLE_KEY

允许 Google Translate 并设置 MT_GOOGLE_KEY

WEBLATE_MT_MICROSOFT_COGNITIVE_KEY

允许 Microsoft Cognitive Services Translator 并设置 MT_MICROSOFT_COGNITIVE_KEY

WEBLATE_MT_MICROSOFT_ENDPOINT_URL

设置 MT_MICROSOFT_ENDPOINT_URL ,请注意,这应该只包含域名。

WEBLATE_MT_MICROSOFT_REGION

Sets MT_MICROSOFT_REGION

WEBLATE_MT_MICROSOFT_BASE_URL

Sets MT_MICROSOFT_BASE_URL

WEBLATE_MT_MODERNMT_KEY

允许 ModernMT 并设置 MT_MODERNMT_KEY

WEBLATE_MT_MYMEMORY_ENABLED

允许 MyMemory 机器翻译,并将 MT_MYMEMORY_EMAIL 设置到 WEBLATE_ADMIN_EMAIL

示例:

environment:
  WEBLATE_MT_MYMEMORY_ENABLED: 1
WEBLATE_MT_GLOSBE_ENABLED

允许 Glosbe 机器翻译。

environment:
  WEBLATE_MT_GLOSBE_ENABLED: 1
WEBLATE_MT_MICROSOFT_TERMINOLOGY_ENABLED

允许 Microsoft Terminology Service 机器翻译。

environment:
  WEBLATE_MT_MICROSOFT_TERMINOLOGY_ENABLED: 1
WEBLATE_MT_SAP_BASE_URL
WEBLATE_MT_SAP_SANDBOX_APIKEY
WEBLATE_MT_SAP_USERNAME
WEBLATE_MT_SAP_PASSWORD
WEBLATE_MT_SAP_USE_MT

配置 SAP Translation Hub 机器翻译。

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

身份验证设置

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 身份验证配置。

直接绑定的例子:

environment:
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_USER_DN_TEMPLATE: uid=%(user)s,ou=People,dc=example,dc=net
  # map weblate 'full_name' to ldap 'name' and weblate 'email' attribute to 'mail' ldap attribute.
  # another example that can be used with OpenLDAP: 'full_name:cn,email:mail'
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail

搜索与绑定的例子:

environment:
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_BIND_PASSWORD: password
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
  WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com

联合搜索与绑定的例子:

environment:
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_BIND_PASSWORD: password
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
  WEBLATE_AUTH_LDAP_USER_SEARCH_UNION: ou=users,dc=example,dc=com|ou=otherusers,dc=example,dc=com

针对活动目录( Active Directory )的搜索与绑定的例子:

environment:
  WEBLATE_AUTH_LDAP_BIND_DN: CN=ldap,CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_BIND_PASSWORD: password
  WEBLATE_AUTH_LDAP_SERVER_URI: ldap://ldap.example.org
  WEBLATE_AUTH_LDAP_CONNECTION_OPTION_REFERRALS: 0
  WEBLATE_AUTH_LDAP_USER_ATTR_MAP: full_name:name,email:mail
  WEBLATE_AUTH_LDAP_USER_SEARCH: CN=Users,DC=example,DC=com
  WEBLATE_AUTH_LDAP_USER_SEARCH_FILTER: (sAMAccountName=%(user)s)

GitHub

WEBLATE_SOCIAL_AUTH_GITHUB_KEY
WEBLATE_SOCIAL_AUTH_GITHUB_SECRET

允许 GitHub 身份验证

Bitbucket

WEBLATE_SOCIAL_AUTH_BITBUCKET_KEY
WEBLATE_SOCIAL_AUTH_BITBUCKET_SECRET

允许 Bitbucket 身份验证

Facebook

WEBLATE_SOCIAL_AUTH_FACEBOOK_KEY
WEBLATE_SOCIAL_AUTH_FACEBOOK_SECRET

允许 Facebook OAuth 2.

Google

WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET
WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_DOMAINS
WEBLATE_SOCIAL_AUTH_GOOGLE_OAUTH2_WHITELISTED_EMAILS

允许 Google OAuth 2

GitLab

WEBLATE_SOCIAL_AUTH_GITLAB_KEY
WEBLATE_SOCIAL_AUTH_GITLAB_SECRET
WEBLATE_SOCIAL_AUTH_GITLAB_API_URL

允许 GitLab OAuth 2

Azure Active Directory

WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET

允许 Azure 活动目录身份验证,请参见 微软 Azure Active Directory

带有租户支持的Azure 活动目录

WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET
WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID

允许带有租户支持的Azure 活动目录身份验证,请参见 微软 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

允许 Keycloak 身份验证,请参见 documentation

Linux 销售商

您可以通过将后面的变量设置为任何值,使用 Linux 销售商身份验证服务来允许身份验证。

WEBLATE_SOCIAL_AUTH_FEDORA
WEBLATE_SOCIAL_AUTH_OPENSUSE
WEBLATE_SOCIAL_AUTH_UBUNTU

Slack

WEBLATE_SOCIAL_AUTH_SLACK_KEY
SOCIAL_AUTH_SLACK_SECRET

允许 Slack 身份验证,请参见 Slack

SAML

在第一次启动容器时自动产生自签名的 SAML 密钥。在您想要使用自己的密钥的情况下,将证书和私钥放置在 /app/data/ssl/saml.crt 和 :file:`/app/data/ssl/saml.key`中。

WEBLATE_SAML_IDP_ENTITY_ID
WEBLATE_SAML_IDP_URL
WEBLATE_SAML_IDP_X509CERT

SAML 身份提供者设置,请参见 SAML 身份验证

其他身份认证设置

WEBLATE_NO_EMAIL_AUTH

当设置为任何值时禁止电子邮箱身份认证。

PostgreSQL 数据库设置

数据库由 docker-compose.yml 建立,所以这些设置影响 Weblate 和 PostgreSQL 容器。

POSTGRES_PASSWORD

PostgreSQL 密码。

POSTGRES_USER

PostgreSQL 用户名。

POSTGRES_DATABASE

PostgreSQL 数据库名。

POSTGRES_HOST

PostgreSQL 服务器主机名成或 IP 地址。默认为 database

POSTGRES_PORT

PostgreSQL 服务器端口。默认为无(使用默认值)。

POSTGRES_SSL_MODE

配置 PostgreSQL 如何处理 SSL 连接到服务器,可能的选项请参见 SSL Mode Descriptions

数据库备份设置

WEBLATE_DATABASE_BACKUP

使用 DATABASE_BACKUP 配置每日数据库转储。默认为 plain

缓存服务器设置

Weblate 强烈推荐使用 Redis ,在 Docker 中运行 Weblate 时您必须提供 Redis 事例。

参见

允许缓存

REDIS_HOST

Redis 服务器主机名称或 IP 地址。默认为 cache

REDIS_PORT

Redis 服务器端口。默认为 6379

REDIS_DB

Redis 数据库编号,默认为 1

REDIS_PASSWORD

Redis 服务器密码,默认不使用。

REDIS_TLS

允许使用 SSL 进行 Redis 连接。

REDIS_VERIFY_SSL

可以用于禁止 Redis 连接的 SSL 身份认证。

电子邮件服务器设置

要使外发电子邮件正常工作,您需要提供一个邮件服务器。

TLS 配置例子:

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

SSL 配置的示例:

environment:
    WEBLATE_EMAIL_HOST: smtp.example.com
    WEBLATE_EMAIL_PORT: 465
    WEBLATE_EMAIL_HOST_USER: user
    WEBLATE_EMAIL_HOST_PASSWORD: pass
    WEBLATE_EMAIL_USE_TLS: 0
    WEBLATE_EMAIL_USE_SSL: 1
WEBLATE_EMAIL_HOST

邮件服务器主机名或 IP 地址。

WEBLATE_EMAIL_PORT

邮件服务器端口,默认为 25。

参见

EMAIL_PORT

WEBLATE_EMAIL_HOST_USER

电子邮件身份验证用户。

WEBLATE_EMAIL_HOST_PASSWORD

电子邮件验证密码。

WEBLATE_EMAIL_USE_SSL

与 SMTP 服务器通信时是否使用隐式 TLS(安全)连接。在大多数电子邮件文档中,这种 TLS 连接类型称为 SSL。通常在端口 465 上使用。如果遇到问题,请参阅显式 TLS 设置 WEBLATE_EMAIL_USE_TLS

WEBLATE_EMAIL_USE_TLS

与 SMTP 服务器通讯时是否使用 TLS(安全)连接。这用于显式 TLS 连接,通常在端口 587 或 25 上。如果您遇到挂起的连接,请参见隐式 TLS 设置 WEBLATE_EMAIL_USE_SSL

WEBLATE_EMAIL_BACKEND

将 Django 后端配置为用于发送电子邮件。

错误报告

推荐从安装中系统地收集错误,请参见 收集错误报告

要启用对 Rollbar 的支持,请进行以下设置:

ROLLBAR_KEY

您的 Rollbar 发布服务器访问令牌。

ROLLBAR_ENVIRONMENT

您的 Rollbar 环境,默认为 production

要启用对 Sentry 的支持,请进行以下设置:

SENTRY_DSN

您的 Sentry DSN。

SENTRY_ENVIRONMENT

您的 Sentry 环境(可选)。

语言本地化内容分发网络

WEBLATE_LOCALIZE_CDN_URL
WEBLATE_LOCALIZE_CDN_PATH

4.2.1 新版功能.

:ref:`addon-weblate.cdn.cdnjs`的配置。

WEBLATE_LOCALIZE_CDN_PATH 是容器内的路径。它应该存储在持久卷上,而不能存储在瞬态存储器中。

一种可能性是存储在 Weblate 数据目录中:

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

注解

您负责设置Weblate生成的文件的服务,它只在配置的位置存储文件。

更改允许的 app 、检查、插件或自动修复

3.8-5 新版功能.

可以通过后面的变量来调整允许的检查、插件或自动修复的内建配置:

WEBLATE_ADD_APPS
WEBLATE_REMOVE_APPS
WEBLATE_ADD_CHECK
WEBLATE_REMOVE_CHECK
WEBLATE_ADD_AUTOFIX
WEBLATE_REMOVE_AUTOFIX
WEBLATE_ADD_ADDONS
WEBLATE_REMOVE_ADDONS

示例:

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

容器设置

CELERY_MAIN_OPTIONS
CELERY_NOTIFY_OPTIONS
CELERY_TRANSLATE_OPTIONS
CELERY_BACKUP_OPTIONS
CELERY_BEAT_OPTIONS

这些变量允许您调整 Celery worker 选项。它可以用于调整并发性( --concurrency 16 ),或使用不同的池实现( --pool=gevent )。

并发 worker 的数量默认与处理的数量匹配(除了被认为只运行一次的备份 worker )。

示例:

environment:
  CELERY_MAIN_OPTIONS: --concurrency 16
UWSGI_WORKERS

配置应该执行多少个 uWSGI workers 。

默认为处理器的数量 + 1 。

示例:

environment:
  UWSGI_WORKERS: 32

在你有很多 CPU 核并且碰到内存用尽问题情况下,尝试减少 worker 的数量:

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

Docker 容器卷

Weblate 容器导出单个数据卷。其他服务容器(PostgreSQL 或 Redis)也具有其数据卷,但本文档未涵盖这些数据卷。

数据卷用于存储 Weblate 持久数据(例如克隆的仓库)或自定义 Weblate 安装。

Docker 卷在主机系统上的位置取决于您的 Docker 配置,但通常存储在 /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ 中。在容器中,它挂载为 /app/data

进一步的配置定制

您可以在数据卷中进一步自定义 Weblate 安装,请参阅 Docker 容器卷

定制配置文件

您还可以在 /app/data/settings-override.py 中覆盖配置(请参阅 Docker 容器卷)。加载所有环境设置后将执行此操作,因此完全新建它,并可用于自定义任何内容。

替换 logo 和其他静态文件

3.8-5 新版功能.

Weblate 附带的静态文件可以通过放置到 /app/data/python/customize/static 中来覆盖(请参阅 Docker 容器卷)。例如,创建 /app/data/python/customize/static/favicon.ico 将替换 favicon。

提示

在容器启动时,这些文件被复制到相应的位置,因此需要在更改卷的内容后重新启动 Weblate 。

或者,您也可以包括自己的模块(请参阅 定制 Weblate),并将其作为单独的卷添加到 Docker 容器中,例如:

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

添加自己的 Python 模块

3.8-5 新版功能.

您可以将自己的 Python 模块放置在 /app/data/python/ 中(请参阅 Docker 容器卷),然后可以由 Weblate 加载它们,很可能是使用 定制配置文件

选择您的机器 —— 本地或云提供商

使用 Docker Machine,您可以在本地计算机上或在任何数量的基于云的部署,例如 Amazon AWS,Greenhost 和许多其他提供商上创建 Weblate 部署。