使用 Docker 安裝¶
透過 Weblate 容器化部署,您可以在幾秒鐘內啟動並執行您的個人 Weblate 執行個體。Weblate 的所有相依套件已包含在內。PostgreSQL 設為預設資料庫,Valkey 設為快取後端。
硬體需求¶
Weblate 應該可以在任何現代硬體上正常執行,以下是在單一主機(Weblate、資料庫和 Web 伺服器)上執行 Weblate 所需的最低設定:
3 GB 記憶體
2 個 CPU 核心
1 GB 儲存空間
備註
根據 Weblate 中管理的翻譯大小,安裝 Weblate 的實際需求差異很大。
記憶體使用¶
記憶體越多越好——用於所有層級的快取(檔案系統,資料庫和 Weblate)。如果有幾百個翻譯元件,那麼建議的最小記憶體為 4 GB。
提示
對於記憶體低於建議值的系統,建議使用 單行程 Celery 設定。
CPU 使用¶
大量並行使用者會提高需要的 CPU 核心數。
儲存空間使用¶
典型的資料庫儲存用量為大約 300 MB/每 100 萬託管字詞。
複製儲存庫所需的儲存空間會因情況而異,但 Weblate 會透過淺層複製來盡量降低所需空間。
節點¶
對中小網站(幾百萬託管字詞),所有的 Weblate 元件(見 架構概覽)可以執行在單一節點上。
當託管字詞數增長到數以億計時,建議使用專門的資料庫節點(見 適用於 Weblate 的資料庫設定)。
安裝¶
提示
下列範例假設您有可正常運作的 Docker 環境,並已安裝 docker-compose-plugin。操作說明請參閱 Docker 說明文件。
這會透過 HTTP 建立一個 Weblate 部署伺服器,您應將它置於 HTTPS 終止代理之後。您也可以用 HTTPS 代理進行部署,參閱 使用 Let’s Encrypt 自動產生 SSL 憑證。對於更大型的安裝設定,請見 水平擴展。
複製 weblate-docker 儲存庫:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
備註
Docker Compose 檔案是部署設定範例。維運人員通常會依自己的部署自訂檔案,並維護這些本機變更。Weblate 應用程式更新會透過 Docker 映像標籤提供;自訂 Compose 檔案沒有與發行版本綁定的更新途徑。
建立一個
docker-compose.override.yml檔案並調整為您所需的設定。參閱 Docker 環境變數 瞭解更多相關設定參數。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
備註
如果未設定
WEBLATE_ADMIN_PASSWORD,則使用首次啟動時顯示的隨機密碼建立管理員使用者。提供的範例使 Weblate 偵聽連接埠 80,在
docker-compose.override.yml檔案中編輯連接埠映射來變更。啟動 Weblate 容器:
docker compose up
享受您的 Weblate 部署,可以在 weblate 容器的埠 80 上進行存取。
也參考
選擇 Docker 映像註冊表¶
Weblate 容器釋出到下列映像庫:
Docker Hub,請參閱 https://hub.docker.com/r/weblate/weblate
GitHub 套件註冊表,請參閱 https://github.com/WeblateOrg/docker/pkgs/container/weblate
備註
所有範例目前從 Docker Hub 取得映像,請相應調整設定來使用另一個映像庫。
選擇 Docker 映像標籤¶
請選擇相符您的環境和預期的標籤:
標籤名稱 |
描述 |
使用案例 |
|---|---|---|
|
Weblate 穩定版本,符合最新版本的發佈 |
在正式環境中滾動式更新 |
|
Weblate 穩定版本 |
正式環境下日曆年內的滾動更新 |
|
Weblate 穩定版本 |
正式環境下月度版本內的滾動更新 |
|
Weblate 穩定版本 |
正式環境下定義良好的部署 |
|
基於 Weblate 穩定版本作開發修正於 Docker 容器(例如更新依賴套件) |
滾動式更新於暫存環境中 |
|
基於 Weblate 穩定版本作開發修正於 Docker 容器(例如更新依賴套件) |
明確定義其佈署版本於暫存環境中 |
|
依 Git 上的 Weblate 開發版本 |
測試即將推出的 Weblate 功能的滾動更新 |
|
依 Git 上的 Weblate 開發版本 |
明確定義其佈署版本來設定即將發佈的 Weblate 功能 |
每個映像在釋出之前都經過我們的 CI 測試,所以即使是 bleeding 版本也應該可以安全使用。
可以在 GitHub Packages 找到的已釋出標籤的完整清單
支援 HTTPS 的 Docker 容器¶
請參閱 安裝 以取得一般部署說明,本節僅提及與之相比的差異。
SSL 終止代理¶
可以在 Weblate 容器外終止 SSL。要達成它,需要將幾個標頭傳遞給容器,這樣容器可以知道其實際的環境。關於這些標頭的更詳細資訊見 在反向代理後面執行。
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;
}
WEBLATE_ENABLE_HTTPS=1
WEBLATE_IP_PROXY_HEADER=HTTP_X_FORWARDED_FOR
使用自己的 SSL 憑證¶
如果您要使用自己的 SSL 憑證,只需將檔案放入 Weblate 資料儲存區中(請參閱 Docker 容器儲存區):
ssl/fullchain.pem包含憑證,包括任何需要的 CA 憑證ssl/privkey.pem包含私密金鑰
擁有這兩個檔案的使用者必須與啟動 docker 容器並將檔案掩碼設定為 600(僅擁有使用者可讀可寫)的使用者為同一使用者。
此外,Weblate 容器現在將在連接埠 4443 上接受 SSL 連線,您將需要在 docker compose 覆寫中包含 HTTPS 連接埠轉發:
version: '3'
services:
weblate:
ports:
- 80:8080
- 443:4443
如果您已經在同一伺服器上託管其他網站,則反向代理(例如 NGINX )可能會使用連接埠 80 和 443。要將 HTTPS 連線從 NGINX 傳遞到 docker 容器,可以使用以下設定:
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>;
}
}
將 <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,並且只是拉取最新映像,然後重新啟動,來執行此操作:
# 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
Weblate 資料庫應在首次啟動時自動移轉,並且不需要其他手動操作。
備註
只有目前或前一個日曆年度的發行版本支援直接升級。如果需要從更舊的版本升級,請先升級至 版本特定說明 中列出的中繼版本。
如不做本機變更使用範例 Compose 檔案,您也可以在 docker-compose 儲存庫中檢視更新,雖然多輸 Weblate 升級不需要。自訂的 Compose 檔案需作為部署的一部分加以維護。升級 PostgreSQL 伺服器的內容見 升級 PostgreSQL 容器。
升級 PostgreSQL 容器¶
備註
PostgreSQL 18 變更了容器中的預設資料目錄。常見的舊版設定是將資料庫儲存區掛載至 /var/lib/postgresql/data,而 PostgreSQL 18 現在預設使用 /var/lib/postgresql。
如果正在從老版本升級,要麼將 Docker 設定中的掛載目標更新到新路徑,要麼保留舊的掛載目標並相應設定 PGDATA 。
不設定 PGDATA 就保留舊的掛載目標可能導致 PostgreSQL 在持久磁碟區外面寫入其資料。
更多資訊見 PGDATA 文件。
PostgreSQL 容器不支援版本間自動升級,需要手動升級。以下步驟顯示了升級選項之一。
停止 Weblate 容器:
docker compose stop weblate cache
備份資料庫:
docker compose exec database pg_dumpall --clean --if-exists --username weblate > backup.sql
停止資料庫容器:
docker compose stop database
移除 PostgreSQL volume:
docker compose rm -v database docker volume remove weblate-docker_postgres-data
提示
磁碟區名包含 Docker Compose 專案名,其預設為此文件中
weblate-docker的目錄名。調整
docker-compose.yml以使用新的 PostgreSQL 版本。啟動資料庫容器:
docker compose up -d database
從備份中還原資料庫:
cat backup.sql | docker compose exec -T database psql --username weblate --dbname weblate
提示
請檢查資料庫名稱是否與
POSTGRES_DB相符。(選用)更新 Weblate 使用者的密碼。移轉到 PostgreSQL 14 或 15 時可能需要這麼做,因為密碼儲存方式發生了改變:
docker compose exec -T database psql --username weblate --dbname weblate -c "ALTER USER weblate WITH PASSWORD 'weblate'"
提示
請檢查資料庫名稱是否與
POSTGRES_DB相符。啟動所有剩下的容器:
docker compose up -d
系統管理員登入¶
設定容器之後,您可以使用 WEBLATE_ADMIN_PASSWORD 中提供的密碼以 管理員 使用者身分登入,或者如果未設定該密碼,則在首次啟動時產生隨機密碼。
要重設 管理員 密碼,請在 WEBLATE_ADMIN_PASSWORD 設定為新密碼的情況下重啟容器。
程式數量和記憶體消耗¶
WSGI 和 Celery 的工作處理程序數是根據 CPU 的數量自動確定的。這適用於大多數雲虛擬機器,因為這些虛擬機器通常具有很少的CPU和大量的記憶體。
在您有很多 CPU 核心並且碰到記憶體用盡問題情況下,嘗試減少 worker 的數量:
environment:
WEBLATE_WORKERS: 2
您還可以微調單一 worker 類別:
environment:
WEB_WORKERS: 4
WEB_BLOCKING_THREADS: 4
CELERY_MAIN_OPTIONS: --concurrency 2 --prefetch-multiplier 1
CELERY_NOTIFY_OPTIONS: --concurrency 1 --prefetch-multiplier 4
CELERY_MEMORY_OPTIONS: --concurrency 1 --prefetch-multiplier 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1 --prefetch-multiplier 1
CELERY_BACKUP_OPTIONS: --concurrency 1 --prefetch-multiplier 1
預先擷取倍數會控制每個 worker 執行槽可保留的工作數量。預設值 1 可避免額外保留執行時間較長或資料量較大的工作。在此範例中,通知 worker 使用 4,因為其耗時較短的工作可受益於緩衝處理。只有在量測佇列延遲與 worker 記憶體用量後,才提高此值。
只執行單一 Celery 處理程序可進一步減少記憶體使用:
environment:
CELERY_SINGLE_PROCESS: 1
水平擴展¶
在 4.6 版被加入.
您可以執行多個 Weblate 容器來水平擴充套件服務。/app/data 磁碟區必須由所有容器共享,建議使用叢集檔案系統,如 GlusterFS。對於每個容器,/app/cache 磁碟區應該是分開的。
每個 Weblate 容器都使用 WEBLATE_SERVICE 環境變數定義了角色。請仔細閱讀文件,因為某些服務應該在叢集中應只執行一次,並且服務的順序也很重要。
您可以在 docker-compose 儲存庫中找到範例設定,如 docker-compose-split.yml。
Docker 環境變數¶
許多 Weblate 的 設定 可以透過環境變數設定到 Docker 容器中。
如果您需要定義不透過 Docker 環境變數公開的設定,請參考 環境變數以外的設定。
傳遞秘密¶
在 5.0 版被加入.
Weblate 容器支援將 secrets 作為檔案進行傳遞。要達成它,請將 _FILE 字尾附加到環境變數並透過 Docker 傳遞 secret 檔案。
相關的 docker-compose.yml 看上去可能是這樣:
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
通用設定¶
- WEBLATE_LOGLEVEL¶
設定日誌記錄詳細程度,將此設為
DEBUG來獲得更詳細的日誌。WEBLATE_DEBUG關閉時,預設為INFO,開啟除錯模式時也會使用DEBUG層級。要靜默記錄更多的錯誤,請使用
ERROR或WARNING層級。
- WEBLATE_LOGLEVEL_DATABASE¶
設定資料庫查詢紀錄的詳細程度。
- WEBLATE_LOG_GELF_HOST¶
在 5.9 版被加入.
使用 GELF TCP 連線設定遠端日誌記錄。可被用於和 Graylog 整合。
- WEBLATE_LOG_GELF_PORT¶
在 5.9 版被加入.
對
WEBLATE_LOG_GELF_HOST使用自訂埠,預設為 12201。
- WEBLATE_SITE_TITLE¶
變更所有頁面頁眉上顯示的網站標題。
- WEBLATE_SITE_DOMAIN¶
設定網站網域。此參數必填。
包括埠,如果使用的是非標準埠。
範例:
environment: WEBLATE_SITE_DOMAIN: example.com:8080
也參考
- WEBLATE_ADMIN_NAME¶
- WEBLATE_ADMIN_EMAIL¶
設定網站管理員的名稱與電子郵件。這會同時用於
ADMINS設定及建立 admin 使用者(詳情請參閱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_NOTIFY_ERROR¶
是否在伺服器錯誤時給管理員傳送電子郵件。預設開啟。
您可能想使用其他錯誤收集工具,如 Sentry 或 Rollbar,並將此選項關閉。
- WEBLATE_SERVER_EMAIL¶
傳送錯誤訊息的電子郵件地址。
也參考
- WEBLATE_DEFAULT_FROM_EMAIL¶
設定用於傳出電子郵件的位址。
- WEBLATE_ADMINS_CONTACT¶
設定
ADMINS_CONTACT。
- WEBLATE_CONTACT_FORM¶
設定聯絡表單行為,請參閱
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_CAPTCHA¶
在 5.10 版被加入.
設定是否將人機驗證碼用於帳號註冊和其他未經身分驗證的操作,見
REGISTRATION_CAPTCHA。範例:
environment: WEBLATE_REGISTRATION_CAPTCHA: 0
- WEBLATE_REGISTRATION_ALLOW_BACKENDS¶
設定可用於通過
REGISTRATION_ALLOW_BACKENDS建立新帳號的身分驗證方法。範例:
environment: WEBLATE_REGISTRATION_OPEN: 0 WEBLATE_REGISTRATION_ALLOW_BACKENDS: azuread-oauth2,azuread-tenant-oauth2
- WEBLATE_REGISTRATION_REBIND¶
在 4.16 版被加入.
- WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS¶
在 5.16.1 版被加入.
設定
REGISTRATION_ALLOW_DISPOSABLE_EMAILS。範例:
environment: WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS: 1
- WEBLATE_PROJECT_WEB_RESTRICT_PRIVATE¶
在 5.17 版被加入.
設定
PROJECT_WEB_RESTRICT_PRIVATE。預設為啟用。
- WEBLATE_PROJECT_WEB_RESTRICT_ALLOWLIST¶
在 5.17 版被加入.
設定
PROJECT_WEB_RESTRICT_ALLOWLIST。預期值為以逗號分隔的受信任專案代稱清單。
- WEBLATE_WEBHOOK_RESTRICT_PRIVATE¶
在 5.17 版被加入.
預設為啟用。
- WEBLATE_WEBHOOK_PRIVATE_ALLOWLIST¶
在 5.17 版被加入.
預期值為以逗號分隔的受信任主機名稱或網域清單。
- WEBLATE_ALLOWED_ASSET_SIZE¶
在 2025.7 版被加入.
- WEBLATE_ASSET_RESTRICT_PRIVATE¶
在 2025.5 版被加入.
預設為啟用。
- WEBLATE_ASSET_PRIVATE_ALLOWLIST¶
在 2025.5 版被加入.
預期值為以逗號分隔的受信任主機名稱或網域清單。
- 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_NGINX_IPV6¶
在 5.17 版被加入.
控制捆綁的 NGINX 是否監聽 IPv6 地址。
支援的值有:
auto表示僅當容器執行時 IPv6 可用時才啟用 IPv6 監聽器。這是預設設定。on表示始終啟用 IPv6 監聽器。off表示停用 IPv6 監聽器。
範例:
environment: WEBLATE_NGINX_IPV6: auto
- 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_IP_PROXY_OFFSET¶
在 5.0.1 版被加入.
設定
IP_PROXY_OFFSET。
- WEBLATE_USE_X_FORWARDED_PORT¶
在 5.0.1 版被加入.
布林值,用於明確是否在選項中對 SERVER_PORT META 變數使用 X-Forwarded-Port 標頭。除非使用設定了此標頭的代理,否則您不應該啟用它。
備註
這是一個布林值設定(使用
"true"或者"false")。
- WEBLATE_SECURE_PROXY_SSL_HEADER¶
表示 HTTP 標頭和值組合的 tuple,用來指出要求是否安全。當 Weblate 位於終止 SSL、但未傳遞標準 HTTPS 標頭的反向 Proxy 後方時,需要設定此值。
範例:
environment: WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
- WEBLATE_REQUIRE_LOGIN¶
啟用
REQUIRE_LOGIN而在整個 Weblate 上強制認證。範例:
environment: WEBLATE_REQUIRE_LOGIN: 1
- WEBLATE_LEGAL_INTEGRATION¶
在 Docker 部署中啟用 法律模組 模組。該整合預設停用;不設定此變數或留空來停用它。
支援的值有:
tos-confirm以啟用法律模組並在社媒身分驗證期間和對已登入使用者強制確認服務條款。wllegal來啟用相同整合並額外從wllegal載入託管的法律文件範本。這些範本由 Weblate s.r.o. 運營的服務所使用,不用於一般用途。
要在 Docker 中提供自己的法律檔案,請覆蓋
/app/data/python/customize/templates/legal/documents中的範本,見 取代標誌與其它靜態檔案。變更此環境變數後,請重新建立 Docker 容器,例如使用 docker compose up -d。重新啟動既有容器不會套用已變更的環境值。
範例:
environment: WEBLATE_LEGAL_INTEGRATION: tos-confirm
也參考
- WEBLATE_LEGAL_DOCUMENT_CSS_CLASS¶
在啟用
WEBLATE_LEGAL_INTEGRATION的 Docker 部署中設定LEGAL_DOCUMENT_CSS_CLASS。Set this to the class targeted by your custom legal stylesheet. Set it to an empty string to render legal documents without a wrapper class.
範例:
environment: WEBLATE_LEGAL_DOCUMENT_CSS_CLASS: ""
- WEBLATE_LEGAL_HIDDEN_DOCUMENTS¶
在啟用
WEBLATE_LEGAL_INTEGRATION的 Docker 部署中設定LEGAL_HIDDEN_DOCUMENTS。提供以逗號分隔的法律文件頁面辨識碼清單。
範例:
environment: WEBLATE_LEGAL_HIDDEN_DOCUMENTS: contracts
- WEBLATE_PUBLIC_ENGAGE¶
啟用
PUBLIC_ENGAGE。
- WEBLATE_GOOGLE_ANALYTICS_ID¶
透過
GOOGLE_ANALYTICS_ID設定用於 Google Analytics 的 ID。
- WEBLATE_DEFAULT_PULL_MESSAGE¶
透過變更
DEFAULT_PULL_MESSAGE來設定使用 API 發起的拉取請求的預設標題和說明。
- WEBLATE_SIMPLIFY_LANGUAGES¶
設定語言簡化策略,請參閱
SIMPLIFY_LANGUAGES。
- WEBLATE_HIDE_SHARED_GLOSSARY_COMPONENTS¶
將詞彙表元件分享至其他專案時予以隱藏;請參閱
HIDE_SHARED_GLOSSARY_COMPONENTS。
- 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_DEFAULT_AUTOCLEAN_TM¶
- WEBLATE_COMMIT_PENDING_HOURS¶
為新元件的 變更後提交的經過時間 設定預設值,請參閱
COMMIT_PENDING_HOURS。
- 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¶
- WEBLATE_CSP_FORM_SRC¶
允許定製 Content-Security-Policy HTTP 標頭。
- WEBLATE_LICENSE_FILTER¶
設定
LICENSE_FILTER。
- WEBLATE_LICENSE_REQUIRED¶
設定
LICENSE_REQUIRED。
- WEBLATE_WEBSITE_REQUIRED¶
設定
WEBSITE_REQUIRED。
- WEBLATE_VERSION_DISPLAY¶
設定
VERSION_DISPLAY。
- 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 版被加入.
設定速率限制器。
提示
您可以為任何速率限制器的範圍設定設定。要做到這一點,請在 速率限制 中描述的任何設定中新增
WEBLATE_字首。
- WEBLATE_API_RATELIMIT_ANON¶
- WEBLATE_API_RATELIMIT_USER¶
在 4.11 版被加入.
設定 API 速率限制。預設值如下:匿名使用者
100/day,已驗證身分使用者5000/hour。也參考
- WEBLATE_ENABLE_HOOKS¶
在 4.13 版被加入.
設定
ENABLE_HOOKS。
- WEBLATE_ENABLE_AVATARS¶
在 4.6.1 版被加入.
設定
ENABLE_AVATARS。
- WEBLATE_AVATAR_URL_PREFIX¶
在 4.15 版被加入.
- WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH¶
在 4.9 版被加入.
- WEBLATE_SSH_EXTRA_ARGS¶
在 4.9 版被加入.
設定
SSH_EXTRA_ARGS。
- WEBLATE_BORG_EXTRA_ARGS¶
在 4.9 版被加入.
設定
BORG_EXTRA_ARGS,其為英文逗號所分隔的引數清單。範例:
environment: WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
- WEBLATE_ENABLE_SHARING¶
在 4.14.1 版被加入.
設定
ENABLE_SHARING。
- WEBLATE_SUPPORT_STATUS_CHECK¶
在 5.5 版被加入.
- WEBLATE_EXTRA_HTML_HEAD¶
在 4.15 版被加入.
設定
EXTRA_HTML_HEAD。
- WEBLATE_INTERNAL_BOT_EMAIL_TEMPLATE¶
在 2026.7.1 版被加入.
- WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE¶
在 4.15 版被加入.
- WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN¶
在 4.15 版被加入.
- WEBLATE_PRIVATE_COMMIT_NAME_TEMPLATE¶
在 5.16 版被加入.
- WEBLATE_PRIVATE_COMMIT_NAME_OPT_IN¶
在 5.16 版被加入.
- WEBLATE_UNUSED_ALERT_DAYS¶
在 4.17 版被加入.
- WEBLATE_REPORT_EXPIRY¶
在 2026.8 版被加入.
設定
REPORT_EXPIRY。
- WEBLATE_UPDATE_LANGUAGES¶
在 4.3.2 版被加入.
設定
UPDATE_LANGUAGES。
- WEBLATE_VCS_ALLOW_HOSTS¶
在 5.15 版被加入.
設定
VCS_ALLOW_HOSTS。
- WEBLATE_VCS_ALLOW_SCHEMES¶
在 5.15 版被加入.
- WEBLATE_VCS_RESTRICT_PRIVATE¶
在 5.17 版被加入.
- WEBLATE_VCS_CLONE_DEPTH¶
在 5.4 版被加入.
設定
VCS_CLONE_DEPTH。
- WEBLATE_VCS_API_DELAY¶
在 5.4 版被加入.
設定
VCS_API_DELAY。
- WEBLATE_VCS_API_TIMEOUT¶
在 5.15 版被加入.
設定
VCS_API_TIMEOUT。
- WEBLATE_CORS_ALLOWED_ORIGINS¶
在 4.16 版被加入.
允許來自給定來源的到 API 的 CORS 請求。
範例:
environment: WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
- WEBLATE_CORS_ALLOW_ALL_ORIGINS¶
在 5.6.1 版被加入: 允許來自所有來源的到 API 的 CORS 請求。
- WEBLATE_WEBSITE_ALERTS_ENABLED¶
在 5.17 版被加入.
- CLIENT_MAX_BODY_SIZE¶
在 4.16.3 版被加入.
設定內建 web 伺服器接受的最大內容大小。
environment: CLIENT_MAX_BODY_SIZE: 200m
提示
此變數刻意缺少
WEBLATE_字首,因它和 使用 Let’s Encrypt 自動產生 SSL 憑證 中所用的第三方容器共享。
- WEBLATE_TRANSLATION_UPLOAD_MAX_SIZE¶
設定
TRANSLATION_UPLOAD_MAX_SIZE。該值單位為位元組。
- WEBLATE_COMPONENT_ZIP_UPLOAD_MAX_SIZE¶
設定
COMPONENT_ZIP_UPLOAD_MAX_SIZE。該值單位為位元組。
- WEBLATE_PROJECT_BACKUP_UPLOAD_MAX_SIZE¶
設定
PROJECT_BACKUP_UPLOAD_MAX_SIZE。此值的單位為位元組。請確認
CLIENT_MAX_BODY_SIZE也足以容納上傳的備份檔案。
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_MEMBERS¶
在 2026.5 版被加入.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE¶
在 2026.5 版被加入.
設定
PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE。該值單位為位元組。
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE¶
在 2026.5 版被加入.
設定
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE。該值單位為位元組。
- WEBLATE_PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE¶
在 2026.5 版被加入.
設定
PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE。該值單位為位元組。
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO¶
在 2026.5 版被加入.
程式碼託管網站認證資訊¶
在 Docker 容器中,您可以分別使用不同變數設定程式碼託管認證資訊,也可以使用 Python 字典一次完成設定。下列範例適用於 GitHub 拉取請求,但只要適當變更變數名稱,也適用於所有 版本控制整合。
重要
所有環境變數名必須包含 WEBLATE_ 字首。例如,要設定 Weblate 憑證,使用 WEBLATE_GITHUB_USERNAME,而不是 GITHUB_USERNAME。不論是設定拉取請求還是其他任何 VCS 整合,這都適用。
GitHub 拉取請求的設定範例看上去像這樣:
WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com
將用作:
GITHUB_CREDENTIALS = {
"api.github.com": {
"username": "api-user",
"token": "api-token",
}
}
此外,也可以將 Python 字典作為一條字串提供:
WEBLATE_GITHUB_CREDENTIALS='{ "api.github.com": { "username": "api-user", "token": "api-token", } }'
或者到包含該 Python 字典的檔案的路徑:
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¶
透過變更
GITHUB_CREDENTIALS設定 GitHub 拉取請求。
GitHub App 會透過應用程式內的資訊清單流程註冊並儲存在資料庫中,因此沒有需要設定的 GitHub App 環境變數。請參閱 GitHub 通知。
- WEBLATE_GITLAB_USERNAME¶
- WEBLATE_GITLAB_TOKEN¶
- WEBLATE_GITLAB_HOST¶
- WEBLATE_GITLAB_CREDENTIALS¶
透過變更
GITLAB_CREDENTIALS設定 GitLab 合併請求。
- WEBLATE_GITEA_USERNAME¶
- WEBLATE_GITEA_TOKEN¶
- WEBLATE_GITEA_HOST¶
- WEBLATE_GITEA_CREDENTIALS¶
透過變更
GITEA_CREDENTIALS設定 Gitea 拉取請求。
- WEBLATE_PAGURE_USERNAME¶
- WEBLATE_PAGURE_TOKEN¶
- WEBLATE_PAGURE_HOST¶
- WEBLATE_PAGURE_CREDENTIALS¶
透過變更
PAGURE_CREDENTIALS設定 Pagure 合併請求。
- WEBLATE_BITBUCKETSERVER_USERNAME¶
- WEBLATE_BITBUCKETSERVER_TOKEN¶
- WEBLATE_BITBUCKETSERVER_HOST¶
- WEBLATE_BITBUCKETSERVER_CREDENTIALS¶
- WEBLATE_BITBUCKETCLOUD_USERNAME¶
- WEBLATE_BITBUCKETCLOUD_WORKSPACE¶
- WEBLATE_BITBUCKETCLOUD_TOKEN¶
- WEBLATE_BITBUCKETCLOUD_HOST¶
- WEBLATE_BITBUCKETCLOUD_CREDENTIALS¶
- WEBLATE_AZURE_DEVOPS_USERNAME¶
- WEBLATE_AZURE_DEVOPS_ORGANIZATION¶
- WEBLATE_AZURE_DEVOPS_TOKEN¶
- WEBLATE_AZURE_DEVOPS_HOST¶
- WEBLATE_AZURE_DEVOPS_CREDENTIALS¶
自動建議設定¶
在 4.13 版的變更: 自動建議服務現在在使用者介面進行設定,見 自動建議。
現有的環境變數在移轉到Weblate 4.13時被匯入,但改變它們不會有任何進一步的影響。
身分驗證設定¶
提示
除非透過 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¶
- 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
針對作用中的目錄的搜尋與綁定範例:
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¶
啟用 GitHub 身分驗證。
GitHub 企業版¶
- 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¶
啟用 GitHub EE 身分驗證。
Bitbucket¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_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。
Gitea¶
- WEBLATE_SOCIAL_AUTH_GITEA_API_URL¶
- WEBLATE_SOCIAL_AUTH_GITEA_KEY¶
- WEBLATE_SOCIAL_AUTH_GITEA_SECRET¶
啟用 Gitea 身分驗證。
Microsoft Entra ID¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET¶
啟用 Microsoft Entra ID 身分驗證,請參閱 Microsoft Entra ID。
支援 Tenant 的 Microsoft Entra ID¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_SECRET¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_TENANT_OAUTH2_TENANT_ID¶
啟用支援 Tenant 的 Microsoft Entra ID,請參閱 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¶
啟用 Keycloak 身分驗證,請參閱 Keycloak - Open Source Red Hat SSO。
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ID_KEY¶
在 5.17 版被加入.
設定 Keycloak 宣告中用作唯一使用者辨識碼的欄位。預設為
email。提示
當 Keycloak 設定為抽象第三方 IDP,需要設定第三方 IDP 網域的
WEBLATE_CSP_FORM_SRC。範例當 Keycloak 正傳遞身分驗證到 Microsoft 時。¶environment: WEBLATE_CSP_FORM_SRC: login.microsoftonline.com
Linux 供應商¶
您可以透過將後面的變數設定為任何值,使用 Linux 銷售商身分驗證服務來允許身分驗證。
- WEBLATE_SOCIAL_AUTH_FEDORA¶
- WEBLATE_SOCIAL_AUTH_OPENSUSE¶
- WEBLATE_SOCIAL_AUTH_OPENINFRA¶
- WEBLATE_SOCIAL_AUTH_UBUNTU¶
Slack¶
- WEBLATE_SOCIAL_AUTH_SLACK_KEY¶
OpenID 連結¶
在 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¶
設定通用 OpenID Connect 整合。
Fedora OpenID Connect¶
在 5.15 版被加入.
- WEBLATE_SOCIAL_AUTH_FEDORA_OIDC_KEY¶
SAML¶
在第一次啟動容器時自動產生自簽名的 SAML 金鑰。在您想要使用自己的金鑰的情況下,將憑證和私密金鑰放置在 /app/data/ssl/saml.crt 和 /app/data/ssl/saml.key 中。
- WEBLATE_SAML_IDP_ENTITY_ID¶
- WEBLATE_SAML_IDP_URL¶
- WEBLATE_SAML_IDP_X509CERT¶
- WEBLATE_SAML_IDP_IMAGE¶
- WEBLATE_SAML_SECURITY_CONFIG¶
在 2026.6 版被加入.
SAML security configuration as a JSON object, passed to
SOCIAL_AUTH_SAML_SECURITY_CONFIG. For example, to disable therequestedAuthnContext(needed for some identity providers such as Microsoft Entra ID with multi-factor authentication):environment: WEBLATE_SAML_SECURITY_CONFIG: '{"requestedAuthnContext": false}'
- 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¶
在 4.18 版被加入.
SAML 屬性對映。
其他身分驗證設定¶
PostgreSQL 資料庫設定¶
資料庫由 docker-compose.yml 建立,所以這些設定影響 Weblate 和 PostgreSQL 容器。
- POSTGRES_USER¶
PostgreSQL 使用者名稱。
- POSTGRES_DB¶
PostgreSQL 資料庫名稱。
- POSTGRES_HOST¶
PostgreSQL 伺服器主機名稱或 IP 位址。預設為
database。
- POSTGRES_PORT¶
PostgreSQL 伺服器連接埠。預設為無(使用預設值)。
- POSTGRES_SSL_MODE¶
設定 PostgreSQL 如何處理 SSL 連線到伺服器,可能的選項請參閱 SSL Mode Descriptions。
- POSTGRES_ALTER_ROLE¶
設定在資料庫移轉過程要改變的 PostgreSQL 角色名稱,請參閱 設定 Weblate 來使用 PostgreSQL。
預設為
POSTGRES_USER。
- POSTGRES_CONN_MAX_AGE¶
在 4.8.1 版被加入.
資料庫連線的壽命,以秒為單位的整數。使用0可以在每次請求結束時關閉資料庫連線。
在 5.1 版的變更: 預設行為是擁有無限制的永續性資料庫連線。
啟用連線永續性通常會導致更多的資料庫開放連線。請在啟用前調整您的資料庫設定。
設定範例:
environment: POSTGRES_CONN_MAX_AGE: 3600
- POSTGRES_DISABLE_SERVER_SIDE_CURSORS¶
在 4.9.1 版被加入.
停用資料庫中的伺服器端遊標。這在一些 pgbouncer 設定中是必要的。
設定範例:
environment: POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
- WEBLATE_DATABASES¶
在 5.1 版被加入.
設為 false 停用基礎資料庫連線設定的環境。使用 覆寫來自資料儲存區的設定 手動設定資料庫連線。
資料庫備份設定¶
也參考
- WEBLATE_DATABASE_BACKUP¶
使用
DATABASE_BACKUP設定每日資料庫傾印。預設為plain。
資料儲存伺服器設定¶
Weblate 容器要求使用 Valkey 或 Redis, 在 Docker 中執行 Weblate 時必須提供連線引數。
也參考
- REDIS_HOST¶
資料儲存伺服器主機名稱或 IP 位址。預設為
cache。
- REDIS_PORT¶
資料儲存伺服器連接埠。預設為
6379。
- REDIS_DB¶
資料儲存資料庫編號,預設為
1。
- REDIS_USER¶
在 5.13 版被加入: 資料儲存資料庫使用者,預設不使用。
- REDIS_TLS¶
啟用對資料儲存連線使用 SSL。
- REDIS_VERIFY_SSL¶
可用於為資料儲存連線停用 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_USE_SSL¶
與 SMTP 伺服器通訊時是否使用隱式 TLS(安全)連線。在大多數電子郵件檔案中,這種 TLS 連線類型稱為 SSL。通常在連接埠 465 上使用。如果遇到問題,請參閱明確 TLS 設定
WEBLATE_EMAIL_USE_TLS。在 4.11 版的變更: SSL/TLS 支援是基於
WEBLATE_EMAIL_PORT自動啟用。
- WEBLATE_EMAIL_USE_TLS¶
與 SMTP 伺服器通訊時是否使用 TLS(安全)連接。這用於明確 TLS 連線,通常在連接埠 587 或 25 上。如果您遇到掛起的連接,請參閱隱式 TLS 設定
WEBLATE_EMAIL_USE_SSL。在 4.11 版的變更: SSL/TLS 支援是基於
WEBLATE_EMAIL_PORT自動啟用。
- WEBLATE_EMAIL_BACKEND¶
將 Django 後端設定為用於傳送電子郵件。
- WEBLATE_AUTO_UPDATE¶
設定 Weblate 是否與應該如何更新儲存庫。
也參考
備註
這是布林值的設定(使用
"true"或"false")。
網站整合¶
- WEBLATE_GET_HELP_URL¶
設定
GET_HELP_URL。
- WEBLATE_STATUS_URL¶
設定
STATUS_URL。
- WEBLATE_PRIVACY_URL¶
設定
PRIVACY_URL。
- WEBLATE_PASSWORD_RESET_URL¶
收集錯誤報告與監測效能¶
建議從安裝中系統地收集錯誤,請參閱 收集錯誤報告與監測效能。
要啟用對 Rollbar 的支援,請進行以下設定:
- ROLLBAR_KEY¶
您的 Rollbar post server 存取權杖。
- ROLLBAR_ENVIRONMENT¶
您的 Rollbar 環境,預設為
production。
要啟用對 Sentry 的支援,請進行以下設定:
- SENTRY_DSN¶
您的 Sentry DSN,請參閱
SENTRY_DSN。
- SENTRY_ENVIRONMENT¶
您的 Sentry 環境(選用),預設為
WEBLATE_SITE_DOMAIN。
- SENTRY_MONITOR_BEAT_TASKS¶
是否用 Sentry 監控 Celery Beat 任務,預設值是
True.
- SENTRY_TRACES_SAMPLE_RATE¶
-
範例:
environment: SENTRY_TRACES_SAMPLE_RATE: 0.5
- SENTRY_PROFILES_SAMPLE_RATE¶
設定
SENTRY_PROFILES_SAMPLE_RATE。範例:
environment: SENTRY_PROFILES_SAMPLE_RATE: 0.5
- SENTRY_SEND_PII¶
設定
SENTRY_SEND_PII。
要啟用 Google 雲錯誤報告支援,請進行以下設定:
- GOOGLE_CLOUD_ERROR_REPORTING_ENABLED¶
啟用
GOOGLE_CLOUD_ERROR_REPORTING,預設為False。
- GOOGLE_CLOUD_ERROR_REPORTING_PROJECT¶
要回報錯誤的 Google Cloud 專案。如果省略,Google 用戶端會使用應用程式預設憑證來偵測專案。
- GOOGLE_CLOUD_ERROR_REPORTING_SERVICE¶
在 Google Cloud Error Reporting 中使用的服務名稱,預設為
weblate。
要啟用 OpenTelemetry 跟蹤支援,請進行以下設定:
- OPENTELEMETRY_ENABLED¶
啟用
OPENTELEMETRY_ENABLED,預設為False。
- OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT¶
設定
OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT。範例:
environment: OPENTELEMETRY_ENABLED: true OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT: https://collector.example.com/v1/traces OPENTELEMETRY_TRACES_SAMPLE_RATE: 0.1
- OPENTELEMETRY_EXPORTER_OTLP_HEADERS¶
設定
OPENTELEMETRY_EXPORTER_OTLP_HEADERS,其為英文逗號所分隔的name:value對映。
- OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTES¶
設定
OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTES,其為英文逗號所分隔的name:value對映。
- OPENTELEMETRY_SERVICE_NAME¶
- OPENTELEMETRY_TRACES_SAMPLE_RATE¶
在地化 CDN¶
- WEBLATE_LOCALIZE_CDN_URL¶
- WEBLATE_LOCALIZE_CDN_PATH¶
在 4.2.1 版被加入.
適用於 CDN 附加元件的設定,包含 JavaScript 在地化 CDN 與 翻譯檔案 CDN。
WEBLATE_LOCALIZE_CDN_PATH是容器內的路徑。它應該儲存在持久儲存區上而不是臨時儲存區中。一種可能性是儲存在 Weblate 資料目錄中:
environment: WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/ WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn
備註
您負責設定Weblate產生的檔案的服務,它只在設定的位置儲存檔案。安全提供指南見 在地化 CDN。
變更啟用的應用、檢查、格式、附加元件、機器翻譯或自動修復¶
可以透過後面的變數來調整允許的檢查、檔案格式、附加元件、機器翻譯或自動修復的內建設定:
- WEBLATE_ADD_APPS¶
- WEBLATE_REMOVE_APPS¶
- WEBLATE_ADD_CHECK¶
- WEBLATE_REMOVE_CHECK¶
- WEBLATE_ADD_AUTOFIX¶
- WEBLATE_REMOVE_AUTOFIX¶
- WEBLATE_ADD_FORMATS¶
- WEBLATE_REMOVE_FORMATS¶
- WEBLATE_ADD_ADDONS¶
- WEBLATE_REMOVE_ADDONS¶
- WEBLATE_ADD_MACHINERY¶
在 5.6.1 版被加入.
- WEBLATE_REMOVE_MACHINERY¶
在 5.6.1 版被加入.
範例:
environment:
WEBLATE_REMOVE_AUTOFIX: weblate.trans.autofixes.whitespace.SameBookendingWhitespace
WEBLATE_REMOVE_FORMATS: weblate.formats.ttkit.PoFormat
WEBLATE_ADD_ADDONS: customize.addons.MyAddon,customize.addons.OtherAddon
容器設定¶
- WEBLATE_WORKERS¶
在 4.6.1 版被加入.
在容器中執行的工人行程基數。未設定時,基於可用的CPU核心數,在容器啟動時自動確定。
其用於決定
CELERY_MAIN_OPTIONS、CELERY_NOTIFY_OPTIONS、CELERY_MEMORY_OPTIONS、CELERY_TRANSLATE_OPTIONS、CELERY_BACKUP_OPTIONS、CELERY_BEAT_OPTIONS、WEB_WORKERS及WEB_BLOCKING_THREADS。您可以使用這些設定進行微調。
- CELERY_MAIN_OPTIONS¶
- CELERY_NOTIFY_OPTIONS¶
- CELERY_MEMORY_OPTIONS¶
- CELERY_TRANSLATE_OPTIONS¶
- CELERY_BACKUP_OPTIONS¶
- CELERY_BEAT_OPTIONS¶
這些變數可讓您調整 Celery worker 選項。您可以用它們調整並行處理數(
--concurrency 16)、預先擷取(--prefetch-multiplier 4),或改用其他 pool 實作(--pool=gevent)。命令列選項的優先順序高於對應的 Celery 設定,因此每一類 worker 都可使用不同的預先擷取倍數。並行 workers 的數量預設基於
WEBLATE_WORKERS。範例:
environment: CELERY_MAIN_OPTIONS: --concurrency 16 --prefetch-multiplier 1
- CELERY_SINGLE_PROCESS¶
在 5.7.1 版被加入: 此變數可以設定為
1,以便只執行一個 Celery 處理程序。這會減少記憶體使用,但可能會影響 Weblate 效能。environment: CELERY_SINGLE_PROCESS: 1
也參考
- WEB_WORKERS¶
在 5.13 版的變更:
WEB_WORKERS設定 granian 要使用的 worker 處理程序數量。
- WEB_BLOCKING_THREADS¶
設定每個 granian worker 可使用的阻塞式 WSGI 執行緒數量。預設值為
WEBLATE_WORKERS的 2 倍。同時處理的 WSGI 請求數上限約為
WEB_WORKERS乘以WEB_BLOCKING_THREADS。每個執行緒都可能各自占用一個資料庫連線,因此請確保計算後的總數不超過資料庫連線上限。範例:
environment: WEB_WORKERS: 2 WEB_BLOCKING_THREADS: 8
- WEBLATE_SERVICE¶
定義應該在容器內執行哪些服務。使用對象 水平擴展。
定義了以下服務:
celery-beatCelery 工作排程器,應該僅執行一個執行個體。該容器也負責資料庫結構移轉,並且應該早於其他容器啟動。
celery-backup用於備份的 Celery worker ,應該僅執行一個執行個體。
celery-celery通用 Celery worker。
celery-memory翻譯記憶 Celery worker。
celery-notify通知 Celery worker。
celery-translate自動翻譯 Celery worker。
web網路伺服器。
也參考
- WEBLATE_ANUBIS_URL¶
在 5.11.4 版被加入.
用於處理子要求身分驗證的 Anubis 伺服器 URL。這可透過工作量證明篩選傳入的 HTTP 要求,阻止 AI 爬蟲。您必須設定 Anubis for Subrequest Authentication,這項功能才能運作。
Docker 容器儲存區¶
Weblate 容器匯出了兩個磁碟區(data 和 cache)。
備註
其他服務容器(如 PostgreSQL 或 Valkey)也有它們的資料磁碟區,需要保持 Weblate 永續性。
PostgreSQL 容器在 /var/lib/postgresql 磁碟區中儲存資料庫,Valkey 容器在 /data 磁碟區中儲存資料庫。Valkey 容器預設不儲存資料,需要額外設定來啟用永續性。
以 Weblate 提供的範例作為設定的基礎或者檢視文件取得更多資訊。
data 磁碟區作為 /app/data 裝載並被用來儲存複製的儲存庫等 Weblate 持久資料或者定製 Weblate 安裝。DATA_DIR 更詳細描述了儲存內容。
data 也儲存像是 覆寫來自資料儲存區的設定 、 取代標誌與其它靜態檔案 或 自訂程式碼 之類的 Weblate 自訂設定。
Docker 磁碟區在主機系統上的位置取決於您的 Docker 設定,但通常儲存在 /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ 中。(該路徑由您的 docker-compose 目錄的名稱、容器和磁碟區的名稱組成)。
cache 磁碟區被掛載為 /app/cache,用於儲存靜態檔案和 CACHE_DIR。它的內容在容器啟動時被重新建立,磁碟區可以使用短暫的檔案系統(如 tmpfs)掛載,但掛載必須允許執行,因為 Weblate 在那裡儲存產生的助手檔案。
在 Docker Compose 中將 /app/cache 明確掛載為 tmpfs 時,請啟用執行功能:
tmpfs:
- /app/cache:exec
同時設定擁有權選項時,請保留 exec 選項:
tmpfs:
- /app/cache:exec,uid=1000,gid=1000
當手動建立 volumes 時,請在容器中指定的資料夾擁有者權限設定為 UID 1000。
Weblate 容器也可以搭配唯讀 root 檔案系統執行。在此情況下,應該掛載兩個額外的 tmpfs 儲存區:/tmp 與 /run。
唯讀 root 檔案系統¶
在 4.18 版被加入.
執行唯讀根檔案系統的容器時,需要兩個額外的 tmpfs 磁碟區 - /tmp 和 /run。
環境變數以外的設定¶
Docker 環境變數 旨在公開大部分與 Weblate 安裝相關的 設定。
如果您發現沒有作為環境變數公開的設定,並且您認為它應該公開,請隨時 要求在未來版本的 Weblate 中公開它。
如果您需要修改未公開為 Docker 環境變數的設定,您仍然可以這樣做,要麼 來自資料磁碟區,要麼 擴充套件 Docker 映像。
也參考
覆寫來自資料儲存區的設定¶
您可以在 /app/data/settings-override.py 建立一個檔案,即在 資料磁碟區 的根目錄,以擴充套件或覆蓋透過環境變數定義的設定。
透過擴充套件 Docker 映像覆蓋設定¶
要在 Docker 映像層級而不是從資料磁碟區覆蓋設定:
將一個模組新增到您的包中,該模組從
weblate.settings_docker匯入所有設定。例如,在 建立 Python 模組,
weblate_customization/weblate_customization/settings.py定義的範例包結構中,您可以使用以下初始程式碼建立一個檔案:from weblate.settings_docker import *
建立一個繼承自官方 Weblate Docker 映像的自訂
Dockerfile,然後安裝您的包並將DJANGO_SETTINGS_MODULE環境變數指向您的設定模組: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
不要使用官方的 Weblate Docker 映像,而是從這個
Dockerfile檔案建置一個自訂映像。使用
docker-compose.override.yml則 無法乾淨地 做到這一點。您 可以 將build: .新增到該檔案中的weblate節點,但隨後您的自訂映像將在系統中被打上weblate/weblate的標籤,這可能會出問題。因此,比起原封不動直接套用來自 官方儲存庫 的
docker-compose.yml,並透過docker-compose.override.yml進行擴充套件,您或許想要複製一份docker-compose.yml檔案對其進行編輯,然後藉助build: .用編輯後的檔案替換image: weblate/weblate.有關使用
docker-compose時從原始碼建置映像的詳情請見 Compose file build reference.擴充您的自訂設定模組以定義或重新定義設定。
您可以定義上方 import 語句之前或之後的設定,以確定哪些設定優先。import 語句之前定義的設定可以被環境變數和資料磁碟區中定義的設定覆蓋所覆蓋。不能覆蓋 import 語句後定義的設定。
您也可以更進一步。例如,您可以重現一些
weblate.docker_settings所做的事,如將設定暴露為環境變數,或允許在資料磁碟區中覆蓋來自 Python 檔案的設定。
取代標誌與其它靜態檔案¶
Weblate 附帶的靜態檔案可以通過放置到 /app/data/python/customize/static 中來覆寫(請參閱 Docker 容器儲存區)。例如,建立 /app/data/python/customize/static/favicon.ico 將替換 favicon。
提示
在容器啟動時,這些檔案被複製到相應的位置,因此需要在變更儲存區的內容後重新啟動 Weblate。
This approach can be also used to override Weblate templates. For example, custom 法律模組 documents and styles can be provided as described in Customizing legal documents and styles.
或者,您也可以包括自己的模組(請參閱 自訂 Weblate),並將其作為單獨的捲新增到 Docker 容器中,例如:
weblate:
volumes:
- weblate-data:/app/data
- ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
environment:
WEBLATE_ADD_APPS: weblate_customization
自訂程式碼¶
備註
不同版本的 Weblate 內部 API 可能差異巨大,並不穩定。請在每次升級時稽核與 Weblate 內部 API 互動的自訂程式碼。
您可以將額外的 Python 程式碼放進 /app/data/python/customize(見:Docker 容器儲存區)。它已作為 Weblate 內的一個 Django 程式被安裝(如上所述,這是用來自訂範本和靜態檔案)。
這可被用來放置任何程式碼(如 撰寫自訂檢查)或新增自訂維護任務到 Celery 任務計劃程式。
/app/data/python/customize/tasks.py.¶"""Custom scheduled task."""
# ruff: ignore[suspicious-subprocess-import]
import subprocess
from celery.schedules import crontab
from weblate.utils.celery import app
@app.task
def custom_task() -> None:
"""Execute custom task code."""
# ruff: ignore[start-process-with-partial-path]
subprocess.run(["sleep", "1"], check=True)
@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"
)
整合第三方容器¶
可以用附加容器擴充套件 Weblate Docker 設定來提供補充性服務,例如機器翻譯、拼寫檢查或其他增強翻譯工作流的工具。這些服務可以整合進 Docker Compose 設定中,和 Weblate 一起工作。
新增第三方容器時,考慮下列因素:
網路連線:將容器放在相同的 Docker 網路上確保不同容器能彼此通訊
資料永續性:對需要留存資料的服務使用磁碟區
安全:設定恰當的存取控制,避免暴露不必要的埠
LibreTranslate Docker 容器整合¶
LibreTranslate 是可以自託管的自由開源的機器翻譯服務。將它與 Weblate 整合提供不依賴外部服務的離線機器翻譯能力。
您可以把 LibreTranslate 服務加到 Weblate 部署中,方法是在 docker-compose.override.yml 檔案中包含它。因它執行在 Docker 網路內部,所以只有 Weblate 能存取,不會暴露在公網上。
使用 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:
對於 GPU 加速的翻譯(如果您有 NVIDIA GPU 可用):
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:
用 docker compose down && docker compose up -d 啟動服務後,在 Weblate 中設定 LibreTranslate:
存取 Weblate 管理員介面
導覽至 機器翻譯 → 自動建議
新增新的 LibreTranslate 服務的途徑:
- 服務:
LibreTranslate
- API URL:
http://libretranslate:5000- API 金鑰:
留空
LibreTranslate 現在於 Weblate 中可被設定及用於機器翻譯。
備註
LibreTranslate 服務執行沒有 web 使用者介面(
--disable-web-ui),只能透過 API 在 Docker 網路內部存取。容器啟動時,模型會自動更新。(
LT_UPDATE_MODELS: true)出於最優效能和資料安全目的用 Docker 磁碟區留存資料。
健康檢查確保 Docker 引擎正確觀測服務狀態。
對 GPU 加速,使用 CUDA 映像並保證系統有 NVIDIA Docker 支援。為了能使用 GPU,這個容器以特權使用者身分執行。
無外部連接埠被公開,確保設定預設為安全。
Anubis Docker 容器整合¶
Anubis 是個網路 AI 防火牆工具,用於封鎖 AI 爬蟲與其他會干擾伺服器的流量。公開 Weblate 安裝環境通常需要它以避免因大量爬取而造成過度負載。
可用 Docker Compose 部署 Anubis:
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:
備註
以上設定中的 anubis-data 磁碟區預計含有按您的需要設定了 bot 策略的 botPolicies.yaml 檔案。
您至少需要按 https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth 所述調整狀態碼。
同樣建議按 https://anubis.techaro.lol/docs/admin/policies/#storage-backends 所述設定持久化儲存後端。
接著您可以用下列指令在 Weblate 中開啟 Anubis:
environment:
WEBLATE_ANUBIS_URL: http://anubis:8923
設定 PostgreSQL 伺服器¶
PostgreSQL容器使用預設的PostgreSQL設定,它不會有效地利用您的CPU核心或記憶體。建議自訂設定以提高效能。
設定可以按照 https://hub.docker.com/_/postgres 資料庫設定 中的描述來調整。相符您的環境的設定可以使用 https://pgtune.leopard.in.ua/ 。
容器內部¶
容器使用 supervisor 來啟動單一服務。遇到 水平擴展,它只在一個容器中啟動單一服務。
要確認服務狀態請使用:
docker compose exec --user weblate weblate supervisorctl status
每個 Celery 佇列有單獨服務(詳見 使用 Celery 的背景工作)。您可以停止相應的 工作程序來停止處理某些任務:
docker compose exec --user weblate weblate supervisorctl stop celery-translate