使用 Docker 安装¶
通过 dockerized Weblate 部署,您可以在几秒钟内启动并运行您的个人 Weblate 实例。Weblate 的所有依赖项已包含在内。PostgreSQL 被新建为默认数据库。
硬件要求¶
Weblate 应该可以在任何现代硬件上正常运行,以下是在单个主机( Weblate ,数据库和 Web 服务器)上运行 Weblate 所需的最低配置:
2 GB 的内存
2 个 CPU 核心
1 GB 的存储空间
内存越多越好 —— 用于所有级别的缓存(文件系统,数据库和 Weblate )。
许多并发用户会增加所需的 CPU 内核数量。对于数百个翻译组件,推荐至少有 4 GB 的内存。
典型的数据库存储用量大约为每 1 百万单词 300 MB。克隆仓库所需的存储空间会变化,但 Weblate 试图通过浅克隆将其大小最小化。
注解
根据 Weblate 中管理的翻译大小,安装 Weblate 的实际要求差异很大。
安装¶
以下示例假设您拥有一个工作正常的 Docker 环境,并安装了 docker-compose
。请查看 Docker 文档以获取说明。
克隆 weblate-docker 存储库:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
使用您的设置创建一个
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
文件中编辑端口映射来更改。启动 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 )可能会使用端口 80
和 443
。要将 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
设置为新密码的情况下重启容器。
Number of processes and memory consumption¶
The number of worker processes for both uWSGI and Celery is determined automatically based on number of CPUs. This works well for most cloud virtual machines as these typically have few CPUs and good amount of memory.
在你有很多 CPU 核心并且碰到内存用尽问题情况下,尝试减少 worker 的数量:
environment:
WEBLATE_WORKERS: 2
你还可以微调单个 worker 类别:
environment:
UWSGI_WORKERS: 4
CELERY_MAIN_OPTIONS: --concurrency 2
CELERY_NOTIFY_OPTIONS: --concurrency 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1
Scaling horizontally¶
4.6 新版功能.
警告
该功能目前处于技术预览阶段。
You can run multiple Weblate containers to scale the service horizontally. The
/app/data
volume has to be shared by all containers, it is recommended
to use cluster filesystem such as GlusterFS for this. The /app/cache
volume should be separate for each container.
Each Weblate container has defined role using WEBLATE_SERVICE
environment variable. Please follow carefully the documentation as some of the
services should be running just once in the cluster and the ordering of the
services matters as well.
You can find example setup in the docker-compose
repo as
docker-compose-split.yml.
Docker 环境变量¶
可以使用环境变量在 Docker 容器中设置许多 Weblate 的 配置 :
通用设置¶
- WEBLATE_LOGLEVEL¶
配置日志记录的详细程度。
- WEBLATE_SITE_TITLE¶
更改所有页面页眉上显示的站点标题。
- WEBLATE_SITE_DOMAIN¶
配置站点域名。此参数为必填项。
参见
- 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_PASSWORD
,WEBLATE_ADMIN_NAME
和WEBLATE_ADMIN_EMAIL
。
警告
将密码存储在配置文件中可能会带来安全风险。考虑仅将此变量用于初始设置(或让 Weblate 在初始启动时生成随机密码)或用于密码恢复。
- WEBLATE_ADMIN_PASSWORD_FILE¶
设置指向包含 管理员 用户密码的一个文件。
- WEBLATE_SERVER_EMAIL¶
- WEBLATE_DEFAULT_FROM_EMAIL¶
配置外发电子邮件的地址。
参见
- WEBLATE_CONTACT_FORM¶
Configures contact form behavior, see
CONTACT_FORM
.
- 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 上设置安全标记。
提示
可能的警告请参见
ENABLE_HTTPS
文档。注解
这不会使 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¶
启用
REQUIRE_LOGIN
而在整个 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
来为整个 Webate 安装所需的身份验证添加 URL 例外。可以替换整个设置,或者使用
ADD
和REMOVE
变量修改默认值。
- WEBLATE_GOOGLE_ANALYTICS_ID¶
通过
GOOGLE_ANALYTICS_ID
来配置用于 Google Analytics 的 ID 。
- WEBLATE_GITHUB_USERNAME¶
通过更改
GITHUB_USERNAME
来配置用于 GitHub 拉取请求的 GitHub 用户名。参见
- WEBLATE_GITHUB_TOKEN¶
4.3 新版功能.
通过更改
GITHUB_TOKEN
,为 Github 通过 API 的拉取请求来配置 GitHub 的个人访问令牌。参见
- WEBLATE_GITLAB_USERNAME¶
通过更改
GITLAB_USERNAME
来配置用于 GitLab 合并请求的 GitLab 用户名参见
- WEBLATE_GITLAB_TOKEN¶
通过更改
GITLAB_TOKEN
,为 GitLab 通过 API 的合并请求来配置 GitLab 的个人访问令牌参见
- WEBLATE_PAGURE_TOKEN¶
通过更改
PAGURE_TOKEN
,为通过API的Pagure合并请求配置Pagure个人访问令牌参见
- 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¶
- WEBLATE_DEFAULT_COMMITER_NAME¶
- WEBLATE_DEFAULT_SHARED_TM¶
- 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_LICENSE_REQUIRED¶
- WEBLATE_WEBSITE_REQUIRED¶
- WEBLATE_HIDE_VERSION¶
配置
HIDE_VERSION
。
- WEBLATE_BASIC_LANGUAGES¶
配置
BASIC_LANGUAGES
.
- WEBLATE_DEFAULT_AUTO_WATCH¶
- WEBLATE_RATELIMIT_ATTEMPTS¶
- WEBLATE_RATELIMIT_LOCKOUT¶
- WEBLATE_RATELIMIT_WINDOW¶
4.6 新版功能.
配置速率限制器。
提示
You can set configuration for any rate limiter scopes. To do that add
WEBLATE_
prefix to any of setting described in 频次限制.
- WEBLATE_ENABLE_AVATARS¶
4.6.1 新版功能.
配置
ENABLE_AVATARS
.
机器翻译设置¶
- 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_URL¶
配置要使用的 DeepL API 版本,见
MT_DEEPL_API_URL
.
- WEBLATE_MT_GOOGLE_KEY¶
允许 谷歌翻译 并设置
MT_GOOGLE_KEY
- WEBLATE_MT_MICROSOFT_COGNITIVE_KEY¶
- WEBLATE_MT_MICROSOFT_ENDPOINT_URL¶
设置
MT_MICROSOFT_ENDPOINT_URL
,请注意,这应该只包含域名。
- WEBLATE_MT_MICROSOFT_REGION¶
- WEBLATE_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_MICROSOFT_TERMINOLOGY_ENABLED¶
允许 微软术语服务 机器翻译。
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¶
身份验证设置¶
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¶
- 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)
参见
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¶
PostgreSQL 数据库设置¶
数据库由 docker-compose.yml
建立,所以这些设置影响 Weblate 和 PostgreSQL 容器。
- POSTGRES_PASSWORD¶
PostgreSQL 密码。
- POSTGRES_PASSWORD_FILE¶
Path to the file containing the PostgreSQL password. Use as an alternative to POSTGRES_PASSWORD.
- POSTGRES_USER¶
PostgreSQL 用户名。
- POSTGRES_DATABASE¶
PostgreSQL 数据库名。
- POSTGRES_HOST¶
PostgreSQL 服务器主机名成或 IP 地址。默认为
database
。
- POSTGRES_PORT¶
PostgreSQL 服务器端口。默认为无(使用默认值)。
- POSTGRES_SSL_MODE¶
配置 PostgreSQL 如何处理 SSL 连接到服务器,可能的选项请参见 SSL Mode Descriptions
- POSTGRES_ALTER_ROLE¶
在迁移过程中配置要改变的角色名称,请参见 配置 Weblate 来使用 PostgreSQL。
缓存服务器设置¶
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。
参见
- WEBLATE_EMAIL_HOST_USER¶
电子邮件身份验证用户。
- WEBLATE_EMAIL_HOST_PASSWORD¶
电子邮件验证密码。
- WEBLATE_EMAIL_HOST_PASSWORD_FILE¶
到包含电子邮件验证密码的文件的路径。
- 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 后端配置为用于发送电子邮件。
站点集成¶
- WEBLATE_GET_HELP_URL¶
配置
GET_HELP_URL
.
- WEBLATE_STATUS_URL¶
配置
STATUS_URL
.
- WEBLATE_LEGAL_URL¶
配置: setting:LEGAL_URL.
错误报告¶
推荐从安装中系统地收集错误,请参见 收集错误报告。
要启用对 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
容器设置¶
- WEBLATE_WORKERS¶
4.6.1 新版功能.
Base number of worker processes running in the container. When not set it is determined automatically on container startup based on number of CPU cores available.
It is used to determine
CELERY_MAIN_OPTIONS
,CELERY_NOTIFY_OPTIONS
,CELERY_MEMORY_OPTIONS
,CELERY_TRANSLATE_OPTIONS
,CELERY_BACKUP_OPTIONS
,CELERY_BEAT_OPTIONS
, andUWSGI_WORKERS
. You can use these settings to fine-tune.
- CELERY_MAIN_OPTIONS¶
- CELERY_NOTIFY_OPTIONS¶
- CELERY_MEMORY_OPTIONS¶
- CELERY_TRANSLATE_OPTIONS¶
- CELERY_BACKUP_OPTIONS¶
- CELERY_BEAT_OPTIONS¶
这些变量允许您调整 Celery worker 选项。它可以用于调整并发性(
--concurrency 16
),或使用不同的池实现(--pool=gevent
)。By default, the number of concurrent workers is based on
WEBLATE_WORKERS
.示例:
environment: CELERY_MAIN_OPTIONS: --concurrency 16
- UWSGI_WORKERS¶
配置应该执行多少个 uWSGI workers 。
It defaults to
WEBLATE_WORKERS
.示例:
environment: UWSGI_WORKERS: 32
- WEBLATE_SERVICE¶
定义应在容器内执行哪些服务,使用对象 Scaling horizontally。
定义了以下服务:
celery-beat
Celery task scheduler, only one instance should be running. This container is also responsible for the database structure migrations and it should be started prior others.
celery-backup
Celery worker for backups, only one instance should be running.
celery-celery
Generic Celery worker.
celery-memory
翻译记忆库 Celery worker。
celery-notify
通知 Celery worker。
celery-translate
自动翻译 Celery worker。
web
Web 服务器。
Docker 容器卷¶
Weblate 容器导出了两个卷 (数据和缓存)。其他服务容器(PostgreSQL 或 Redis)也具有其数据卷,但本文档未涵盖这些数据卷。
数据卷用于存储 Weblate 持久数据(例如克隆的仓库)或自定义 Weblate 安装。
Docker 卷在主机系统上的位置取决于您的 Docker 配置,但通常存储在 /var/lib/docker/volumes/weblate-docker_weblate-data/_data/
中。(该路径由你的 docker-compose 目录的名称、容器和卷的名称组成)。在容器中,它挂载为 /app/data
。
The cache volume is mounted as /app/cache
and is used to store static
files. Its content is recreated on container startup and the volume can be
mounted using ephemeral filesystem such as tmpfs.
When creating the volumes manually, the directories should be owned by UID 1000 as that is user used inside the container.
参见
进一步的配置定制¶
您可以在数据卷中进一步自定义 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 部署。