Memasang menggunakan Docker¶
Dengan penyebaran Weblate yang terdokerisasi, Anda dapat langsung menjalankan instansi Weblate pribadi Anda dalam hitungan detik. Semua dependensi Weblate sudah disertakan. PostgreSQL diatur sebagai basis data bawaan dan Valkey sebagai backend simpanan.
Persyaratan perangkat keras¶
Weblate seharusnya dapat berjalan pada perangkat keras apa pun saat ini tanpa masalah, berikut ini adalah konfigurasi minimal yang diperlukan untuk menjalankan Weblate pada hos tunggal (Weblate, basis data, dan server web):
RAM 3 GB
2 inti CPU
Ruang penyimpanan 1 GB
Catatan
Persyaratan sebenarnya untuk pemasangan Weblate Anda sangat bervariasi berdasarkan ukuran terjemahan yang dikelola di dalamnya.
Penggunaan memori¶
Semakin besar memori, semakin baik - memori tersebut digunakan untuk penyimpanan di semua tingkatan (sistem berkas, basis data, dan Weblate). Untuk ratusan komponen terjemahan, RAM minimal 4 GB direkomendasikan.
Petunjuk
Untuk sistem dengan memori lebih sedikit dari yang direkomendasikan, Pengaturan Celery proses tunggal direkomendasikan.
Penggunaan CPU¶
Banyak pengguna bersamaan meningkatkan jumlah inti CPU yang diperlukan.
Penggunaan penyimpanan¶
Penggunaan penyimpanan basis data pada umumnya adalah sekitar 300 MB per 1 juta kata yang dihos.
Ruang penyimpanan yang dibutuhkan untuk repositori kloning bervariasi, tetapi Weblate mencoba menjaga ukurannya tetap minimal dengan melakukan kloning dangkal.
Simpul¶
Untuk situs berukuran kecil dan menengah (jutaan kata yang dihos), semua komponen Weblate (lihat Ikhtisar arsitektur) dapat dijalankan pada satu simpul.
Saat jumlah kata yang dihos mencapai ratusan juta, sebaiknya miliki simpul khusus untuk basis data (lihat Pengaturan basis data untuk Weblate).
Pemasangan¶
Petunjuk
Contoh berikut mengasumsikan Anda memiliki lingkungan Docker yang berfungsi, dengan docker-compose-plugin terpasang. Silakan periksa dokumentasi Docker untuk petunjuk.
Ini akan membuat server penyebaran Weblate melalui HTTP, jadi Anda harus menempatkannya di belakang proksi terminasi HTTPS. Anda juga dapat menyebarkan dengan proksi HTTPS, lihat Sertifikat SSL otomatis menggunakan Let’s Encrypt. Untuk pengaturan yang lebih besar, silakan lihat Menskalakan secara horizontal.
Kloning repo weblate-docker:
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker cd weblate-docker
Catatan
The Docker Compose files are example deployment configurations. Operators typically customize them for their own deployment and maintain those local changes. Weblate application updates are delivered through Docker image tags; there is no release-bound update path for customized Compose files.
Buat berkas
docker-compose.override.ymldengan pengaturan Anda. Lihat Variabel lingkungan Docker untuk daftar lengkap variabel lingkungan.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
Catatan
Jika
WEBLATE_ADMIN_PASSWORDtidak diatur, pengguna admin dibuat dengan kata sandi acak yang ditampilkan saat pertama kali dinyalakan.Contoh yang diberikan membuat Weblate mendengarkan pada port 80, sunting pemetaan port dalam berkas
docker-compose.override.ymluntuk mengubahnya.Mulai kontainer Weblate:
docker compose up
Nikmati penerapan Weblate Anda, yang dapat diakses pada port 80 kontainer weblate.
Lihat juga
Memilih registri gambar Docker¶
Kontainer Weblate dipublikasikan ke registri berikut:
Docker Hub, lihat https://hub.docker.com/r/weblate/weblate
Registri Paket GitHub, lihat https://github.com/WeblateOrg/docker/pkgs/container/weblate
Catatan
Semua contoh saat ini mengambil gambar dari Docker Hub, harap sesuaikan konfigurasi untuk menggunakan registri yang berbeda.
Memilih tag gambar Docker¶
Silakan pilih tag yang sesuai dengan lingkungan dan harapan Anda:
Nama tag |
Deskripsi |
Kasus penggunaan |
|---|---|---|
|
Rilis stabil Weblate, cocok dengan rilis terbaru yang diberi tag |
Pembaruan bergulir dalam lingkungan produksi |
|
Rilis stabil Weblate |
Rolling updates within a calendar year in a production environment |
|
Rilis stabil Weblate |
Rolling updates within a monthly release in a production environment |
|
Rilis stabil Weblate |
Penyebaran yang didefinisikan dengan baik dalam lingkungan produksi |
|
Rilis stabil Weblate dengan perubahan pengembangan pada kontainer Docker (misalnya dependensi yang diperbarui) |
Pembaruan bergulir dalam lingkungan bertahap |
|
Rilis stabil Weblate dengan perubahan pengembangan pada kontainer Docker (misalnya dependensi yang diperbarui) |
Penyebaran yang didefinisikan dengan baik dalam lingkungan bertahap |
|
Versi pengembangan Weblate dari Git |
Rolling updates to test upcoming Weblate features |
|
Versi pengembangan Weblate dari Git |
Penyebaran yang didefinisikan dengan baik untuk menguji fitur Weblate yang akan datang |
Setiap gambar diuji oleh CI kami sebelum dipublikasikan, jadi bahkan versi bleeding pun seharusnya cukup aman untuk digunakan.
Daftar lengkap tag yang dipublikasikan dapat ditemukan di Paket GitHub
Kontainer Docker dengan dukungan HTTPS¶
Silakan lihat Pemasangan untuk petunjuk penerapan umum, bagian ini hanya menyebutkan perbedaan dibandingkan dengannya.
Proksi penghentian SSL¶
SSL dapat dihentikan di luar kontainer Weblate. Agar berfungsi dengan baik, beberapa kepala perlu diteruskan ke kontainer agar itu mengetahui lingkungannya yang sebenarnya. Rincian lebih lanjutnya, kepala ini dijelaskan di Berjalan di belakang proksi terbalik.
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
Menggunakan sertifikat SSL sendiri¶
Jika Anda memiliki sertifikat SSL sendiri yang ingin digunakan, cukup tempatkan berkas ke dalam volume data Weblate (lihat Volume kontainer Docker):
ssl/fullchain.pemyang berisi sertifikat termasuk sertifikat CA yang diperlukanssl/privkey.pemyang berisi kunci privat
Kedua berkas ini harus dimiliki oleh pengguna yang sama dengan pengguna yang memulai kontainer docker dan memiliki mask berkas yang diatur ke 600 (hanya dapat dibaca dan ditulis oleh pengguna pemiliknya).
Selain itu, kontainer Weblate sekarang akan menerima sambungan SSL pada port 4443, Anda ingin menyertakan penerusan port untuk HTTPS dalam penimpaan docker compose:
version: '3'
services:
weblate:
ports:
- 80:8080
- 443:4443
Jika Anda sudah menghosting situs lain di server yang sama, kemungkinan port 80 dan 443 digunakan oleh proksi terbalik, seperti NGINX. Untuk meneruskan sambungan HTTPS dari NGINX ke kontainer Docker, Anda dapat menggunakan konfigurasi berikut:
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>;
}
}
Ganti <SITE_URL>, <SITE> dan <EXPOSED_DOCKER_PORT> dengan nilai aktual dari lingkungan Anda.
Sertifikat SSL otomatis menggunakan Let’s Encrypt¶
Jika Anda ingin menggunakan sertifikat SSL yang dihasilkan secara otomatis oleh Let's Encrypt pada instalasi publik, Anda perlu menambahkan proksi HTTPS terbalik. Kontainer Docker tambahan, https-portal, akan digunakan untuk itu. Ini digunakan dalam berkas docker-compose-https.yml. Kemudian, buat berkas docker-compose-https.override.yml dengan pengaturan Anda:
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'
Jika memanggil docker compose Anda perlu meneruskan kedua berkas ke sana, lalu lakukan:
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
Meningkatkan kontainer Docker¶
Biasanya merupakan ide yang baik untuk hanya memperbarui kontainer Weblate dan mempertahankan kontainer PostgreSQL pada versi yang Anda miliki, karena peningkatan PostgreSQL cukup menyulitkan dan dalam kebanyakan kasus tidak membawa banyak manfaat.
Anda dapat melakukan ini dengan tetap menggunakan docker-compose yang ada dan cukup tarik gambar terbaru lalu mulai ulang:
# 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
Basis data Weblate seharusnya otomatis termigrasi saat pertama kali dijalankan, dan tidak diperlukan tindakan manual tambahan.
Catatan
Direct upgrades are only supported for releases from the current or previous calendar year. If you need to upgrade from an older release, upgrade first to an intermediate version listed in Petunjuk spesifik versi.
If you use the example Compose files without local changes, you can also
review updates in the docker-compose repository, though this is not needed
for most Weblate upgrades. Customized Compose files need to be maintained as
part of your deployment. See Meningkatkan kontainer PostgreSQL for upgrading the
PostgreSQL server.
Meningkatkan kontainer PostgreSQL¶
Catatan
PostgreSQL 18 changed the default data directory inside the container. A
common older setup mounted the database volume at
/var/lib/postgresql/data, while PostgreSQL 18 now uses
/var/lib/postgresql by default.
If you are upgrading from an older version, either update the mount target
in your Docker configuration to the new path, or keep the old mount target
and set PGDATA accordingly.
Leaving the old mount target unchanged without setting PGDATA can cause
PostgreSQL to write its data outside the persisted volume.
See PGDATA documentation for more information.
Kontainer PostgreSQL tidak mendukung peningkatan otomatis antar versi, Anda perlu melakukan peningkatan secara manual. Langkah berikut menunjukkan salah satu opsi peningkatan.
Hentikan Weblate container:
docker compose stop weblate cache
Cadangkan basis data:
docker compose exec database pg_dumpall --clean --if-exists --username weblate > backup.sql
Hentikan kontainer basis data:
docker compose stop database
Hapus volume PostgreSQL:
docker compose rm -v database docker volume remove weblate-docker_postgres-data
Petunjuk
Nama volume berisi nama proyek Docker Compose, yang secara bawaan adalah nama direktori
weblate-dockerdalam dokumentasi ini.Sesuaikan
docker-compose.ymluntuk menggunakan versi PostgreSQL baru.Mulai kontainer basis data:
docker compose up -d database
Pulihkan basis data dari cadangan:
cat backup.sql | docker compose exec -T database psql --username weblate --dbname weblate
Petunjuk
Silakan periksa apakah nama basis data cocok dengan
POSTGRES_DB.(Opsional) Perbarui kata sandi untuk pengguna Weblate. Ini mungkin diperlukan saat bermigrasikan ke PostgreSQL 14 atau 15 karena cara penyimpanan kata sandi telah diubah:
docker compose exec -T database psql --username weblate --dbname weblate -c "ALTER USER weblate WITH PASSWORD 'weblate'"
Petunjuk
Silakan periksa apakah nama basis data cocok dengan
POSTGRES_DB.Mulai semua kontainer yang tersisa:
docker compose up -d
Masuk admin¶
Setelah pengaturan kontainer, Anda dapat masuk sebagai pengguna admin dengan kata sandi yang diberikan di WEBLATE_ADMIN_PASSWORD, atau kata sandi acak yang dibuat saat pertama kali memulai jika tidak diatur.
Untuk mengatur ulang kata sandi admin, mulai ulang kontainer dengan WEBLATE_ADMIN_PASSWORD yang diatur ke kata sandi baru.
Jumlah proses dan konsumsi memori¶
Jumlah proses pekerja untuk WSGI dan Celery ditentukan secara otomatis berdasarkan jumlah CPU. Hal ini berfungsi dengan baik untuk sebagian besar mesin virtual cloud karena biasanya memiliki CPU yang sedikit dan memori yang memadai.
Jika Anda memiliki banyak inti CPU dan mengalami isu memori, coba kurangi jumlah worker:
environment:
WEBLATE_WORKERS: 2
Anda juga dapat menyempurnakan kategori pekerja individual:
environment:
WEB_WORKERS: 4
CELERY_MAIN_OPTIONS: --concurrency 2
CELERY_NOTIFY_OPTIONS: --concurrency 1
CELERY_TRANSLATE_OPTIONS: --concurrency 1
Penggunaan memori dapat dikurangi lebih lanjut dengan hanya menjalankan satu proses Celery:
environment:
CELERY_SINGLE_PROCESS: 1
Menskalakan secara horizontal¶
Added in version 4.6.
Anda dapat menjalankan beberapa kontainer Weblate untuk menskalakan layanan secara horizontal. Volume /app/data harus digunakan bersama oleh semua kontainer. Disarankan untuk menggunakan sistem berkas klaster seperti GlusterFS untuk ini. Volume /app/cache harus terpisah untuk setiap kontainer.
Setiap kontainer Weblate memiliki peran yang ditentukan menggunakan variabel lingkungan WEBLATE_SERVICE. Harap ikuti dokumentasi dengan saksama karena beberapa layanan hanya boleh dijalankan sekali dalam klaster, dan urutan layanan juga penting.
Anda dapat menemukan contoh pengaturan di repo docker-compose sebagai docker-compose-split.yml.
Variabel lingkungan Docker¶
Banyak Konfigurasi Weblate yang dapat diatur dalam kontainer Docker menggunakan variabel lingkungan yang dijelaskan di bawah ini.
Jika Anda perlu menentukan pengaturan yang tidak diekspos melalui variabel lingkungan Docker, lihat Konfigurasi di luar variabel lingkungan.
Rahasia yang melewati¶
Added in version 5.0.
Kontainer Weblate mendukung penerusan rahasia sebagai berkas. Untuk memanfaatkannya, tambahkan sufiks _FILE ke variabel lingkungan dan teruskan berkas rahasia melalui Docker.
Terkait docker-compose.yml mungkin terlihat seperti:
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
Lihat juga
Pengaturan umum¶
- WEBLATE_DEBUG¶
Mengkonfigurasikan mode awakutu Django menggunakan
DEBUG.Contoh:
environment: WEBLATE_DEBUG: 1
Lihat juga
- WEBLATE_LOGLEVEL¶
Mengkonfigurasikan verbositas pencatatan. Atur ini ke
DEBUGuntuk mendapatkan catatan yang lebih rinci.Bawaannya adalah
INFOketikaWEBLATE_DEBUGdimatikan,DEBUGdigunakan ketika mode awakutu dinyalakan.Untuk pencatatan yang lebih senyap gunakan
ERRORatauWARNING.
- WEBLATE_LOGLEVEL_DATABASE¶
Mengkonfigurasikan pencatatan verbositas kueri basis data.
- WEBLATE_LOG_GELF_HOST¶
Added in version 5.9.
Mengonfigurasi pencatatan jarak jauh menggunakan sambungan TCP GELF. Dapat digunakan untuk integrasi dengan Graylog.
- WEBLATE_LOG_GELF_PORT¶
Added in version 5.9.
Gunakan port kustom untuk
WEBLATE_LOG_GELF_HOST, bawaannya adalah 12201.
- WEBLATE_SITE_TITLE¶
Mengubah judul situs yang ditampilkan di kepala semua halaman.
- WEBLATE_SITE_DOMAIN¶
Mengkonfigurasikan domain situs. Parameter ini diperlukan.
Sertakan port jika menggunakan port non-standar.
Contoh:
environment: WEBLATE_SITE_DOMAIN: example.com:8080
Lihat juga
- WEBLATE_ADMIN_NAME¶
- WEBLATE_ADMIN_EMAIL¶
Mengkonfigurasikan nama dan surel admin situs. Ini digunakan untuk pengaturan
ADMINSdan pembuatan pengguna admin (lihatWEBLATE_ADMIN_PASSWORDuntuk informasi lebih lanjut).Contoh:
environment: WEBLATE_ADMIN_NAME: Weblate admin WEBLATE_ADMIN_EMAIL: noreply@example.com
Lihat juga
- WEBLATE_ADMIN_PASSWORD¶
Mengatur kata sandi untuk pengguna admin.
Jika tidak diatur dan pengguna admin tidak ada, maka akan dibuat dengan kata sandi acak yang ditampilkan saat kontainer pertama kali dinyalakan.
Jika tidak diatur dan pengguna admin ada, tidak ada tindakan yang dilakukan.
Jika diatur, pengguna admin akan disesuaikan pada setiap permulaan kontainer agar cocok dengan
WEBLATE_ADMIN_PASSWORD,WEBLATE_ADMIN_NAME, danWEBLATE_ADMIN_EMAIL.
Peringatan
Menyimpan kata sandi dalam berkas konfigurasi mungkin berisiko bagi keamanan. Pertimbangkan untuk menggunakan variabel ini hanya untuk pengaturan awal (atau biarkan Weblate menghasilkan kata sandi acak saat pertama kali dijalankan) atau untuk pemulihan kata sandi.
- WEBLATE_ADMIN_NOTIFY_ERROR¶
Whether to send e-mail to admins upon server error. Turned on by default.
Anda mungkin ingin menggunakan pengumpulan galat lain seperti Sentry atau Rollbar dan matikan ini.
Lihat juga
- WEBLATE_SERVER_EMAIL¶
Alamat surel tempat pesan galat dikirim.
Lihat juga
- WEBLATE_DEFAULT_FROM_EMAIL¶
Mengkonfigurasikan alamat untuk surel keluar.
- WEBLATE_ADMINS_CONTACT¶
Mengkonfigurasikan
ADMINS_CONTACT.
- WEBLATE_CONTACT_FORM¶
Mengkonfigurasikan perilaku formulir kontak, lihat
CONTACT_FORM.
- WEBLATE_ALLOWED_HOSTS¶
Mengkonfigurasikan nama hos HTTP yang diizinkan menggunakan
ALLOWED_HOSTS.Bawaannya adalah
*yang memperbolehkan semua nama hos.Contoh:
environment: WEBLATE_ALLOWED_HOSTS: weblate.example.com,example.com
- WEBLATE_REGISTRATION_OPEN¶
Mengonfigurasi apakah pendaftaran dibuka dengan mengubah
REGISTRATION_OPEN.Contoh:
environment: WEBLATE_REGISTRATION_OPEN: 0
- WEBLATE_REGISTRATION_CAPTCHA¶
Added in version 5.10.
Mengkonfigurasikan apakah captcha digunakan untuk pendaftaran dan tindakan tidak terautentikasikan lainnya, lihat
REGISTRATION_CAPTCHA.Contoh:
environment: WEBLATE_REGISTRATION_CAPTCHA: 0
- WEBLATE_REGISTRATION_ALLOW_BACKENDS¶
Konfigurasikan metode autentikasi mana yang dapat digunakan untuk membuat akun baru melalui
REGISTRATION_ALLOW_BACKENDS.Contoh:
environment: WEBLATE_REGISTRATION_OPEN: 0 WEBLATE_REGISTRATION_ALLOW_BACKENDS: azuread-oauth2,azuread-tenant-oauth2
- WEBLATE_REGISTRATION_REBIND¶
Added in version 4.16.
Mengkonfigurasikan
REGISTRATION_REBIND.
- WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS¶
Added in version 5.16.1.
Mengkonfigurasikan
REGISTRATION_ALLOW_DISPOSABLE_EMAILS.Contoh:
environment: WEBLATE_REGISTRATION_ALLOW_DISPOSABLE_EMAILS: 1
- WEBLATE_PROJECT_WEB_RESTRICT_PRIVATE¶
Added in version 5.17.
Mengkonfigurasikan
PROJECT_WEB_RESTRICT_PRIVATE.Bawaannya adalah diaktifkan.
- WEBLATE_PROJECT_WEB_RESTRICT_ALLOWLIST¶
Added in version 5.17.
Configures
PROJECT_WEB_RESTRICT_ALLOWLIST.Expects a comma-separated list of trusted project slugs.
- WEBLATE_WEBHOOK_RESTRICT_PRIVATE¶
Added in version 5.17.
Configures
WEBHOOK_RESTRICT_PRIVATE.Bawaannya adalah diaktifkan.
- WEBLATE_WEBHOOK_PRIVATE_ALLOWLIST¶
Added in version 5.17.
Configures
WEBHOOK_PRIVATE_ALLOWLIST.Expects a comma-separated list of trusted hostnames or domains.
- WEBLATE_ALLOWED_ASSET_SIZE¶
Added in version 2025.7.
Configures
ALLOWED_ASSET_SIZE.
- WEBLATE_ASSET_RESTRICT_PRIVATE¶
Added in version 2025.5.
Configures
ASSET_RESTRICT_PRIVATE.Bawaannya adalah diaktifkan.
- WEBLATE_ASSET_PRIVATE_ALLOWLIST¶
Added in version 2025.5.
Configures
ASSET_PRIVATE_ALLOWLIST.Expects a comma-separated list of trusted hostnames or domains.
- WEBLATE_TIME_ZONE¶
Mengonfigurasi zona waktu yang digunakan di Weblate, lihat
TIME_ZONE.Catatan
Untuk mengubah zona waktu kontainer Docker itu sendiri, gunakan variabel lingkungan
TZ.Contoh:
environment: WEBLATE_TIME_ZONE: Europe/Prague
- WEBLATE_ENABLE_HTTPS¶
Menjadikan Weblate berasumsi bahwa ia dioperasikan di balik proksi HTTPS terbalik, ia membuat Weblate menggunakan HTTPS dalam surel dan tautan API atau mengatur penanda aman pada kuki.
Petunjuk
Silakan lihat dokumentasi
ENABLE_HTTPSuntuk kemungkinan peringatan.Catatan
Ini tidak membuat kontainer Weblate menerima sambungan HTTPS, Anda perlu mengonfigurasinya juga, lihat Kontainer Docker dengan dukungan HTTPS untuk contoh.
Contoh:
environment: WEBLATE_ENABLE_HTTPS: 1
- WEBLATE_NGINX_IPV6¶
Added in version 5.17.
Controls whether the bundled NGINX listens on IPv6 addresses.
Supported values are:
autoto enable IPv6 listeners only when IPv6 is available in the container runtime. This is the default.onto always enable IPv6 listeners.offto disable IPv6 listeners.
Contoh:
environment: WEBLATE_NGINX_IPV6: auto
- WEBLATE_IP_PROXY_HEADER¶
Memungkinkan Weblate untuk mengambil alamat IP dari kepala HTTP mana pun. Gunakan ini saat menggunakan proksi terbalik di depan kontainer Weblate.
Mengaktifkan
IP_BEHIND_REVERSE_PROXYdan mengaturIP_PROXY_HEADER.Catatan
Formatnya harus sesuai dengan harapan Django. Django mengubah nama kepala HTTP mentah sebagai berikut:
mengubah semua karakter menjadi huruf besar
mengganti tanda hubung dengan garis bawah
menambahkan prefiks
HTTP_
Jadi
X-Forwarded-Forakan dipetakan keHTTP_X_FORWARDED_FOR.Contoh:
environment: WEBLATE_IP_PROXY_HEADER: HTTP_X_FORWARDED_FOR
- WEBLATE_IP_PROXY_OFFSET¶
Added in version 5.0.1.
Mengkonfigurasikan
IP_PROXY_OFFSET.
- WEBLATE_USE_X_FORWARDED_PORT¶
Added in version 5.0.1.
Boolean yang menspesifikasikan apakah kepala X-Forwarded-Port akan digunakan alih-alih variabel META SERVER_PORT. Opsi ini hanya boleh diaktifkan jika proksi yang mengatur kepala ini sedang digunakan.
Lihat juga
Catatan
Ini adalah pengaturan boolean (gunakan
"true"atau"false").
- WEBLATE_SECURE_PROXY_SSL_HEADER¶
A tuple representing an HTTP header/value combination that signifies a request is secure. This is needed when Weblate is running behind a reverse proxy doing SSL termination which does not pass standard HTTPS headers.
Contoh:
environment: WEBLATE_SECURE_PROXY_SSL_HEADER: HTTP_X_FORWARDED_PROTO,https
- WEBLATE_REQUIRE_LOGIN¶
Mengaktifkan
REQUIRE_LOGINuntuk memaksakan autentikasi pada seluruh Weblate.Contoh:
environment: WEBLATE_REQUIRE_LOGIN: 1
- WEBLATE_LEGAL_INTEGRATION¶
Enables the Modul hukum module in Docker deployments. By default, the integration is disabled; leave this variable unset or empty to disable it.
Supported values are:
tos-confirmto enable the legal module and enforce terms of service confirmation during social authentication and for signed-in users.wllegalto enable the same integration and additionally load the hosted legal document templates fromwllegal. These templates are used by services operated by Weblate s.r.o. and are not intended for general use.
To provide your own legal documents in Docker, override the templates in
/app/data/python/customize/templates/legal/documents, see Mengganti logo dan berkas statis lainnya.Recreate the Docker container after changing this environment variable, for example using docker compose up -d. Restarting an existing container does not apply changed environment values.
Contoh:
environment: WEBLATE_LEGAL_INTEGRATION: tos-confirm
- WEBLATE_LEGAL_DOCUMENT_CSS_CLASS¶
Configures
LEGAL_DOCUMENT_CSS_CLASSin Docker deployments withWEBLATE_LEGAL_INTEGRATIONenabled.Set this to an empty string to disable the built-in legal document numbering.
Contoh:
environment: WEBLATE_LEGAL_DOCUMENT_CSS_CLASS: ""
- WEBLATE_LEGAL_HIDDEN_DOCUMENTS¶
Configures
LEGAL_HIDDEN_DOCUMENTSin Docker deployments withWEBLATE_LEGAL_INTEGRATIONenabled.Provide a comma-separated list of legal document page identifiers.
Contoh:
environment: WEBLATE_LEGAL_HIDDEN_DOCUMENTS: contracts
- WEBLATE_PUBLIC_ENGAGE¶
Mengaktifkan
PUBLIC_ENGAGE.
- WEBLATE_GOOGLE_ANALYTICS_ID¶
Mengkonfigurasikan ID untuk Google Analytics dengan mengubah
GOOGLE_ANALYTICS_ID.
- WEBLATE_DEFAULT_PULL_MESSAGE¶
Mengkonfigurasikan judul dan pesan bawaan untuk permintaan tarik melalui API dengan mengubah
DEFAULT_PULL_MESSAGE.Lihat juga
- WEBLATE_SIMPLIFY_LANGUAGES¶
Mengkonfigurasikan kebijakan penyederhanaan bahasa, lihat
SIMPLIFY_LANGUAGES.
- WEBLATE_HIDE_SHARED_GLOSSARY_COMPONENTS¶
Menyembunyikan komponen glosarium saat dibagikan ke proyek lain, lihat
HIDE_SHARED_GLOSSARY_COMPONENTS.
- WEBLATE_DEFAULT_ACCESS_CONTROL¶
Mengkonfigurasikan Kontrol akses bawaan untuk proyek baru, lihat
DEFAULT_ACCESS_CONTROL.
- WEBLATE_DEFAULT_TRANSLATION_REVIEW¶
Added in version 5.16.
Mengkonfigurasikan nilai bawaan untuk Aktifkan tinjauan, yang secara bawaan dimatikan.
- WEBLATE_DEFAULT_SOURCE_REVIEW¶
Added in version 5.16.
Mengkonfigurasikan nilai bawaan untuk Aktifkan tinjauan sumber, yang secara bawaan dimatikan.
- WEBLATE_DEFAULT_RESTRICTED_COMPONENT¶
Mengkonfigurasikan nilai bawaan untuk Akses terbatas untuk komponen baru, lihat
DEFAULT_RESTRICTED_COMPONENT.
- WEBLATE_DEFAULT_TRANSLATION_PROPAGATION¶
Mengkonfigurasikan nilai bawaan untuk Izinkan propagasi terjemahan untuk komponen baru, lihat
DEFAULT_TRANSLATION_PROPAGATION.
- WEBLATE_DEFAULT_COMMITER_EMAIL¶
Mengkonfigurasikan
DEFAULT_COMMITER_EMAIL.
- WEBLATE_DEFAULT_COMMITER_NAME¶
Mengkonfigurasikan
DEFAULT_COMMITER_NAME.
- WEBLATE_DEFAULT_SHARED_TM¶
Mengkonfigurasikan
DEFAULT_SHARED_TM.
- WEBLATE_DEFAULT_AUTOCLEAN_TM¶
Mengkonfigurasikan
DEFAULT_AUTOCLEAN_TM.
- WEBLATE_COMMIT_PENDING_HOURS¶
Configures the default value for Usia perubahan untuk komit for new components, see
COMMIT_PENDING_HOURS.
- WEBLATE_GPG_IDENTITY¶
Mengkonfigurasikan penandatanganan komit GPG, lihat
WEBLATE_GPG_IDENTITY.Lihat juga
- WEBLATE_URL_PREFIX¶
Mengkonfigurasikan prefiks URL tempat Weblate berjalan, lihat
URL_PREFIX.
- WEBLATE_SILENCED_SYSTEM_CHECKS¶
Mengkonfigurasikan pemeriksaan yang tidak ingin ditampilkan, lihat
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¶
Mengizinkan untuk menyesuaikan kepala HTTP Content-Security-Policy.
- WEBLATE_LICENSE_FILTER¶
Mengkonfigurasikan
LICENSE_FILTER.
- WEBLATE_LICENSE_REQUIRED¶
Mengkonfigurasikan
LICENSE_REQUIRED.
- WEBLATE_WEBSITE_REQUIRED¶
Mengkonfigurasikan
WEBSITE_REQUIRED.
- WEBLATE_VERSION_DISPLAY¶
Configures
VERSION_DISPLAY.
- WEBLATE_HIDE_VERSION¶
Mengkonfigurasikan
HIDE_VERSION.
- WEBLATE_BASIC_LANGUAGES¶
Mengkonfigurasikan
BASIC_LANGUAGES.
- WEBLATE_DEFAULT_AUTO_WATCH¶
Mengkonfigurasikan
DEFAULT_AUTO_WATCH.
- WEBLATE_RATELIMIT_ATTEMPTS¶
- WEBLATE_RATELIMIT_LOCKOUT¶
- WEBLATE_RATELIMIT_WINDOW¶
Added in version 4.6.
Mengkonfigurasikan pembatasan akses.
Petunjuk
Anda dapat mengatur konfigurasi untuk cakupan pembatas akses apa pun. Untuk melakukannya, tambahkan prefiks
WEBLATE_ke pengaturan apa pun yang dijelaskan di Pembatasan akses.
- WEBLATE_API_RATELIMIT_ANON¶
- WEBLATE_API_RATELIMIT_USER¶
Added in version 4.11.
Mengkonfigurasikan pembatasan akses API. Bawaannya adalah
100/hariuntuk pengguna anonim dan5000/jamuntuk pengguna terautentikasikan.Lihat juga
- WEBLATE_ENABLE_HOOKS¶
Added in version 4.13.
Mengkonfigurasikan
ENABLE_HOOKS.
- WEBLATE_ENABLE_AVATARS¶
Added in version 4.6.1.
Mengkonfigurasikan
ENABLE_AVATARS.
- WEBLATE_AVATAR_URL_PREFIX¶
Added in version 4.15.
Mengkonfigurasikan
AVATAR_URL_PREFIX.
- WEBLATE_LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH¶
Added in version 4.9.
Mengkonfigurasikan
LIMIT_TRANSLATION_LENGTH_BY_SOURCE_LENGTH.
- WEBLATE_SSH_EXTRA_ARGS¶
Added in version 4.9.
Mengkonfigurasikan
SSH_EXTRA_ARGS.
- WEBLATE_BORG_EXTRA_ARGS¶
Added in version 4.9.
Mengkonfigurasikan
BORG_EXTRA_ARGSsebagai daftar argumen yang dipisahkan koma.Contoh:
environment: WEBLATE_BORG_EXTRA_ARGS: --exclude,vcs/
- WEBLATE_ENABLE_SHARING¶
Added in version 4.14.1.
Mengkonfigurasikan
ENABLE_SHARING.
- WEBLATE_SUPPORT_STATUS_CHECK¶
Added in version 5.5.
Mengkonfigurasikan
SUPPORT_STATUS_CHECK.
- WEBLATE_EXTRA_HTML_HEAD¶
Added in version 4.15.
Mengkonfigurasikan
EXTRA_HTML_HEAD.
- WEBLATE_PRIVATE_COMMIT_EMAIL_TEMPLATE¶
Added in version 4.15.
Mengkonfigurasikan
PRIVATE_COMMIT_EMAIL_TEMPLATE.
- WEBLATE_PRIVATE_COMMIT_EMAIL_OPT_IN¶
Added in version 4.15.
Mengkonfigurasikan
PRIVATE_COMMIT_EMAIL_OPT_IN.
- WEBLATE_PRIVATE_COMMIT_NAME_TEMPLATE¶
Added in version 5.16.
Mengkonfigurasikan
PRIVATE_COMMIT_NAME_TEMPLATE.
- WEBLATE_PRIVATE_COMMIT_NAME_OPT_IN¶
Added in version 5.16.
Mengkonfigurasikan
PRIVATE_COMMIT_NAME_OPT_IN.
- WEBLATE_UNUSED_ALERT_DAYS¶
Added in version 4.17.
Mengkonfigurasikan
UNUSED_ALERT_DAYS.
- WEBLATE_UPDATE_LANGUAGES¶
Added in version 4.3.2.
Mengkonfigurasikan
UPDATE_LANGUAGES.
- WEBLATE_VCS_ALLOW_HOSTS¶
Added in version 5.15.
Mengkonfigurasikan
VCS_ALLOW_HOSTS.
- WEBLATE_VCS_ALLOW_SCHEMES¶
Added in version 5.15.
Mengonfigurasikan
VCS_ALLOW_SCHEMES.
- WEBLATE_VCS_RESTRICT_PRIVATE¶
Added in version 5.17.
Configures
VCS_RESTRICT_PRIVATE.
- WEBLATE_VCS_CLONE_DEPTH¶
Added in version 5.4.
Mengkonfigurasikan
VCS_CLONE_DEPTH.
- WEBLATE_VCS_API_DELAY¶
Added in version 5.4.
Mengkonfigurasikan
VCS_API_DELAY.
- WEBLATE_VCS_API_TIMEOUT¶
Added in version 5.15.
Mengkonfigurasikan
VCS_API_TIMEOUT.
- WEBLATE_CORS_ALLOWED_ORIGINS¶
Added in version 4.16.
Izinkan permintaan CORS ke API dari asal yang diberikan.
Contoh:
environment: WEBLATE_CORS_ALLOWED_ORIGINS: https://example.com,https://weblate.org
- WEBLATE_CORS_ALLOW_ALL_ORIGINS¶
Added in version 5.6.1: Mengizinkan permintaan CORS ke API dari semua asal.
- WEBLATE_WEBSITE_ALERTS_ENABLED¶
Added in version 5.17.
Mengkonfigurasikan
WEBSITE_ALERTS_ENABLED.
- CLIENT_MAX_BODY_SIZE¶
Added in version 4.16.3.
Mengkonfigurasikan ukuran isian maksimal yang diterima oleh server web bawaan.
environment: CLIENT_MAX_BODY_SIZE: 200m
Petunjuk
Variabel ini sengaja tidak memiliki prefiks
WEBLATE_karena digunakan bersama dengan kontainer pihak ketiga yang digunakan dalam Sertifikat SSL otomatis menggunakan Let’s Encrypt.
- WEBLATE_TRANSLATION_UPLOAD_MAX_SIZE¶
Configures
TRANSLATION_UPLOAD_MAX_SIZE.The value is in bytes.
- WEBLATE_COMPONENT_ZIP_UPLOAD_MAX_SIZE¶
Configures
COMPONENT_ZIP_UPLOAD_MAX_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_UPLOAD_MAX_SIZE¶
Configures
PROJECT_BACKUP_UPLOAD_MAX_SIZE.The value is in bytes. Make sure
CLIENT_MAX_BODY_SIZEis also large enough for uploaded backup files.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_MEMBERS¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_MEMBERS.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_TOTAL_UNCOMPRESSED_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MIN_RATIO_SIZE.The value is in bytes.
- WEBLATE_PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO¶
Added in version 2026.5.
Configures
PROJECT_BACKUP_IMPORT_MAX_COMPRESSED_ENTRY_RATIO.
Kredensial situs pengehosan kode¶
In the Docker container, the code hosting credentials can be configured either in separate variables or using a Python dictionary to set them at once. The following examples are for Permintaan tarik GitHub, but apply to all Integrasi kontrol versi with appropriately changed variable names.
Penting
Semua nama variabel lingkungan harus menyertakan awalan WEBLATE_. Misalnya, untuk mengkonfigurasi kredensial GitHub, gunakan WEBLATE_GITHUB_USERNAME, bukan GITHUB_USERNAME. Ini berlaku baik Anda mengkonfigurasikan untuk permintaan penarikan maupun integrasi VCS lainnya.
Contoh konfigurasi untuk permintaan tarik GitHub mungkin terlihat seperti ini:
WEBLATE_GITHUB_USERNAME=api-user
WEBLATE_GITHUB_TOKEN=api-token
WEBLATE_GITHUB_HOST=api.github.com
Akan digunakan sebagai:
GITHUB_CREDENTIALS = {
"api.github.com": {
"username": "api-user",
"token": "api-token",
}
}
Alternatifnya kamus Python dapat disediakan sebagai string:
WEBLATE_GITHUB_CREDENTIALS='{ "api.github.com": { "username": "api-user", "token": "api-token", } }'
Atau jalur ke berkas yang berisi kamus 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¶
Configures Permintaan tarik GitHub by changing
GITHUB_CREDENTIALS.
- WEBLATE_GITLAB_USERNAME¶
- WEBLATE_GITLAB_TOKEN¶
- WEBLATE_GITLAB_HOST¶
- WEBLATE_GITLAB_CREDENTIALS¶
Configures Permintaan penggabungan GitLab by changing
GITLAB_CREDENTIALS.
- WEBLATE_GITEA_USERNAME¶
- WEBLATE_GITEA_TOKEN¶
- WEBLATE_GITEA_HOST¶
- WEBLATE_GITEA_CREDENTIALS¶
Configures Permintaan tarik Gitea by changing
GITEA_CREDENTIALS.
- WEBLATE_PAGURE_USERNAME¶
- WEBLATE_PAGURE_TOKEN¶
- WEBLATE_PAGURE_HOST¶
- WEBLATE_PAGURE_CREDENTIALS¶
Configures Permintaan penggabungan Pagure by changing
PAGURE_CREDENTIALS.
- WEBLATE_BITBUCKETSERVER_USERNAME¶
- WEBLATE_BITBUCKETSERVER_TOKEN¶
- WEBLATE_BITBUCKETSERVER_HOST¶
- WEBLATE_BITBUCKETSERVER_CREDENTIALS¶
Configures Permintaan penarikan Bitbucket Data Center by changing
BITBUCKETSERVER_CREDENTIALS.
- WEBLATE_BITBUCKETCLOUD_USERNAME¶
- WEBLATE_BITBUCKETCLOUD_WORKSPACE¶
- WEBLATE_BITBUCKETCLOUD_TOKEN¶
- WEBLATE_BITBUCKETCLOUD_HOST¶
- WEBLATE_BITBUCKETCLOUD_CREDENTIALS¶
Configures Permintaan penarikan Bitbucket Cloud by changing
BITBUCKETCLOUD_CREDENTIALS.
- WEBLATE_AZURE_DEVOPS_USERNAME¶
- WEBLATE_AZURE_DEVOPS_ORGANIZATION¶
- WEBLATE_AZURE_DEVOPS_TOKEN¶
- WEBLATE_AZURE_DEVOPS_HOST¶
- WEBLATE_AZURE_DEVOPS_CREDENTIALS¶
Configures Permintaan penarikan Azure DevOps by changing
AZURE_DEVOPS_CREDENTIALS.
Pengaturan saran otomatis¶
Berubah pada versi 4.13: Layanan saran otomatis sekarang dikonfigurasikan dalam antarmuka pengguna, lihat Saran otomatis.
Variabel lingkungan yang ada diimpor selama migrasi ke Weblate 4.13, tetapi mengubahnya tidak akan memiliki efek lebih lanjut.
Pengaturan autentikasi¶
Petunjuk
Autentikasi berbasis surel dinyalakan kecuali dinonaktifkan oleh 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¶
Konfigurasi autentikasi LDAP.
Contoh untuk pengikatan langsung:
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
Contoh untuk pencarian dan pengikatan:
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
Contoh untuk pencarian dan pengikatan serikat:
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
Contoh dengan pencarian dan pengikatan terhadap 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)
Lihat juga
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¶
Mengaktifkan Autentikasi GitHub.
GitHub Enterprise Edition¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_KEY¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SECRET¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_URL¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_API_URL¶
- WEBLATE_SOCIAL_AUTH_GITHUB_ENTERPRISE_SCOPE¶
Mengaktifkan Autentikasi GitHub EE.
Bitbucket¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_BITBUCKET_OAUTH2_SECRET¶
Mengaktifkan Autentikasi Bitbucket.
Facebook¶
- WEBLATE_SOCIAL_AUTH_FACEBOOK_KEY¶
- WEBLATE_SOCIAL_AUTH_FACEBOOK_SECRET¶
Mengaktifkan 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¶
Mengaktifkan Google OAuth 2.
GitLab¶
- WEBLATE_SOCIAL_AUTH_GITLAB_KEY¶
- WEBLATE_SOCIAL_AUTH_GITLAB_SECRET¶
- WEBLATE_SOCIAL_AUTH_GITLAB_API_URL¶
Mengaktifkan GitLab OAuth 2.
Gitea¶
- WEBLATE_SOCIAL_AUTH_GITEA_API_URL¶
- WEBLATE_SOCIAL_AUTH_GITEA_KEY¶
- WEBLATE_SOCIAL_AUTH_GITEA_SECRET¶
Mengaktifkan autentikasi Gitea.
Microsoft Entra ID¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_KEY¶
- WEBLATE_SOCIAL_AUTH_AZUREAD_OAUTH2_SECRET¶
Enables Microsoft Entra ID authentication, see Microsoft Entra ID.
Microsoft Entra ID 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 Microsoft Entra ID authentication with Tenant support, see 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¶
Mengaktifkan autentikasi Keycloak, lihat Keycloak - Open Source Red Hat SSO.
- WEBLATE_SOCIAL_AUTH_KEYCLOAK_ID_KEY¶
Added in version 5.17.
Configures which claim is used as the unique user identifier from Keycloak. Defaults to
email.Petunjuk
Saat Keycloak dikonfigurasikan untuk mengabstraksi IDP pihak ketiga, Anda perlu mengkonfigurasikan
WEBLATE_CSP_FORM_SRCuntuk domain IDP pihak ketiga.Contoh saat Keycloak meneruskan autentikasi ke Microsoft.¶environment: WEBLATE_CSP_FORM_SRC: login.microsoftonline.com
Vendor Linux¶
Anda dapat mengaktifkan autentikasi menggunakan layanan autentikasi vendor Linux dengan mengatur variabel berikut ke nilai apa pun.
- WEBLATE_SOCIAL_AUTH_FEDORA¶
- WEBLATE_SOCIAL_AUTH_OPENSUSE¶
- WEBLATE_SOCIAL_AUTH_OPENINFRA¶
- WEBLATE_SOCIAL_AUTH_UBUNTU¶
Slack¶
- WEBLATE_SOCIAL_AUTH_SLACK_KEY¶
OpenID Connect¶
Added in version 4.13-1.
- WEBLATE_SOCIAL_AUTH_OIDC_OIDC_ENDPOINT¶
- WEBLATE_SOCIAL_AUTH_OIDC_KEY¶
- WEBLATE_SOCIAL_AUTH_OIDC_SECRET¶
- WEBLATE_SOCIAL_AUTH_OIDC_USERNAME_KEY¶
- WEBLATE_SOCIAL_AUTH_OIDC_TITLE¶
- WEBLATE_SOCIAL_AUTH_OIDC_IMAGE¶
Mengonfigurasikan integrasi OpenID Connect umum.
Lihat juga
Fedora OpenID Connect¶
Added in version 5.15.
- WEBLATE_SOCIAL_AUTH_FEDORA_OIDC_KEY¶
SAML¶
Kunci SAML yang ditandatangani sendiri akan otomatis dibuat saat kontainer pertama kali dijalankan. Jika Anda ingin menggunakan kunci sendiri, tempatkan sertifikat dan kunci privat di /app/data/ssl/saml.crt dan /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¶
Pengaturan Penyedia Identitas SAML, lihat Autentikasi SAML.
- WEBLATE_SAML_SECURITY_CONFIG¶
Added in version 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}'
Lihat juga
- WEBLATE_SAML_ID_ATTR_FULL_NAME¶
- WEBLATE_SAML_ID_ATTR_FIRST_NAME¶
- WEBLATE_SAML_ID_ATTR_LAST_NAME¶
- WEBLATE_SAML_ID_ATTR_USERNAME¶
- WEBLATE_SAML_ID_ATTR_EMAIL¶
- WEBLATE_SAML_ID_ATTR_USER_PERMANENT_ID¶
Added in version 4.18.
Pemetaan atribut SAML.
Pengaturan autentikasi lainnya¶
- WEBLATE_NO_EMAIL_AUTH¶
Menonaktifkan autentikasi surel jika diatur ke nilai apa pun. Lihat Mematikan autentikasi kata sandi.
Penyiapan basis data PostgreSQL¶
Basis data dibuat oleh docker-compose.yml, jadi pengaturan ini memengaruhi kontainer Weblate dan PostgreSQL.
Lihat juga
- POSTGRES_PASSWORD¶
Kata sandi PostgreSQL.
Lihat juga
- POSTGRES_USER¶
Nama pengguna PostgreSQL.
- POSTGRES_DB¶
Nama basis data PostgreSQL.
- POSTGRES_HOST¶
Nama hos atau alamat IP server PostgreSQL. Bawaannya adalah
database.
- POSTGRES_PORT¶
Port server PostgreSQL. Bawaannya adalah tidak ada (menggunakan nilai bawaan).
- POSTGRES_SSL_MODE¶
Konfigurasikan bagaimana PostgreSQL menangani SSL dalam sambungan ke server, untuk pilihan yang memungkinkan lihat Deskripsi Mode SSL.
- POSTGRES_ALTER_ROLE¶
Mengkonfigurasikan nama peran PostgreSQL untuk diubah selama migrasi basis data, lihat Mengkonfigurasikan Weblate untuk menggunakan PostgreSQL.
Bawaannya adalah
POSTGRES_USER.
- POSTGRES_CONN_MAX_AGE¶
Added in version 4.8.1.
Masa pakai sambungan basis data, dalam bilangan bulat detik. Gunakan 0 untuk menutup sambungan basis data di akhir setiap permintaan.
Berubah pada versi 5.1: Perilaku bawaan adalah memiliki sambungan basis data persisten yang tidak terbatas.
Mengaktifkan persistensi sambungan biasanya akan menyebabkan lebih banyak sambungan terbuka ke basis data. Harap sesuaikan konfigurasi basis data Anda sebelum mengaktifkannya.
Contoh konfigurasi:
environment: POSTGRES_CONN_MAX_AGE: 3600
Lihat juga
- POSTGRES_DISABLE_SERVER_SIDE_CURSORS¶
Added in version 4.9.1.
Nonaktifkan kursor sisi server di basis data. Ini diperlukan dalam beberapa pengaturan pgbouncer.
Contoh konfigurasi:
environment: POSTGRES_DISABLE_SERVER_SIDE_CURSORS: 1
- WEBLATE_DATABASES¶
Added in version 5.1.
Set to false to disable environment based configuration of the database connection. Use Menimpa pengaturan dari volume data to configure the database connection manually.
Pengaturan cadangan basis data¶
Lihat juga
- WEBLATE_DATABASE_BACKUP¶
Mengkonfigurasikan buangan basis data harian menggunakan
DATABASE_BACKUP. Bawaannya adalahplain.
Pengaturan server penyimpanan data¶
Penggunaan Valkey atau Redis diperlukan oleh kontainer Weblate dan Anda harus menyediakan parameter sambungan saat menjalankan Weblate di Docker.
Lihat juga
- REDIS_HOST¶
Nama hos atau alamat IP server penyimpanan data. Nilai bawaannya adalah
cache.
- REDIS_PORT¶
Port server penyimpanan data. Nilai bawaannya adalah
6379.
- REDIS_DB¶
Nomor basis data penyimpanan data, bawaannya adalah
1.
- REDIS_USER¶
Added in version 5.13: Pengguna basis data penyimpanan data, tidak digunakan secara bawaan.
- REDIS_PASSWORD¶
Kata sandi server penyimpanan data, tidak digunakan secara bawaan.
Lihat juga
- REDIS_TLS¶
Mengaktifkan penggunaan SSL untuk sambungan penyimpanan data.
- REDIS_VERIFY_SSL¶
Dapat digunakan untuk menonaktifkan verifikasi sertifikat SSL untuk sambungan penyimpanan data.
Pengaturan server surel¶
Agar surel keluar dapat berfungsi, Anda perlu menyediakan server surat.
Contoh konfigurasi TLS:
environment:
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_HOST_USER: user
WEBLATE_EMAIL_HOST_PASSWORD: pass
Contoh konfigurasi 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
Lihat juga
- WEBLATE_EMAIL_HOST¶
Nama hos atau alamat IP server surat.
- WEBLATE_EMAIL_PORT¶
Port server surat, bawaannya adalah 25.
Lihat juga
- WEBLATE_EMAIL_HOST_USER¶
Pengguna autentikasi surel.
Lihat juga
- WEBLATE_EMAIL_HOST_PASSWORD¶
Kata sandi autentikasi surel.
Lihat juga
- WEBLATE_EMAIL_USE_SSL¶
Apakah akan menggunakan sambungan TLS implisit (aman) saat berkomunikasi dengan server SMTP. Dalam sebagian besar dokumentasi surel, jenis sambungan TLS ini disebut SSL. Umumnya digunakan pada port 465. Jika Anda mengalami masalah, lihat pengaturan TLS eksplisit
WEBLATE_EMAIL_USE_TLS.Berubah pada versi 4.11: Dukungan SSL/TLS diaktifkan secara otomatis berdasarkan
WEBLATE_EMAIL_PORT.Lihat juga
- WEBLATE_EMAIL_USE_TLS¶
Apakah akan menggunakan sambungan TLS (aman) saat berkomunikasi dengan server SMTP. Ini digunakan untuk sambungan TLS eksplisit, umumnya pada port 587 atau 25. Jika Anda mengalami sambungan yang macet, lihat pengaturan TLS implisit
WEBLATE_EMAIL_USE_SSL.Berubah pada versi 4.11: Dukungan SSL/TLS diaktifkan secara otomatis berdasarkan
WEBLATE_EMAIL_PORT.Lihat juga
- WEBLATE_EMAIL_BACKEND¶
Konfigurasikan backend Django yang akan digunakan untuk mengirim surel.
Lihat juga
- WEBLATE_AUTO_UPDATE¶
Mengkonfigurasikan apakah dan bagaimana Weblate harus memperbarui repositori.
Lihat juga
Catatan
Ini adalah pengaturan Boolean (gunakan
"true"atau"false").
Integrasi situs¶
- WEBLATE_GET_HELP_URL¶
Mengkonfigurasikan
GET_HELP_URL.
- WEBLATE_STATUS_URL¶
Mengkonfigurasikan
STATUS_URL.
- WEBLATE_PRIVACY_URL¶
Mengkonfigurasikan
PRIVACY_URL.
- WEBLATE_PASSWORD_RESET_URL¶
Configures
PASSWORD_RESET_URL.
Mengumpulkan laporan galat dan memantau kinerja¶
Disarankan untuk mengumpulkan galat dari pemasangan secara sistematis, lihat Mengumpulkan laporan galat dan memantau kinerja.
Untuk mengaktifkan dukungan untuk Rollbar, atur berikut:
- ROLLBAR_KEY¶
Token akses server posting Rollbar Anda.
- ROLLBAR_ENVIRONMENT¶
Lingkungan Rollbar Anda, bawaannya adalah
production.
Untuk mengaktifkan dukungan untuk Sentry, atur berikut:
- SENTRY_DSN¶
Sentry DSN Anda, lihat
SENTRY_DSN.
- SENTRY_ENVIRONMENT¶
Lingkungan Sentry Anda (opsional), bawaannya adalah
WEBLATE_SITE_DOMAIN.
- SENTRY_MONITOR_BEAT_TASKS¶
Apakah akan memantau tugas Celery Beat dengan Sentry, bawaannya adalah
True.
- SENTRY_TRACES_SAMPLE_RATE¶
Mengkonfigurasikan
SENTRY_TRACES_SAMPLE_RATE.Contoh:
environment: SENTRY_TRACES_SAMPLE_RATE: 0.5
- SENTRY_PROFILES_SAMPLE_RATE¶
Mengkonfigurasikan
SENTRY_PROFILES_SAMPLE_RATE.Contoh:
environment: SENTRY_PROFILES_SAMPLE_RATE: 0.5
- SENTRY_SEND_PII¶
Mengkonfigurasikan
SENTRY_SEND_PII.
To enable support for Google Cloud Error Reporting, set following:
- GOOGLE_CLOUD_ERROR_REPORTING_ENABLED¶
Enables
GOOGLE_CLOUD_ERROR_REPORTING, defaults toFalse.
- GOOGLE_CLOUD_ERROR_REPORTING_PROJECT¶
Google Cloud project to report errors to. If omitted, the Google client uses application default credentials to detect the project.
- GOOGLE_CLOUD_ERROR_REPORTING_SERVICE¶
Service name to use in Google Cloud Error Reporting, defaults to
weblate.
To enable support for OpenTelemetry tracing, set following:
- OPENTELEMETRY_ENABLED¶
Enables
OPENTELEMETRY_ENABLED, defaults toFalse.
- OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT¶
Configures
OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT.Contoh:
environment: OPENTELEMETRY_ENABLED: true OPENTELEMETRY_EXPORTER_OTLP_ENDPOINT: https://collector.example.com/v1/traces OPENTELEMETRY_TRACES_SAMPLE_RATE: 0.1
- OPENTELEMETRY_EXPORTER_OTLP_HEADERS¶
Configures
OPENTELEMETRY_EXPORTER_OTLP_HEADERSas a comma-separatedname:valuemapping.
- OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTES¶
Configures
OPENTELEMETRY_EXTRA_RESOURCE_ATTRIBUTESas a comma-separatedname:valuemapping.
- OPENTELEMETRY_SERVICE_NAME¶
Configures
OPENTELEMETRY_SERVICE_NAME.
- OPENTELEMETRY_TRACES_SAMPLE_RATE¶
Configures
OPENTELEMETRY_TRACES_SAMPLE_RATE.
CDN lokalisasi¶
- WEBLATE_LOCALIZE_CDN_URL¶
- WEBLATE_LOCALIZE_CDN_PATH¶
Added in version 4.2.1.
Configuration for CDN add-ons, including CDN lokalisasi JavaScript and CDN berkas terjemahan.
WEBLATE_LOCALIZE_CDN_PATHadalah jalur di dalam kontainer. Jalur ini harus disimpan di volume persisten, bukan di penyimpanan sementara.Salah satu kemungkinan adalah menyimpannya di dalam direktori data Weblate:
environment: WEBLATE_LOCALIZE_CDN_URL: https://cdn.example.com/ WEBLATE_LOCALIZE_CDN_PATH: /app/data/l10n-cdn
Catatan
You are responsible for setting up serving of the files generated by Weblate, it only stores the files in configured location. See CDN lokalisasi for secure serving guidance.
Changing enabled apps, checks, formats, add-ons, machinery, or autofixes¶
The built-in configuration of enabled checks, file formats, add-ons, machinery, 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_FORMATS¶
- WEBLATE_REMOVE_FORMATS¶
- WEBLATE_ADD_ADDONS¶
- WEBLATE_REMOVE_ADDONS¶
- WEBLATE_ADD_MACHINERY¶
Added in version 5.6.1.
- WEBLATE_REMOVE_MACHINERY¶
Added in version 5.6.1.
Contoh:
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
Pengaturan kontainer¶
- WEBLATE_WORKERS¶
Added in version 4.6.1.
Jumlah dasar proses pekerja yang berjalan di dalam kontainer. Jika tidak diatur, jumlah tersebut akan ditentukan secara otomatis saat kontainer dimulai berdasarkan jumlah inti CPU yang tersedia.
Ini digunakan untuk menentukan
CELERY_MAIN_OPTIONS,CELERY_NOTIFY_OPTIONS,CELERY_MEMORY_OPTIONS,CELERY_TRANSLATE_OPTIONS,CELERY_BACKUP_OPTIONS,CELERY_BEAT_OPTIONS, danWEB_WORKERS. Anda dapat menggunakan pengaturan ini untuk menyesuaikan.
- CELERY_MAIN_OPTIONS¶
- CELERY_NOTIFY_OPTIONS¶
- CELERY_MEMORY_OPTIONS¶
- CELERY_TRANSLATE_OPTIONS¶
- CELERY_BACKUP_OPTIONS¶
- CELERY_BEAT_OPTIONS¶
Variabel-variabel ini memungkinkan Anda menyesuaikan opsi pekerja Celery. Penyesuaian konkurensi (
--concurrency 16) atau implementasi pool yang berbeda (--pool=gevent) dapat bermanfaat.Secara bawaan, jumlah pekerja bersamaan didasarkan pada
WEBLATE_WORKERS.Contoh:
environment: CELERY_MAIN_OPTIONS: --concurrency 16
- CELERY_SINGLE_PROCESS¶
Added in version 5.7.1: Variabel ini dapat diatur ke
1untuk menjalankan hanya satu proses celery. Hal ini mengurangi penggunaan memori tetapi dapat memengaruhi kinerja Weblate.environment: CELERY_SINGLE_PROCESS: 1
Lihat juga
- WEB_WORKERS¶
Konfigurasikan berapa banyak pekerja WSGI yang akan dieksekusi.
Bawaannya adalah setengah dari
WEBLATE_WORKERS, tetapi selalu minimal 2.Contoh:
environment: WEB_WORKERS: 4
Berubah pada versi 5.13:
WEB_WORKERSmengkonfigurasikan berapa banyak proses pekerja yang akan digunakan oleh granian.
- WEBLATE_SERVICE¶
Mendefinisikan layanan mana yang harus dijalankan di dalam kontainer. Gunakan ini untuk Menskalakan secara horizontal.
Layanan berikut didefinisikan:
celery-beatPenjadwal tugas Celery, hanya satu instansi yang boleh berjalan. Kontainer ini juga bertanggung jawab atas migrasi struktur basis data dan harus dimulai sebelum yang lain.
celery-backupPekerja Celery untuk pencadangan, hanya satu instansi yang harus dijalankan.
celery-celeryPekerja Celery umum.
celery-memoryMemori terjemahan pekerja Celery.
celery-notifyNotifikasi pekerja Celery.
celery-translateTerjemahan otomatis pekerja Celery.
webServer web.
Lihat juga
- WEBLATE_ANUBIS_URL¶
Added in version 5.11.4.
URL server Anubis untuk menangani autentikasi subpermintaan. Ini berguna untuk memfilter permintaan HTTP yang masuk menggunakan bukti pekerjaan untuk menghentikan perayap AI. Anda perlu mengkonfigurasikan Anubis untuk Autentikasi Subpermintaan agar berfungsi.
Lihat juga
Volume kontainer Docker¶
Ada dua volume (data dan cache) yang diekspor oleh kontainer Weblate.
Catatan
Kontainer layanan lain (seperti PostgreSQL atau Valkey) juga memiliki volume datanya masing-masing dan diperlukan untuk menjaga persistensi Weblate.
Kontainer PostgreSQL menyimpan basis data di volume /var/lib/postgresql dan Valkey di volume /data. Kontainer Valkey tidak menyimpan data secara bawaan dan memerlukan konfigurasi tambahan untuk mengaktifkan persistensi.
Dasarkan konfigurasi Anda pada contoh yang disediakan oleh Weblate atau lihat dokumentasinya untuk informasi lebih lanjut.
Volume data dipasang sebagai /app/data dan digunakan untuk menyimpan data persisten Weblate seperti repositori kloning atau untuk menyesuaikan pemasangan Weblate. DATA_DIR menjelaskan secara lebih rinci apa yang disimpan di sini.
Volume data juga merupakan tempat untuk menyimpan kustomisasi Weblate seperti Menimpa pengaturan dari volume data, Mengganti logo dan berkas statis lainnya atau Menyesuaikan kode.
Penempatan volume Docker pada sistem hos bergantung pada konfigurasi Docker Anda, tetapi biasanya disimpan di /var/lib/docker/volumes/weblate-docker_weblate-data/_data/ (jalur terdiri dari nama direktori docker-compose, kontainer, dan nama volume).
The cache volume is mounted as /app/cache and is used to store static
files and CACHE_DIR. Its content is recreated on container startup
and the volume can be mounted using ephemeral filesystem such as tmpfs, but
the mount has to allow execution because Weblate stores generated helper files
there.
When mounting /app/cache explicitly as tmpfs in Docker Compose,
enable execution:
tmpfs:
- /app/cache:exec
When also setting ownership options, keep the exec option:
tmpfs:
- /app/cache:exec,uid=1000,gid=1000
Saat membuat volume secara manual, direktori harus dimiliki oleh UID 1000 karena itulah yang digunakan pengguna di dalam kontainer.
Kontainer Weblate juga dapat dijalankan dengan sistem berkas root hanya baca. Dalam hal ini, dua volume tmpfs tambahan harus dipasang: /tmp dan /run.
Lihat juga
Sistem berkas root hanya baca¶
Added in version 4.18.
Saat menjalankan kontainer dengan sistem berkas root hanya baca, dua volume tmpfs tambahan diperlukan - /tmp dan /run.
Konfigurasi di luar variabel lingkungan¶
Variabel lingkungan Docker dimaksudkan untuk mengekspos sebagian besar pengaturan konfigurasi yang relevan untuk pemasangan Weblate.
Jika Anda menemukan pengaturan yang tidak diekspos sebagai variabel lingkungan, dan Anda yakin bahwa itu seharusnya diekspos, jangan ragu untuk menanyakan agar itu diungkapkan dalam versi Weblate mendatang.
Jika Anda perlu mengubah pengaturan yang tidak diekspos sebagai variabel lingkungan Docker, Anda masih dapat melakukannya, baik dari volume data atau meluaskan gambar Docker.
Lihat juga
Menimpa pengaturan dari volume data¶
Anda dapat membuat berkas di /app/data/settings-override.py, yaitu di akar volume data, untuk memperluaskan atau menimpakan pengaturan yang didefinisikan melalui variabel lingkungan.
Menimpa pengaturan dengan memperluas gambar Docker¶
Untuk menimpakan pengaturan pada tingkat gambar Docker dan bukan pada volume data:
Tambahkan modul ke paket Anda yang mengimpor semua pengaturan dari
weblate.settings_docker.Misalnya, dalam struktur paket contoh yang didefinisikan di Membuat modul Python, Anda dapat membuat berkas di
weblate_customization/weblate_customization/settings.pydengan kode awal berikut:from weblate.settings_docker import *
Buat
Dockerfilekustom yang mewarisi gambar Docker Weblate resmi, lalu memasang paket Anda dan mengarahkan variabel lingkunganDJANGO_SETTINGS_MODULEke modul pengaturan Anda: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
Daripada menggunakan gambar Docker Weblate resmi, bangun gambar kustom dari berkas
Dockerfileini.Tidak ada cara yang bersih <https://github.com/docker/compose/issues/7231>`__ untuk melakukan ini dengan
docker-compose.override.yml. Anda bisa menambahkanbuild: .ke simpulweblatedi berkas tersebut, tetapi gambar khusus Anda akan ditandai sebagaiweblate/weblatedi sistem Anda, yang bisa jadi bermasalah.Jadi, daripada menggunakan
docker-compose.ymllangsung dari repositori resmi, tanpa modifikasi, dan memperluasnya melaluidocker-compose.override.yml, Anda mungkin ingin membuat salinan berkas resmidocker-compose.yml, dan menyunting salinan Anda untuk menggantiimage: weblate/weblatedenganbuild: ..Lihat Referensi pembangunan berkas Compose untuk rincian tentang pembangunan gambar dari sumber saat menggunakan
docker-compose.Perluaskan modul pengaturan kustom Anda untuk mendefinisikan atau mendefinisikan ulang pengaturan.
Anda dapat menentukan pengaturan sebelum atau setelah pernyataan impor di atas untuk menentukan pengaturan mana yang diutamakan. Pengaturan yang didefinisikan sebelum pernyataan impor dapat ditimpa oleh variabel lingkungan dan penimpaan pengaturan yang didefinisikan dalam volume data. Pengaturan yang didefinisikan setelah pernyataan impor tidak dapat ditimpa.
Anda juga bisa melangkah lebih jauh. Misalnya, Anda dapat mereproduksikan beberapa hal yang dilakukan
weblate.docker_settingshttps://github.com/WeblateOrg/weblate/blob/main/weblate/settings_docker.py, seperti mengekspos pengaturan sebagai variabel lingkungan, atau mengizinkan penimpaan pengaturan dari berkas Python di volume data.
Mengganti logo dan berkas statis lainnya¶
Berkas statis yang disertakan dengan Weblate dapat ditimpa dengan menempatkannya di /app/data/python/customize/static (lihat Volume kontainer Docker). Misalnya, membuat /app/data/python/customize/static/favicon.ico akan menggantikan favicon.
Petunjuk
Berkas disalin ke lokasi terkait saat kontainer dimulai, jadi Weblate perlu dimulai ulang setelah mengubah konten volume.
Pendekatan ini juga dapat digunakan untuk menimpakan templat Weblate. Misalnya, dokumen Modul hukum dapat ditempatkan di /app/data/python/customize/templates/legal/documents.
Alternatifnya Anda juga dapat menyertakan modul Anda sendiri (lihat Menyesuaikan Weblate) dan menambahkannya sebagai volume terpisah ke kontainer Docker, misalnya:
weblate:
volumes:
- weblate-data:/app/data
- ./weblate_customization/weblate_customization:/app/data/python/weblate_customization
environment:
WEBLATE_ADD_APPS: weblate_customization
Menyesuaikan kode¶
Catatan
API internal Weblate mungkin sangat bervariasi antar rilis dan tidak dirancang untuk stabil. Harap tinjau kode kustom Anda yang berinteraksi dengan internal Weblate pada setiap peningkatan.
Anda dapat menambahkan kode Python tambahan ke dalam /app/data/python/customize (lihat Volume kontainer Docker). Kode ini sudah terpasang sebagai aplikasi Django di dalam Weblate (ini digunakan untuk menyesuaikan templat dan berkas statis seperti dijelaskan di atas).
Ini dapat digunakan untuk menempatkan kode apa pun (misalnya Menulis pemeriksaan sendiri) atau untuk menambahkan tugas pemeliharaan kustom ke penjadwal tugas 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"
)
Mengintegrasikan kontainer pihak ketiga¶
Pengaturan Docker Weblate dapat diperluas dengan kontainer tambahan untuk menyediakan layanan pelengkap seperti terjemahan mesin, pemeriksa ejaan, atau alat lain yang meningkatkan alur kerja terjemahan. Layanan ini dapat diintegrasikan ke dalam konfigurasi Docker Compose Anda dan bekerja bersama Weblate.
Saat menambahkan kontainer pihak ketiga, pertimbangkan hal berikut:
Konektivitas jaringan: Pastikan kontainer dapat berkomunikasi satu sama lain dengan menempatkannya di jaringan Docker yang sama
Persistensi data: Gunakan volume untuk layanan yang perlu menyimpan data
Keamanan: Konfigurasikan kontrol akses yang sesuai dan hindari mengekspos port yang tidak diperlukan
Integrasi kontainer Docker LibreTranslate¶
LibreTranslate adalah layanan terjemahan mesin bebas dan sumber terbuka yang dapat dihos sendiri. Integrasinya dengan Weblate menyediakan kemampuan terjemahan mesin luring tanpa bergantung pada layanan eksternal.
Anda dapat mengintegrasikan layanan LibreTranslate ke dalam deployment Weblate Anda dengan memasukkannya ke dalam berkas docker-compose.override.yml. Karena berjalan di dalam jaringan Docker, layanan ini hanya dapat diakses oleh Weblate dan tidak dapat diakses melalui internet publik.
Pengaturan dasar menggunakan 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:
Untuk terjemahan yang dipercepat GPU (jika Anda memiliki GPU NVIDIA yang tersedia):
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:
Setelah memulai layanan dengan docker compose down && docker compose up -d, konfigurasikan LibreTranslate di Weblate:
Akses antarmuka admin Weblate
Navigasikan ke Terjemahan mesin → Saran otomatis
Tambahkan layanan LibreTranslate baru dengan:
- Layanan:
LibreTranslate
- URL API:
http://libretranslate:5000- Kunci API:
Biarkan kosong
LibreTranslate sekarang dikonfigurasikan dan tersedia untuk terjemahan mesin di Weblate.
Catatan
Layanan LibreTranslate berjalan tanpa UI web (
--disable-web-ui) dan hanya dapat diakses melalui API dalam jaringan Docker.Model diperbarui secara otomatis saat kontainer dimulai. (
LT_UPDATE_MODELS: true)Data disimpan menggunakan volume Docker untuk kinerja dan keamanan data yang optimal.
Pemeriksaan kesehatan memastikan bahwa mesin Docker mengamati status layanan dengan benar.
Untuk akselerasi GPU, gunakan varian citra CUDA dan pastikan sistem Anda mendukung NVIDIA Docker. Kontainer ini berjalan sebagai pengguna akses agar dapat menggunakan GPU.
Tidak ada port eksternal yang terbuka, membuat pengaturan aman secara bawaan.
Integrasi kontainer Anubis Docker¶
Anubis adalah utilitas firewall AI web untuk memblokir scraper AI dan lalu lintas mengganggu lainnya di server. Biasanya diperlukan untuk instalasi Weblate yang terbuka untuk umum guna menghindari beban berlebih akibat scraping.
Anubis dapat disebarkan menggunakan Docker Compose:
anubis:
image: ghcr.io/techarohq/anubis:latest
environment:
BIND: ":8923"
DIFFICULTY: "4"
METRICS_BIND: ":9090"
SERVE_ROBOTS_TXT: "false"
OG_PASSTHROUGH: "false"
# The single space in TARGET enables subrequest authentication
TARGET: " "
# The redirect domain has to match WEBLATE_SITE_DOMAIN
REDIRECT_DOMAINS: weblate.example.com
# Generate a random private key using: openssl rand -hex 32
ED25519_PRIVATE_KEY_HEX: "..."
# Customize your Anubis policy
POLICY_FNAME: /data/botPolicies.yaml
healthcheck:
test: ["CMD", "anubis", "--healthcheck"]
interval: 5s
timeout: 30s
retries: 5
start_period: 500ms
volumes:
- anubis-data:/data
volumes:
anubis-data:
Catatan
Volume anubis-data dalam konfigurasi di atas diharapkan berisi botPolicies.yaml dengan kebijakan bot yang dikonfigurasikan sesuai kebutuhan Anda.
Minimalnya, Anda perlu menyesuaikan kode status seperti yang dijelaskan di https://anubis.techaro.lol/docs/admin/configuration/subrequest-auth.
Disarankan juga untuk mengkonfigurasikan backend penyimpanan persisten seperti yang dijelaskan di https://anubis.techaro.lol/docs/admin/policies/#storage-backends.
Anda kemudian dapat menyalakan penggunaan Anubis di Weblate menggunakan:
environment:
WEBLATE_ANUBIS_URL: http://anubis:8923
Lihat juga
Mengkonfigurasikan server PostgreSQL¶
Kontainer PostgreSQL menggunakan konfigurasi PostgreSQL bawaan dan tidak akan memanfaatkan inti CPU atau memori Anda secara efektif. Disarankan untuk menyesuaikan konfigurasi guna meningkatkan kinerja.
Konfigurasi dapat disesuaikan seperti yang dijelaskan dalam Konfigurasi Basis Data di https://hub.docker.com/_/postgres. Konfigurasi yang sesuai dengan lingkungan Anda dapat dibuat menggunakan https://pgtune.leopard.in.ua/.
Internal kontainer¶
Kontainer menggunakan supervisor untuk memulai layanan individual. Dalam kasus Menskalakan secara horizontal, kontainer hanya memulai satu layanan dalam satu kontainer.
Untuk memeriksa status layanan gunakan:
docker compose exec --user weblate weblate supervisorctl status
Terdapat layanan individual untuk setiap antrian Celery (lihat Tugas latar belakang menggunakan Celery untuk rinciannya). Anda dapat menghentikan pemrosesan beberapa tugas dengan menghentikan pekerja yang sesuai:
docker compose exec --user weblate weblate supervisorctl stop celery-translate