Treoracha cumraíochta

Suiteáil Weblate

Ag brath ar do shocrú agus ar an taithí atá agat, roghnaigh modh suiteála oiriúnach duit:

Forbhreathnú ar ailtireacht

digraph architecture { graph [fontname="sans-serif", fontsize=10, newrank=true, rankdir=LR, splines=ortho ]; node [fontname="sans-serif", fontsize=10, height=0, margin=.15, shape=box ]; edge [fontname="sans-serif", fontsize=10 ]; subgraph cluster_thirdparty { graph [color=lightgrey, label="Third-party services", style=filled ]; mt [label="Machine translation", style=dotted]; sentry [label="Sentry\nError collection", style=dotted]; graylog [label="Graylog\nLog collection", style=dotted]; mail [label="E-mail server"]; auth [label="SSO\nAuthentication provider", style=dotted]; } subgraph cluster_ingress { graph [color=lightgrey, label=Ingress, style=filled ]; web [label="Web server", shape=hexagon]; } subgraph cluster_weblate { graph [color=lightgrey, label="Weblate code-base", style=filled ]; celery [fillcolor="#144d3f", fontcolor=white, label="Celery workers", style=filled]; wsgi [fillcolor="#144d3f", fontcolor=white, label="WSGI server", style=filled]; } subgraph cluster_services { graph [color=lightgrey, label=Services, style=filled ]; redis [label="Datastore\nTask queue\nCache", shape=cylinder]; db [label="PostgreSQL\nDatabase", shape=cylinder]; fs [label=Filesystem, shape=cylinder]; } web -> wsgi; web -> fs; celery -> mt [style=dotted]; celery -> sentry [style=dotted]; celery -> graylog [style=dotted]; celery -> mail; celery -> redis; celery -> db; celery -> fs; wsgi -> mt [style=dotted]; wsgi -> sentry [style=dotted]; wsgi -> graylog [style=dotted]; wsgi -> auth [style=dotted]; wsgi -> redis; wsgi -> db; wsgi -> fs; }

Freastalaí gréasáin

Láimhseáil iarratais HTTP isteach, Comhaid statacha a sheirbheáil.

Oibrithe soilire

Tascanna cúlra ag baint úsáide as Soilire a fhorghníomhú anseo.

Ag brath ar d'ualach oibre, b'fhéidir gur mhaith leat líon na n-oibrithe a shaincheapadh.

Bain úsáid as nód tiomnaithe agus Weblate á scálaiú go cothrománach.

Freastalaí WSGI

Freastalaí WSGI a fhreastalaíonn ar leathanaigh ghréasáin d’úsáideoirí.

Bain úsáid as nód tiomnaithe agus Weblate á scálaiú go cothrománach.

Bunachar Sonraí

Freastalaí bunachar sonraí PostgreSQL chun an t-ábhar go léir a stóráil, féach Socrú bunachar sonraí le haghaidh Weblate.

Bain úsáid as nód bunachair shonraí tiomnaithe do shuímh ina bhfuil na céadta milliún focal óstaithe.

Stóras Sonraí

Stóras sonraí eochrach/luach amhail freastalaí Valkey nó Redis le haghaidh taisce agus scuaine tascanna, féach Tascanna cúlra ag baint úsáide as Soilire.

Bain úsáid as nód tiomnaithe agus Weblate á scálaiú go cothrománach.

Córas comhaid

Stóráil córais comhaid chun stórtha VCS agus sonraí úsáideoirí uaslódáilte a stóráil. Tá sé seo roinnte ag na próisis go léir.

Úsáid stóras líonraithe agus Weblate á scálaiú go cothrománach.

Freastalaí ríomhphoist

Freastalaí SMTP le haghaidh ríomhphoist amach, féach Ríomhphoist amach a chumrú. Is féidir é a sholáthar go seachtrach.

Hint

Tá PostgreSQL agus Valkey san áireamh i Suiteáil ag baint úsáide as Docker, rud a fhágann go bhfuil an suiteáil níos éasca.

Riachtanais bogearraí

Córas oibriucháin

Is eol go n-oibríonn Weblate ar Linux, FreeBSD agus macOS. Is dócha go n-oibreoidh córais eile cosúil le Unix freisin.

Ní thacaítear le Weblate ar Windows. Ach b’fhéidir go n-oibreoidh sé fós agus glactar le paistí go sona sásta.

See also

Forbhreathnú ar ailtireacht cur síos ar ailtireacht fhoriomlán Weblate agus na seirbhísí riachtanacha.

Cleithiúlachtaí Python

Tá Weblate scríofa i Python agus tacaíonn sé le Python 3.12 nó níos nuaí. Is féidir leat spleáchais a shuiteáil ag baint úsáide as pip nó ó do phacáistí dáilte, tá an liosta iomlán ar fáil i requirements.txt.

Na spleáchais is suntasaí:

Django

https://www.djangoproject.com/

Soilire

https://docs.celeryq.dev/

Translate Toolkit

https://toolkit.translatehouse.org/

aistritheoir-aimsitheoir

https://github.com/WeblateOrg/translation-finder

Údar Sóisialta Python

https://python-social-auth.readthedocs.io/

Fráma REST Django

https://www.django-rest-framework.org/

Spleáchais roghnacha

Sonróir spleáchais roghnach

Pacáistí Python

Gné gréasáin

amazon

Amazon Translate

gelf

Bainistíocht loga Graylog

gerrit

Gerrit review requests

google

Google Cloud Translation Advanced le tacaíocht gluais

ldap

Fíordheimhniú LDAP

mercurial

mearcair

postgres

PostgreSQL, féach Socrú bunachar sonraí le haghaidh Weblate

rollbar

Tuarascálacha earráide a bhailiú agus monatóireacht a dhéanamh ar fheidhmíocht

saml

Fíordheimhniú SAML

saml2idp

IDP SAML 2 a chomhtháthú isteach sa Ghréasán

sphinx

Riachtanach le haghaidh Nuashonraigh comhad POT (Sphinx)

wllegal

Comhtháthú Weblate a óstáil

wsgi

freastalaí wsgi do Weblate

zxcvbn

Fíordheimhniú pasfhocal

Nuair a shuiteáil tú ag baint úsáide as pip, is féidir leat a shonrú go díreach gnéithe inmhianaithe nuair a shuiteáil:

uv pip install "weblate[Postgres,Amazon,SAML]"

Nó is féidir leat Weblate a shuiteáil leis na gnéithe roghnacha go léir:

uv pip install "weblate[all]"

Nó is féidir leat Weblate a shuiteáil gan aon ghnéithe roghnacha:

uv pip install weblate

Fabhtcheartú suiteála pip

ERROR: Dependency 'gobject-introspection-2.0' is required but not found.

Ní féidir leis an bpacáiste PyGobject suiteáilte leabharlann GObject Introspection comhoiriúnach a aimsiú - gobject-introspection-2.0.

Ní thacaíonn Weblate le leaganacha níos sine a thuilleadh.

ffi_prep_closure(): bad user_data (it seems that the version of the libffi library seen at runtime is different from the 'ffi.h' file seen at compile-time)

Is é is cúis leis seo ná neamh-chomhoiriúnacht na bpacáistí dénártha a dháiltear trí PyPI leis an dáileadh. Chun aghaidh a thabhairt air seo, ní mór duit an pacáiste ar do chóras a atógáil:

uv pip install --force-reinstall --no-binary :all: cffi
error: ‘xmlSecKeyDataFormatEngine’ undeclared (first use in this function); did you mean ‘xmlSecKeyDataFormat’?

Is fadhb aitheanta í seo den phacáiste xmlsec, féach https://github.com/xmlsec/python-xmlsec/issues/314 le do thoil.

lxml & xmlsec libxml2 library version mismatch

Caithfear na pacáistí lxml agus xmlsec a thógáil i gcoinne libxml2 amháin. Ba chóir duit iad a thógáil go háitiúil chun an fhadhb seo a sheachaint:

uv pip install --force-reinstall --no-binary xmlsec --no-binary lxml lxml xmlsec

Riachtanais chórais eile

Ní mór na spleáchais seo a leanas a shuiteáil ar an gcóras:

Git

https://git-scm.com/

Pango, Cairo agus comhaid ceanntásca gaolmhara agus sonraí inbhreathnaitheachta GObject

https://cairographics.org/, https://www.gtk.org/docs/architecture/pango, féach Pango agus Caireo

git-review (roghnach do thacaíocht Gerrit)

https://pypi.org/project/git-review/

git-svn (roghnach le haghaidh tacaíochta Subversion)

https://git-scm.com/docs/git-svn

tesseract (ag teastáil ach amháin más rud é nach bhfuil tesserocr rothaí dénártha ar fáil le do chóras)

https://github.com/tesseract-ocr/tesseract

Spleáchais Tógála-am

Chun cuid de na Cleithiúlachtaí Python a thógáil b'fhéidir go mbeadh ort a gcuid spleáchais a shuiteáil. Braitheann sé seo ar conas a shuiteáil tú iad, mar sin féach ar phacáistí aonair le haghaidh doiciméadú. Ní bheidh siad sin de dhíth ort má tá Rothaí réamhthógtha in úsáid agat agus tú ag suiteáil le pip nó nuair a úsáideann tú pacáistí dáileacháin.

Pango agus Caireo

Úsáideann Weblate Pango agus Cairo chun giuirléidí mapa giotán a rindreáil (féach Ag tógáil an phobail aistriúcháin) agus chun seiceálacha a dhéanamh (féach Clónna a bhainistiú). Chun ceangail Python a shuiteáil i gceart dóibh siúd is gá duit leabharlanna córais a shuiteáil ar dtús - teastaíonn Cairo agus Pango araon, a dteastaíonn GLib uathu dá bharr. Ba cheart iad sin go léir a shuiteáil le comhaid forbartha agus sonraí inbhreathnaitheachta GObject.

Riachtanais crua-earraí

Ba cheart go n-oibreodh Weblate ar aon chrua-earraí comhaimseartha gan fadhbanna, seo a leanas an chumraíocht íosta a theastaíonn chun Weblate a rith ar óstach amháin (Weblate, bunachar sonraí agus freastalaí gréasáin):

  • 3 GB RAM

  • 2 chroílár LAP

  • 1 GB de spás stórála

Note

Bíonn éagsúlacht mhór ag baint le riachtanais iarbhír do shuiteáil Weblate bunaithe ar mhéid na n-aistriúchán a bhainistítear ann.

Úsáid cuimhne

An níos mó cuimhne is amhlaidh is fearr - úsáidtear é le haghaidh taisceadh ar gach leibhéal (córas comhaid, bunachar sonraí agus Weblate). Maidir leis na céadta comhpháirteanna aistriúcháin, moltar 4 GB RAM ar a laghad.

Hint

Maidir le córais a bhfuil níos lú cuimhne acu ná mar a mholtar, moltar Socrú Soilire aonphróisis.

Úsáid LAP

Méadaíonn go leor úsáideoirí comhthráthacha an méid croíleacáin LAP atá ag teastáil.

Úsáid stórála

Is é an gnáthúsáid stórála bunachar sonraí ná thart ar 300 MB in aghaidh an 1 milliún focal óstaithe.

Ní hionann an spás stórála a theastaíonn le haghaidh stórtha clónáilte, ach déanann Weblate iarracht a méid a choinneáil íosta trí chlóin éadomhain a dhéanamh.

Nóid

Maidir le suíomhanna beaga agus meánmhéide (na milliúin focal óstáilte), is féidir gach comhpháirteanna Weblate (féach Forbhreathnú ar ailtireacht) a reáchtáil ar nód amháin.

Nuair a fhásann tú go dtí na céadta milliún focal óstaithe, moltar nód tiomnaithe a bheith agat don bhunachar sonraí (féach Socrú bunachar sonraí le haghaidh Weblate).

Sínithe eisiúna á bhfíorú

Sínítear go cripteagrafach le heisiúint an tsuímh ghréasáin ag baint úsáide as Sínithe Sigstore. Tá na sínithe ceangailte leis an scaoileadh GitHub.

Is féidir an fíorú a dhéanamh trí úsáid a bhaint as pacáiste sigstore. Fíoraíonn an sampla seo a leanas síniú eisiúint 5.4:

sigstore verify github \
   --cert-identity https://github.com/WeblateOrg/weblate/.github/workflows/setup.yml@refs/tags/weblate-5.4 \
   --bundle Weblate-5.4-py3-none-any.whl.sigstore \
   Weblate-5.4-py3-none-any.whl

Ceadanna córas comhaid

Caithfidh an próiseas Weblate a bheith in ann léamh agus scríobh chuig an eolaire ina gcoinníonn sé sonraí - DATA_DIR. Ba chóir go mbeadh gach comhad laistigh den eolaire seo faoi úinéireacht agus inscríofa ag an úsáideoir a reáchtáil gach próiseas Weblate (de ghnáth WSGI agus Soilire, féach Freastalaí ag rith agus Tascanna cúlra ag baint úsáide as Soilire).

Cuireann an chumraíocht réamhshocraithe iad sa chrann céanna leis na foinsí Weblate, ach b'fhéidir gurbh fhearr leat iad seo a bhogadh go suíomh níos fearr mar: /var/lib/weblate.

Déanann Weblate iarracht na heolairí seo a chruthú go huathoibríoch, ach teipfidh air nuair nach bhfuil cead aige é sin a dhéanamh.

The configured CACHE_DIR also has to be writable by the Weblate process and has to allow executing generated helper files. Do not mount CACHE_DIR with the noexec option.

Ba cheart duit a bheith cúramach freisin agus tú ag rith Orduithe bainistíochta, mar ba cheart iad a rith faoin úsáideoir céanna atá Weblate féin ag rith, nó d'fhéadfadh ceadanna ar roinnt comhad a bheith mícheart.

Sa choimeádán Docker, caithfidh gach comhad sa toirte /app/data a bheith faoi úinéireacht ag an úsáideoir weblate taobh istigh den choimeádán (UID 1000).

Socrú bunachar sonraí le haghaidh Weblate

Moltar Weblate a rith le freastalaí bunachar sonraí PostgreSQL.

Tacaítear le PostgreSQL 13 agus níos airde. Moltar PostgreSQL 15 nó níos nuaí.

Naisc bunachar sonraí

Sa chumraíocht réamhshocraithe, coinníonn gach próiseas Weblate nasc leanúnach leis an mbunachar sonraí. Feabhsaíonn naisc leanúnacha freagarthacht Weblate, ach d'fhéadfadh go mbeadh níos mó acmhainní ag teastáil ón bhfreastalaí Téigh i gcomhair CONN_MAX_AGE agus: Persistent connections le haghaidh tuilleadh eolais.

Tá an líon nasc seo a leanas ar a laghad ag teastáil ó Weblate:

  • \((4 \times \mathit{nCPUs}) + 2\) le haghaidh próisis Soilire

  • \(\mathit{nCPUs} + 1\) d'oibrithe WSGI

Baineann sé seo le mainneachtainí coimeádán Docker agus cumraíochtaí mar shampla a sholáthraítear sa doiciméadú seo, ach athrófar na huimhreacha nuair a shaincheapann tú méid oibrithe WSGI nó nuair a choigeartóidh tú comhthreomhar Soilire.

Ní mór an teorainn iarbhír do líon na nasc bunachar sonraí a bheith níos airde chun cuntas a thabhairt sna cásanna seo a leanas:

  • Teastaíonn a nasc ó Orduithe bainistíochta freisin.

  • Má mharaítear próiseas cáis (mar shampla ag maor OOM), d’fhéadfadh sé go gcuirfeadh sé bac ar an nasc atá ann cheana féin go dtí an teorainn ama.

PostgreSQL

Is gnách gurb é PostgreSQL an rogha is fearr do shuíomhanna atá bunaithe ar Django. Is é an bunachar sonraí tagartha a úsáidtear chun ciseal bunachar sonraí Django a chur i bhfeidhm.

Note

Úsáideann Weblate síneadh trigram a chaithfear a shuiteáil ar leithligh i gcásanna áirithe. Cuardaigh postgresql-contrib nó pacáiste den chineál céanna.

See also

PostgreSQL notes

Bunachar sonraí a chruthú i PostgreSQL

De ghnáth is smaoineamh maith é Weblate a rith i mbunachar sonraí ar leith, agus cuntas úsáideora ar leith:

# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"

# Create a database user called "weblate"
sudo -u postgres createuser --superuser --pwprompt weblate

# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate

Hint

Mura dteastaíonn uait an t-úsáideoir Weblate a dhéanamh ina shár-úsáideoir in PostgreSQL, is féidir é sin a fhágáil ar lár. Sa chás sin beidh ort cuid de na céimeanna aistrithe a dhéanamh de láimh mar úsáidfidh sár-úsáideoir PostgreSQL sa scéimre Weblate:

CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS btree_gin;

Weblate a chumrú chun PostgreSQL a úsáid

An snippet settings.py do PostgreSQL:

DATABASES = {
    "default": {
        # Database engine
        "ENGINE": "django.db.backends.postgresql",
        # Database name
        "NAME": "weblate",
        # Database user
        "USER": "weblate",
        # Configures name of the PostgreSQL role to alter during the database migration
        # "ALTER_ROLE": "weblate",
        # Database password
        "PASSWORD": "password",
        # Set to empty string for localhost
        "HOST": "database.example.com",
        # Set to empty string for default
        "PORT": "",
        # Persistent connections
        "CONN_MAX_AGE": None,
        "CONN_HEALTH_CHECKS": True,
    }
}

Feidhmíonn an t-aistriú bunachar sonraí ALTER ROLE ar an ról bunachar sonraí a úsáideann Weblate. I bhformhór na gcásanna, tagann ainm an róil leis an ainm úsáideora. I socruithe níos casta tá ainm an róil difriúil ón ainm úsáideora, agus gheobhaidh tú earráid maidir le ról nach bhfuil ann cheana féin le linn aistriú an bhunachair sonraí (psycopg2.errors.UndefinedObject: role "weblate@hostname" is not exist). Is eol go dtarlóidh sé seo le Bunachar Sonraí Azure do PostgreSQL, ach níl sé teoranta don timpeallacht seo. Socraigh ALTER_ROLE le do thoil chun ainm an róil ar cheart do Weblate a athrú le linn aistriú an bhunachair sonraí a athrú.

Cumraíochtaí eile

Ríomhphoist amach a chumrú

Seolann Weblate r-phoist ar ócáidí éagsúla - chun cuntais a ghníomhachtú agus ar fhógraí éagsúla a chumraíonn úsáideoirí. Chuige seo teastaíonn rochtain ar fhreastalaí SMTP air.

Cumraítear socrú an fhreastalaí ríomhphoist ag baint úsáide as na socruithe seo EMAIL_HOST, EMAIL_HOST_PASSWORD, EMAIL_USE_TLS, EMAIL_USE_SSL, EMAIL_HOST_USER and EMAIL_PORT. Tá a n-ainmneacha féinmhínithe go leor, ach is féidir leat tuilleadh faisnéise a fháil i ndoiciméadú Django.

Hint

Sa chás go bhfaigheann tú earráid faoi fhíordheimhniú nach dtacaítear leis (mar shampla SMTP AUTH extension not supported by server), is dóichí gur nasc neamhshlán is cúis leis agus go ndiúltaíonn an freastalaí fíordheimhniú a dhéanamh ar an mbealach seo. Bain triail as EMAIL_USE_TLS a chumasú sa chás sin.

Rith taobh thiar seachfhreastalaí droim ar ais

Braitheann roinnt gnéithe i Weblate ar cheanntásca HTTP cearta a chur chuig Weblate. Agus seachfhreastalaí droim ar ais á úsáid agat, déan cinnte go gcuirtear an fhaisnéis riachtanach ar aghaidh i gceart.

Chun an chumraíocht seo a dhífhabhtú, is féidir leat féachaint ar HTTP environment i Tuarascáil feidhmíochta.

Seoladh IP an chliaint

Tá sé seo ag teastáil le haghaidh Teorainn rátaíLoga iniúchta.

Déanann Weblate parsáil ar an seoladh IP ón REMOTE_ADDR, atá socraithe ag an láimhseálaí WSGI. D’fhéadfadh sé seo a bheith folamh (nuair a úsáidtear soicéad le haghaidh WSGI) nó seoladh seachfhreastalaí droim ar ais a bheith ann, mar sin teastaíonn ceanntásc HTTP breise le seoladh IP cliaint ó Weblate.

Ba cheart go mbeadh IP_BEHIND_REVERSE_PROXY leordhóthanach do na socruithe is gnách, ach b'fhéidir go mbeadh ort IP_PROXY_HEADER agus IP_PROXY_OFFSET a choigeartú chomh maith (bain úsáid as WEBLATE_IP_PROXY_HEADER agus WEBLATE_IP_PROXY_OFFSET sa choimeádán Docker).

Hint

Ní féidir an chumraíocht seo a chasadh air de réir réamhshocraithe, mar go gceadódh sé bréagadóireacht seoltaí IP ar shuiteálacha nach bhfuil seachfhreastalaí droim ar ais cumraithe i gceart acu.

Ainm óstach an fhreastalaí

Ba chóir go mbeadh an ceanntásc Host ag teacht leis an méid atá cumraithe mar SITE_DOMAIN. D’fhéadfadh go mbeadh gá le cumraíocht bhreise i do sheachfhreastalaí droim ar ais (mar shampla bain úsáid as ProxyPreserveHost On le haghaidh Apache nó proxy_set_header Host $host; le nginx).

Hint

Is minic a bhíonn earráidí teipthe fíoraithe CSRF mar gheall ar neamhréir idir an ceanntásc Host agus an SITE_DOMAIN cumraithe.

Prótacal cliant

Mura gcuirtear an prótacal ceart i bhfeidhm, d’fhéadfadh sé go mbeadh Weblate i lúb atreoraithe agus é ag iarraidh an cliant a uasghrádú go HTTPS. Cinntigh go bhfuil sé nochta i gceart ag an seachfhreastalaí droim ar ais mar X-Forwarded-Proto.

Ansin ní mór an ceanntásc seo a chumrú i SECURE_PROXY_SSL_HEADER (settings.py) nó WEBLATE_SECURE_PROXY_SSL_HEADER (timpeallacht Docker).

Important

Tá luach an cheanntásca íogair ó thaobh cás de sa chumraíocht, mar sin níl WEBLATE_SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTO,https agus WEBLATE_SECURE_PROXY_SSL_HEADER=HTTP_X_FORWARDED_PROTO,HTTPS inmhalartaithe.

Hint

Má tá earráid "An iomarca atreoruithe" á fáil agat ón mbrabhsálaí, is dóichí gur easaontas idir an prótacal iarbhír (HTTPS) agus an méid a fheiceann Weblate is cúis leis seo.

Changed in version 5.13: Déantar ceanntásca seachfhreastalaí an phrótacail a láimhseáil go huathoibríoch ag gunicorn sa chumraíocht réamhshocraithe, ach tá cumraíocht níos sláine ag freastalaithe WSGI eile agus teastaíonn socruithe sainráite chuige seo uathu.

Ó Weblate 5.13 i leith, tá granian á úsáid ag an gcoimeádán Docker agus teastaíonn cumraíocht shoiléir WEBLATE_SECURE_PROXY_SSL_HEADER anois.

seachfhreastalaí HTTP

Feidhmíonn Weblate orduithe VCS agus glacann siad leo cumraíocht seachfhreastalaí ón gcomhshaol. Is é an cur chuige a mholtar socruithe seachfhreastalaí a shainiú in settings.py:

import os

os.environ["http_proxy"] = "http://proxy.example.com:8080"
os.environ["HTTPS_PROXY"] = "http://proxy.example.com:8080"

Cumraíocht a choigeartú

Cóipeáil weblate/settings_example.py chuig weblate/settings.py agus é a choigeartú chun do shocrú a mheaitseáil. Is dócha gur mhaith leat na roghanna seo a leanas a choigeartú:

ADMINS

Liosta de riarthóirí láithreáin a gheobhaidh fógraí nuair a théann rud éigin mícheart, mar shampla fógraí ar chumaisc theipthe, nó earráidí Django.

Seolann an fhoirm teagmhála r-phost orthu seo freisin ach amháin má tá ADMINS_CONTACT cumraithe.

ALLOWED_HOSTS

Ní mór duit é seo a shocrú chun liosta a dhéanamh de na hóstach a bhfuil do shuíomh ceaptha freastal orthu. Mar shampla:

ALLOWED_HOSTS = ["demo.weblate.org"]

Nó is féidir leat saoróg a chur san áireamh:

ALLOWED_HOSTS = ["*"]

SESSION_ENGINE

Cumraigh conas a stórálfar do sheisiúin. Sa chás go gcoinníonn tú inneall réamhshocraithe an bhunachair shonraí, ba cheart duit na nithe seo a leanas a sceidealú: weblate clearsessions chun seansonraí seisiúin a bhaint den bhunachar sonraí.

Más Valkey nó Redis atá in úsáid agat mar thaisce (féach Cumraigh an taisce) moltar é a úsáid le haghaidh seisiún chomh maith:

SESSION_ENGINE = "django.contrib.sessions.backends.cache"

DATABASES

Nascacht le freastalaí bunachar sonraí, seiceáil doiciméadú Django le haghaidh tuilleadh sonraí.

DEBUG

Díchumasaigh é seo d'aon fhreastalaí táirgeachta. Agus an modh dífhabhtaithe cumasaithe, taispeánfaidh Django rianaithe cúltaca i gcás earráide d'úsáideoirí, agus nuair a dhíchumasaíonn tú é, seolfar earráidí trí ríomhphost chuig ADMINS (féach thuas).

Moillíonn modh dífhabhtaithe Weblate freisin, toisc go stórálann Django i bhfad níos mó faisnéise go hinmheánach sa chás seo.

DEFAULT_FROM_EMAIL

Seoladh ríomhphoist seoltóra le haghaidh r-phoist atá ag dul as oifig, mar shampla r-phoist clárúcháin.

SECRET_KEY

An eochair a úsáideann Django chun roinnt faisnéise a shíniú i bhfianáin, féach Django eochair rúnda le haghaidh tuilleadh eolais.

See also

SECRET_KEY

SERVER_EMAIL

R-phost a úsáidtear mar sheoladh seoltóra chun r-phoist a sheoladh chuig an riarthóir, mar shampla fógraí ar chumaisc theip.

See also

SERVER_EMAIL

An bunachar sonraí a líonadh

Nuair a bheidh do chumraíocht réidh, is féidir leat migrate a rith chun struchtúr an bhunachair shonraí a chruthú. Anois, ba cheart go mbeifeá in ann tionscadail aistriúcháin a chruthú leis an gcomhéadan riaracháin.

Nuair a bheidh tú críochnaithe, ba cheart duit an Tuairisc feidhmíochta a sheiceáil sa chomhéadan riaracháin, a thabharfadh leideanna duit maidir le cumraíocht féideartha neamh-optamach ar do shuíomh.

Socrú táirgeachta

Le haghaidh socrú táirgeachta ba cheart duit na coigeartuithe a thuairiscítear sna hailt seo a leanas a dhéanamh. Spreagfaidh na socruithe is tábhachtaí rabhadh, a léirítear le comhartha sceimhle sa bharra uachtarach má tá tú sínithe isteach mar shárúsáideoir:

../_images/admin-wrench.webp

Moltar freisin seiceálacha arna dtionscnamh ag Django a iniúchadh (cé go mb’fhéidir nach mbeadh ort iad go léir a shocrú):

weblate check --deploy

Is féidir leat an seicliosta céanna a athbhreithniú freisin ag Tuarascáil feidhmíochta sa Comhéadan bainistíochta.

Díchumasaigh mód dífhabhtaithe

Díchumasaigh modh dífhabhtaithe Django (DEBUG) trí:

DEBUG = False

Agus modh dífhabhtaithe ar siúl, stórálann Django gach fiosrúchán a rinneadh agus taispeánann sé cúlrianta earráidí d'úsáideoirí, rud nach bhfuil ag teastáil i socrú táirgeachta.

Riarthóirí a chumrú i gceart

Socraigh na seoltaí riaracháin cearta chuig an socrú ADMINS chun a shainiú cé a gheobhaidh r-phoist ar eagla go n-éireoidh rud éigin mícheart ar an bhfreastalaí, mar shampla:

ADMINS = ("Your Name <your_email@example.com>",)

Socraigh fearann suímh ceart

Coigeartaigh ainm agus fearann an tsuímh sa chomhéadan riaracháin, nó ní oibreoidh naisc i RSS nó ríomhphoist clárúcháin. Tá sé seo cumraithe ag baint úsáide as SITE_DOMAIN ar cheart ainm fearainn an tsuímh a bheith ann.

Changed in version 4.2: Sular eisíodh 4.2 úsáideadh creat suíomhanna Django ina ionad sin, féach The “sites” framework.

Cumraigh HTTPS i gceart

Moltar go láidir Weblate a rith ag baint úsáide as an bprótacal HTTPS criptithe. Tar éis duit é a chumasú, ba cheart duit ENABLE_HTTPS a shocrú sna socruithe:

ENABLE_HTTPS = True

Hint

B'fhéidir gur mhaith leat HSTS a shocrú freisin, féach SSL/HTTPS le haghaidh tuilleadh sonraí.

Socraigh i gceart SECURE_HSTS_SECONDS

Má sheirbheáltar do shuíomh thar SSL, caithfidh tú smaoineamh ar luach a shocrú le haghaidh SECURE_HSTS_SECONDS sna settings.py chun slándáil iompair docht HTTP a chumasú. De réir réamhshocraithe tá sé socraithe go 0 mar a thaispeántar thíos.

SECURE_HSTS_SECONDS = 0

Má shocraítear é ar luach slánuimhir neamh-nialas, socraíonn an django.middleware.security.SecurityMiddleware an ceanntásc HTTP Strict Transport Security ar gach freagra nach bhfuil ann cheana é.

Warning

Má shocraítear é seo go mícheart, féadtar do shuíomh a bhriseadh go dochúlaithe (go ceann tamaill). Léigh an doiciméadú HTTP Strict Transport Security ar dtús.

Bain úsáid as inneall bunachar sonraí cumhachtach

  • Úsáid PostgreSQL le haghaidh timpeallacht táirgeachta, féach Socrú bunachar sonraí le haghaidh Weblate le haghaidh tuilleadh faisnéise.

  • Bain úsáid as an suíomh cóngarach chun an freastalaí bunachar sonraí a rith, nó d'fhéadfadh an fheidhmíocht líonraithe nó iontaofacht do thaithí Weblate a mhilleadh.

  • Seiceáil feidhmíocht an fhreastalaí bunachar sonraí nó tweak a chumraíocht, mar shampla ag baint úsáide as PGTune.

Cumraigh an taisce

Más féidir, bain úsáid as Valkey nó Redis ó Django tríd an athróg chumraíochta CACHES a choigeartú, mar shampla:

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379/0",
        # If redis is running on same host as Weblate, you might
        # want to use unix sockets instead:
        # 'LOCATION': 'unix:///var/run/redis/redis.sock?db=0',
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
        },
    }
}

Hint

Sa chás go n-athraíonn tú socruithe don taisce, b'fhéidir go mbeadh ort iad a choigeartú le haghaidh Soilire chomh maith, féach Tascanna cúlra ag baint úsáide as Soilire.

Taisce avatar

Chomh maith le taisceadh Django, déanann Weblate caching avatars. Moltar taisce ar leith, comhad-thacaithe a úsáid chun na críche seo:

CACHES = {
    "default": {
        # Default caching backend setup, see above
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "unix:///var/run/redis/redis.sock?db=0",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "PARSER_CLASS": "redis.connection.HiredisParser",
        },
    },
    "avatar": {
        "BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
        "LOCATION": os.path.join(DATA_DIR, "avatar-cache"),
        "TIMEOUT": 604800,
        "OPTIONS": {
            "MAX_ENTRIES": 1000,
        },
    },
}

Cumraigh seoladh r-phoist

Ní mór do Weblate r-phoist a sheoladh roinnt uaireanta, agus ba cheart go mbeadh an seoladh seoltaí ceart ag na r-phoist seo, cumraigh le do thoil SERVER_EMAIL agus DEFAULT_FROM_EMAIL chun teacht le do thimpeallacht, mar shampla:

SERVER_EMAIL = "admin@example.org"
DEFAULT_FROM_EMAIL = "weblate@example.org"

Note

Chun seoladh ríomhphoist a dhíchumasú trí Weblate tacair EMAIL_BACKEND chuig django.core.mail.backends.dummy.EmailBackend.

Díchumasóidh sé seo seachadadh ríomhphoist gach lena n-áirítear clárú nó r-phoist athshocraithe pasfhocail.

Ceadaíodh socrú na n-óstach

Éilíonn Django ALLOWED_HOSTS chun liosta d'ainmneacha fearainn a shealbhú ceadaítear do shuíomh a sheirbheáil, rud a fhágfaidh sé folamh bac ar aon iarratais.

Sa chás nach bhfuil sé seo cumraithe le do fhreastalaí HTTP a mheaitseáil, gheobhaidh tú earráidí mar Ceanntásc neamhbhailí HTTP_HOST: '1.1.1.1'. Seans go mbeidh ort '1.1.1.1' a chur le ALLOWED_HOSTS.

Hint

Ar an gcoimeádán Docker, tá sé seo ar fáil mar WEBLATE_ALLOWED_HOSTS.

Django eochair rúnda

Úsáideann Django an socrú SECRET_KEY chun fianáin a shíniú, agus ba cheart duit do luach féin a ghiniúint i ndáiríre seachas an ceann ón socrú samplach a úsáid.

Is féidir leat eochair nua a ghiniúint ag baint úsáide as weblate-generate-secret-key seolta le Weblate.

See also

SECRET_KEY

Tascanna cothabhála a rith

Chun feidhmíocht is fearr a fháil, is smaoineamh maith roinnt tascanna cothabhála a reáchtáil sa chúlra. Déanann sé seo go huathoibríoch ó Tascanna cúlra ag baint úsáide as Soilire agus clúdaíonn sé na tascanna seo a leanas:

  • Seiceáil sláinte cumraíochta (in aghaidh na huaire).

  • Athruithe atá ar feitheamh (in aghaidh na huaire) a dhéanamh, féach Geallann leisciúil agus commit_pending.

  • Foláirimh chomhpháirt a nuashonrú (laethúil).

  • Nuashonraigh cianbhrainsí (go h-oíche), féach AUTO_UPDATE.

  • Cúltaca cuimhne aistriúcháin go JSON (go laethúil), féach dump_memory.

  • Tascanna cothabhála lántéacs agus bunachar sonraí (tascanna laethúla agus seachtainiúla), féach cleanuptrans.

Logánú córais agus ionchódú

Ba cheart logaí an chórais a chumrú chuig na cinn atá in ann UTF-8. Ar fhormhór dáiltí Linux is é seo an socrú réamhshocraithe. Ar eagla nach bhfuil sé amhlaidh ar do chóras, athraigh logaí go leagan UTF-8 le do thoil.

Mar shampla trí /etc/default/locale a chur in eagar agus socrú ann LANG="C.UTF-8".

I gcásanna áirithe tá cumraíocht ar leith ag na seirbhísí aonair le haghaidh locales. Athraíonn sé seo idir dáileadh agus freastalaithe gréasáin, mar sin seiceáil doiciméadú do phacáistí freastalaí gréasáin chuige sin.

Úsáideann Apache ar Ubuntu /etc/apache2/envvars:

export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

Úsáideann Apache ar CentOS /etc/sysconfig/httpd (nó /opt/rh/httpd24/root/etc/sysconfig/httpd):

LANG='en_US.UTF-8'

Ag baint úsáide as údarás deimhnithe saincheaptha

Fíoraíonn Weblate deimhnithe SSL le linn iarratais HTTP. I gcás go bhfuil tú ag baint úsáide as údarás deimhnithe saincheaptha nach bhfuil iontaofa i mbearta réamhshocraithe, beidh ort a theastas a chur leis mar a bhfuil muinín agat as.

Is é an cur chuige is fearr é seo a dhéanamh ar leibhéal an chórais, seiceáil do dhoiciméadú distro le haghaidh tuilleadh sonraí (mar shampla ar debian is féidir é seo a dhéanamh tríd an deimhniú CA a chur i /usr/local/share/ca-certificates/ agus running update-ca-certificates).

Hint

Ní chuireann an coimeádán Weblate san áireamh sa chonair chuardaigh, ní mór duit cosán iomlán a shonrú chun é a rith. Mar shampla:

docker compose exec -u root weblate /usr/sbin/update-ca-certificates

Nuair a bheidh sé seo déanta, beidh muinín ag uirlisí córais sa deimhniú agus cuimsíonn sé seo Git.

Maidir le cód Python, beidh ort iarratais a chumrú chun beartán CA córais a úsáid in ionad an ceann a sheoltar leis. Is féidir é seo a bhaint amach tríd an snippet seo a leanas a chur chuig settings.py (tá an cosán go sonrach le Debian):

import os

os.environ["REQUESTS_CA_BUNDLE"] = "/etc/ssl/certs/ca-certificates.crt"

Sócmhainní cliaint a chomhbhrú

Tagann Weblate le dornán comhaid JavaScript agus CSS. Ar chúiseanna feidhmíochta is maith iad a chomhbhrú sula gcuirtear chuig cliant iad. I gcumraíocht réamhshocraithe déantar é seo ar an eitilt ar chostas beag forchostais. Ar shuiteálacha móra, moltar modh comhbhrú as líne a chumasú. Ní mór é seo a dhéanamh sa chumraíocht agus ní mór an comhbhrú a spreagadh ar gach uasghrádú Weblate.

Tá an lasc cumraíochta simplí trí django.conf.settings.COMPRESS_OFFLINE a chumasú agus django.conf.settings.COMPRESS_OFFLINE_CONTEXT a chumasú (tá an ceann deireanach san áireamh sa chumraíocht shamplach cheana féin):

COMPRESS_OFFLINE = True

Ar gach imscaradh ní mór duit na comhaid a chomhbhrú chun an leagan reatha a mheaitseáil:

weblate compress

Hint

Tá an ghné seo cumasaithe cheana féin ag íomhá oifigiúil an Docker.

Freastalaí ag rith

Hint

Sa chás nach bhfuil taithí agat ar na seirbhísí a gcuirtear síos orthu thíos, b'fhéidir gur mhaith leat triail a bhaint as Suiteáil ag baint úsáide as Docker.

Beidh roinnt seirbhísí ag teastáil uait chun Weblate a rith, is é atá sa socrú molta:

Note

Tá roinnt spleáchais idir na seirbhísí, mar shampla ba chóir go mbeadh taisce agus bunachar sonraí ar siúl agus próisis Soilire nó uwsgi á gcur ar bun.

I bhformhór na gcásanna, reáchtálfaidh tú na seirbhísí go léir ar fhreastalaí aonair (fíorúil), ach i gcás go bhfuil do shuiteáil ualach trom, is féidir leat na seirbhísí a roinnt. Is é an t-aon teorainn leis seo ná go dteastaíonn rochtain ó fhreastalaithe Soilire agus Wsgi ar DATA_DIR.

Note

Ní mór an próiseas WSGI a chur i gcrích faoin úsáideoir céanna agus an próiseas Soilire, nó déanfar comhaid sa DATA_DIR a stóráil le húinéireacht mheasctha, rud a fhágfaidh go mbeidh saincheisteanna am rite ann.

Féach freisin Ceadanna córas comhaid agus Tascanna cúlra ag baint úsáide as Soilire.

Freastalaí gréasáin a rith

Níl aon difríocht idir Rith Weblate agus aon chlár eile atá bunaithe ar Django a rith. De ghnáth déantar Django a fhorghníomhú mar WSGI nó fcgi (féach samplaí le haghaidh freastalaithe gréasáin éagsúla thíos).

Note

The sample configuration files shown below are maintained in the Weblate source tree under weblate/examples/. They are included in source distributions and in this documentation, but Python wheels only install runtime files. When installing Weblate from PyPI, get the matching source distribution or source checkout before copying these examples.

Chun críocha tástála, is féidir leat an freastalaí gréasáin ionsuite in Django a úsáid:

weblate runserver

Warning

NÁ ÚSÁID AN FREAGRACH SEO I SUÍOMH TÁIRGEADH. Ní dheachaigh sé trí iniúchtaí slándála nó tástálacha feidhmíochta. Féach freisin doiciméadú Django ar runserver.

Hint

Ní fhreastalaíonn an freastalaí ionsuite Django ach comhaid statach nuair a bhíonn DEBUG cumasaithe mar go bhfuil sé beartaithe le haghaidh forbartha amháin. Le húsáid i dtáirgeadh, féach socruithe WSGI le do thoil:

Comhaid statacha a sheirbheáil

Changed in version 5.15.2: Ní úsáidtear /media/ a thuilleadh chun scáileáin a sheirbheáil.

Ní mór do Django a chomhaid statacha a bhailiú in aon eolaire amháin. Chun é sin a dhéanamh, rith weblate collectstatic --noinput. Déanfaidh sé seo na comhaid statacha a chóipeáil isteach in eolaire atá sonraithe ag an socrú STATIC_ROOT (réamhshocraithe é seo chuig eolaire statach taobh istigh de CACHE_DIR).

Moltar comhaid statacha a sheirbheáil go díreach ó do fhreastalaí gréasáin, ba cheart duit é a úsáid le haghaidh na gcosán seo a leanas:

/static/

Freastalaíonn sé ar chomhaid statacha do Weblate agus don chomhéadan riaracháin (ó shainithe ag STATIC_ROOT).

/favicon.ico

Ba chóir é a athscríobh chun riail a athscríobh chun freastalaí /static/favicon.ico.

Beartas slándála ábhair

Cumasaíonn cumraíocht réamhshocraithe Weblate weblate.middleware.SecurityMiddleware lárearraí a shocraíonn ceanntásca HTTP a bhaineann le slándáil mar Content-Security-PolicyX-XSS-Protection. Socraítear iad seo de réir réamhshocraithe chun oibriú le Weblate agus a chumraíocht, ach d’fhéadfadh go mbeadh gá le saincheaptha le do thimpeallacht.

Cumraíocht shamplach do NGINX agus Granian

Ritheann an chumraíocht seo a leanas Weblate ag baint úsáide as Granian, an freastalaí gréasáin NGINX:

weblate/examples/weblate.nginx.granian.conf
#
# nginx configuration for Weblate
#
# You will want to change:
#
# - server_name
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
server {
    listen 80;
    server_name weblate;
    # Not used
    root /var/www/html;

    location ~ ^/favicon.ico$ {
        # CACHE_DIR/static/favicon.ico
        alias /home/weblate/data/cache/static/favicon.ico;
        expires 30d;
    }

    location /static/ {
        # CACHE_DIR/static/
        alias /home/weblate/data/cache/static/;
        expires 30d;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_pass http://127.0.0.1:8888;
        proxy_read_timeout 3600;
    }
}

Cumraíocht shamplach do NGINX agus Gunicorn

The following configuration runs Weblate using Gunicorn under the NGINX webserver (weblate/examples/weblate.nginx.gunicorn.conf in the source tree):

#
# nginx configuration for Weblate
#
# You will want to change:
#
# - server_name
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
server {
    listen 80;
    server_name weblate;
    # Not used
    root /var/www/html;

    location ~ ^/favicon.ico$ {
        # CACHE_DIR/static/favicon.ico
        alias /home/weblate/data/cache/static/favicon.ico;
        expires 30d;
    }

    location /static/ {
        # CACHE_DIR/static/
        alias /home/weblate/data/cache/static/;
        expires 30d;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_pass http://unix:/run/gunicorn.sock;
        proxy_read_timeout 3600;
    }
}

Cumraíocht shamplach do NGINX agus uWSGI

Chun freastalaí gréasáin táirgeachta a rith, bain úsáid as an fillteán WSGI atá suiteáilte le Weblate (nuair atá timpeallacht Python in úsáid, suiteáiltear é mar ~/weblate-env/lib/python3.14/site-packages/weblate/wsgi.py). Ná déan dearmad an cosán cuardaigh Python a shocrú chuig do thimpeallacht Python chomh maith (mar shampla, ag baint úsáide as virtualenv = /home/user/weblate-env in uWSGI).

Ritheann an chumraíocht seo a leanas Weblate mar uWSGI faoi fhreastalaí gréasáin NGINX.

Configuration for NGINX (weblate/examples/weblate.nginx.conf in the source tree):

#
# nginx configuration for Weblate
#
# You will want to change:
#
# - server_name
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
server {
    listen 80;
    server_name weblate;
    # Not used
    root /var/www/html;

    location ~ ^/favicon.ico$ {
        # CACHE_DIR/static/favicon.ico
        alias /home/weblate/data/cache/static/favicon.ico;
        expires 30d;
    }

    location /static/ {
        # CACHE_DIR/static/
        alias /home/weblate/data/cache/static/;
        expires 30d;
    }

    location / {
        include uwsgi_params;
        # Needed for long running operations in admin interface
        uwsgi_read_timeout 3600;
        # Adjust based to uwsgi configuration:
        uwsgi_pass unix:///run/uwsgi/app/weblate/socket;
        # uwsgi_pass 127.0.0.1:8080;
    }
}

Configuration for uWSGI (weblate/examples/weblate.uwsgi.ini in the source tree):

#
# uWSGI configuration for Weblate
#
# You will want to change:
#
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change python3.12 to match your Python version
# - change weblate user to match your Weblate user
#
[uwsgi]
plugins       = python3
master        = true
protocol      = uwsgi
socket        = 127.0.0.1:8080
wsgi-file     = /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/wsgi.py

# Add path to Weblate checkout if you did not install
# Weblate by pip
# python-path   = /path/to/weblate

# Path to the Python environment
virtualenv = /home/weblate/weblate-env

# Needed for OAuth/OpenID
buffer-size   = 8192

# Reload when consuming too much of memory
reload-on-rss = 250

# Increase number of workers for heavily loaded sites
workers       = 8

# Enable threads for Sentry error submission
enable-threads = true

# Child processes do not need file descriptors
close-on-exec = true

# Avoid default 0000 umask
umask = 0022

# Run as weblate user
uid = weblate
gid = weblate

# Enable harakiri mode (kill requests after some time)
# harakiri = 3600
# harakiri-verbose = true

# Enable uWSGI stats server
# stats = :1717
# stats-http = true

# Do not log some errors caused by client disconnects
ignore-sigpipe = true
ignore-write-errors = true
disable-write-exception = true

Cumraíocht shamplach le haghaidh Apache

Moltar prefork MPM a úsáid agus WSGI á úsáid le Weblate.

The following configuration runs Weblate as WSGI, you need to have enabled mod_wsgi (weblate/examples/apache.conf in the source tree):

#
# VirtualHost for Weblate
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match Python version mod-wsgi is compiled for
# - change weblate user to match your Weblate user
#
<VirtualHost *:80>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # CACHE_DIR/static/favicon.ico
    Alias /favicon.ico /home/weblate/data/cache/static/favicon.ico

    # CACHE_DIR/static/
    Alias /static/ /home/weblate/data/cache/static/
    <Directory /home/weblate/data/cache/static/>
        Require all granted
    </Directory>

    # Path to your Weblate Python environment
    WSGIDaemonProcess weblate python-home=/home/weblate/weblate-env user=weblate request-timeout=600
    WSGIProcessGroup weblate
    WSGIApplicationGroup %{GLOBAL}

    WSGIScriptAlias / /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/wsgi.py process-group=weblate
    WSGIPassAuthorization On

    <Directory /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>

</VirtualHost>

Note

Tá Python 3 ag teastáil ó Weblate, mar sin cinntigh go bhfuil leagan Python 3 den modwsgi á rith agat. De ghnáth bíonn sé ar fáil mar phacáiste ar leith, mar shampla libapache2-mod-wsgi-py3.

Úsáid an leagan comhoiriúnach Python chun Weblate a shuiteáil.

Cumraíocht shamplach le haghaidh Apache agus Gunicorn

The following configuration runs Weblate in Gunicorn and Apache 2.4 (weblate/examples/apache.gunicorn.conf in the source tree):

#
# VirtualHost for Weblate using gunicorn on localhost:8000
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change weblate user to match your Weblate user
#
<VirtualHost *:443>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # CACHE_DIR/static/favicon.ico
    Alias /favicon.ico /home/weblate/data/cache/static/favicon.ico

    # CACHE_DIR/static/
    Alias /static/ /home/weblate/data/cache/static/
    <Directory /home/weblate/data/cache/static/>
        Require all granted
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/https_cert.cert
    SSLCertificateKeyFile /etc/apache2/ssl/https_key.pem
    SSLProxyEngine On

    ProxyPass /favicon.ico !
    ProxyPass /static/ !

    ProxyPass / http://localhost:8000/
    ProxyPassReverse / http://localhost:8000/
    ProxyPreserveHost On
</VirtualHost>

Cumraíocht shamplach chun Granian a thosú

Tá spleáchas roghnach wsgi ag Weblate (féach Cleithiúlachtaí Python) a shuiteálfaidh gach rud atá uait chun Granian a rith. Agus Weblate á shuiteáil agat is féidir leat é a shonrú mar:

uv pip install Weblate[all,wsgi]

Nuair a bheidh Granian suiteáilte agat, is féidir leat é a rith. De ghnáth déantar é seo ag leibhéal an chórais. Taispeánann na samplaí seo a leanas tosú trí systemd:

/etc/systemd/system/granian.service
[Unit]
Description=granian daemon
After=network.target

[Service]
User=weblate
Group=weblate
WorkingDirectory=/home/weblate/weblate-env/
Environment="DJANGO_SETTINGS_MODULE=weblate.settings"
RuntimeDirectory=granian
ExecStart=/home/weblate/weblate-env/bin/granian \
    --no-ws \
    --workers-max-rss 350 \
    --interface wsgi \
    --workers 2 \
    --backpressure 16 \
    --runtime-threads 8 \
    --runtime-mode mt \
    --port 8888 \
    weblate.wsgi:application

[Install]
WantedBy=multi-user.target
~

Cumraíocht shamplach chun Gunicorn a thosú

Caithfear Gunicorn a shuiteáil ar leithligh:

uv pip install gunicorn

Nuair a bheidh Gunicorn suiteáilte agat, is féidir leat é a rith. Déantar é seo de ghnáth ag leibhéal an chórais. Léiríonn na samplaí seo a leanas tosú trí systemd:

/etc/systemd/system/gunicorn.socket
[Unit]
Description=gunicorn socket

[Socket]
ListenStream=/run/gunicorn.sock

[Install]
WantedBy=sockets.target
/etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target

[Service]
User=weblate
Group=weblate
WorkingDirectory=/home/weblate/weblate-env/
Environment="DJANGO_SETTINGS_MODULE=weblate.settings"
ExecStart=/home/weblate/weblate-env/bin/gunicorn \
    --preload \
    --timeout 3600 \
    --graceful-timeout 3600 \
    --worker-class=gthread \
    --workers=2 \
    --threads=16 \
    --bind unix:/run/gunicorn.sock \
    weblate.wsgi:application

[Install]
WantedBy=multi-user.target

Ag rith Weblate faoin gcosán

Moltar prefork MPM a úsáid agus WSGI á úsáid le Weblate.

A sample Apache configuration to serve Weblate under /weblate. Again using mod_wsgi (weblate/examples/apache-path.conf in the source tree):

#
# VirtualHost for Weblate, running under /weblate path
#
# You will want to change:
#
# - ServerAdmin and ServerName
# - change /home/weblate/weblate-env to location where Weblate Python environment is placed
# - change /home/weblate/data to match your DATA_DIR
# - change /home/weblate/data/cache to match your CACHE_DIR
# - change python3.12 to match Python version mod-wsgi is compiled for
# - change weblate user to match your Weblate user
#
<VirtualHost *:80>
    ServerAdmin admin@weblate.example.org
    ServerName weblate.example.org

    # CACHE_DIR/static/favicon.ico
    Alias /weblate/favicon.ico /home/weblate/data/cache/static/favicon.ico

    # CACHE_DIR/static/
    Alias /weblate/static/ /home/weblate/data/cache/static/
    <Directory /home/weblate/data/cache/static/>
        Require all granted
    </Directory>

    # Path to your Weblate Python environment
    WSGIDaemonProcess weblate python-home=/home/weblate/weblate-env user=weblate request-timeout=600
    WSGIProcessGroup weblate
    WSGIApplicationGroup %{GLOBAL}

    WSGIScriptAlias /weblate /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/wsgi.py process-group=weblate
    WSGIPassAuthorization On

    <Directory /home/weblate/weblate-env/lib/python3.12/site-packages/weblate/>
        <Files wsgi.py>
        Require all granted
        </Files>
    </Directory>

</VirtualHost>

Ina theannta sin, beidh or weblate/settings.py a choigeartú:

URL_PREFIX = "/weblate"

Tascanna cúlra ag baint úsáide as Soilire

Úsáideann Weblate Soilire chun tascanna rialta agus cúlra a dhéanamh. Tá tú ceaptha seirbhís Soilire a rith a dhéanfaidh iad seo. Mar shampla, tá sé freagrach as na hoibríochtaí seo a leanas a láimhseáil (níl an liosta seo iomlán):

Seo mar a bheadh socrú tipiciúil ag baint úsáide as Valkey nó Redis mar chúltaca:

CELERY_TASK_ALWAYS_EAGER = False
CELERY_BROKER_URL = "redis://localhost:6379"
CELERY_RESULT_BACKEND = CELERY_BROKER_URL

You should also start the Celery worker to process the tasks and start scheduled tasks. For debugging or development, this can be done directly on the command-line:

celery --app=weblate.utils worker --beat --queues=celery,notify,memory,translate,backup

Note

Ní mór an próiseas Soilire a chur i gcrích faoin úsáideoir céanna leis an bpróiseas WSGI, nó déanfar comhaid sa DATA_DIR a stóráil le húinéireacht mheasctha, rud a fhágann go n-eascróidh am rite.

Féach freisin Ceadanna córas comhaid agus Freastalaí ag rith.

Tascanna Soilire a chur i gcrích sa WSGI ag baint úsáide as mód fonn

Note

Beidh tionchar dian feidhmíochta aige seo ar an gcomhéadan gréasáin, agus brisfidh sé gnéithe ag brath ar thruicear rialta (mar shampla athruithe ar feitheamh a dhéanamh, fógraí díolama, nó cúltacaí).

Le haghaidh forbartha, b'fhéidir gur mhaith leat cumraíocht fonn a úsáid, a phróiseálann na tascanna go léir atá i bhfeidhm:

CELERY_TASK_ALWAYS_EAGER = True
CELERY_BROKER_URL = "memory://"
CELERY_TASK_EAGER_PROPAGATES = True

Rith Soilire mar sheirbhís córais

Most likely you will want to run Celery as a daemon and that is covered by Daemonization. For the most common Linux setup using systemd, adapt the example files listed below. These examples are maintained in the Weblate source tree under weblate/examples/; Python wheels do not install these deployment samples.

Aonad Córais atá le cur mar /etc/systemd/system/celery-weblate.service:

[Unit]
Description=Celery Service (Weblate)
After=network.target

[Service]
Type=forking
User=weblate
Group=weblate
EnvironmentFile=/etc/default/celery-weblate
WorkingDirectory=/home/weblate
RuntimeDirectory=celery
RuntimeDirectoryPreserve=restart
LogsDirectory=celery
ExecStart=/bin/sh -c '${CELERY_BIN} multi start ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'
ExecStop=/bin/sh -c '${CELERY_BIN} multi stopwait ${CELERYD_NODES} \
  --pidfile=${CELERYD_PID_FILE}'
ExecReload=/bin/sh -c '${CELERY_BIN} multi restart ${CELERYD_NODES} \
  -A ${CELERY_APP} --pidfile=${CELERYD_PID_FILE} \
  --logfile=${CELERYD_LOG_FILE} --loglevel=${CELERYD_LOG_LEVEL} ${CELERYD_OPTS}'

[Install]
WantedBy=multi-user.target

Cumraíocht comhshaoil le cur mar /etc/default/celery-weblate:

# Name of nodes to start
CELERYD_NODES="celery notify memory backup translate"

# Absolute or relative path to the 'celery' command:
CELERY_BIN="/home/weblate/weblate-env/bin/celery"

# App instance to use
# comment out this line if you don't use an app
CELERY_APP="weblate.utils"

# Extra command-line arguments to the worker. You might need to customize
# concurrency depending on the available resources and Weblate usage. Increase
# the concurrency if you get weblate.E019 error, decrease it if you are on a
# low-resource system.
CELERYD_OPTS="--beat:celery --queues:celery=celery --concurrency:celery=2 --prefetch-multiplier:celery=4 \
    --queues:notify=notify --concurrency:notify=2 --prefetch-multiplier:notify=10 \
    --queues:memory=memory --concurrency:memory=2 --prefetch-multiplier:memory=10 \
    --queues:translate=translate --concurrency:translate=4 --prefetch-multiplier:translate=4 \
    --queues:backup=backup  --concurrency:backup=1 --prefetch-multiplier:backup=2"

# Logging configuration
# - %n will be replaced with the first part of the nodename.
# - %I will be replaced with the current child process index
#   and is important when using the prefork pool to avoid race conditions.
CELERYD_PID_FILE="/run/celery/weblate-%n.pid"
CELERYD_LOG_FILE="/var/log/celery/weblate-%n%I.log"
CELERYD_LOG_LEVEL="INFO"

Cumraíocht bhreise chun logaí Celery a rothlú ag baint úsáide as logrotate le cur mar /etc/logrotate.d/celery:

/var/log/celery/*.log {
        weekly
        missingok
        rotate 12
        compress
        notifempty
}

Tascanna tréimhsiúla ag baint úsáide as buille Soilire

Tagann Weblate le socrú ionsuite do thascanna sceidealaithe. Stóráiltear an sceideal tascanna sa bhunachar sonraí agus déanann an deamhan buille Soilire na tascanna a fhorghníomhú.

Hint

Is féidir leat tascanna breise a shainiú i settings.py, mar shampla féach Geallann leisciúil.

Monatóireacht ar stádas soilire

Is féidir leat fad reatha na scuainí tascanna Celery a fháil sa Comhéadan bainistíochta nó is féidir leat celery_queues a úsáid ar an líne ordaithe. Ar eagla go n-éireoidh an scuaine ró-fhada, gheobhaidh tú earráid chumraíochta sa chomhéadan riaracháin freisin.

Warning

Ní dhéantar na hearráidí Soilire de réir réamhshocraithe a logáil isteach ach amháin sa loga Soilire agus níl siad le feiceáil don úsáideoir. Más mian leat forbhreathnú a bheith agat ar theipeanna dá leithéid, moltar Tuarascálacha earráide a bhailiú agus monatóireacht a dhéanamh ar fheidhmíocht a chumrú.

Socrú Soilire aonphróisis

I gcás go bhfuil cuimhne an-teoranta agat, b'fhéidir gur mhaith leat líon na bpróiseas Weblate a laghdú. Is féidir gach tasc Soilire a chur i gcrích in aon phróiseas amháin ag baint úsáide as:

celery --app=weblate.utils worker --beat --queues=celery,notify,memory,translate,backup --pool=solo

Is féidir suiteáil a úsáideann Docker a chumrú chun socrú Soilire aonphróisis a úsáid trí CELERY_SINGLE_PROCESS a shocrú.

Warning

Beidh tionchar suntasach feidhmíochta aige seo ar Weblate.

Monatóireacht ar Ghréasán

Soláthraíonn Weblate an URL /healthz/ le húsáid i seiceálacha simplí sláinte, mar shampla ag baint úsáide as Kubernetes. Tá seiceáil sláinte ionsuite ag an gcoimeádán Docker ag baint úsáide as an URL seo.

Chun monatóireacht a dhéanamh ar mhéadracht Weblate is féidir leat GET /api/metrics/ críochphointe API a úsáid.

Tuarascálacha earráide a bhailiú agus monatóireacht a dhéanamh ar fheidhmíocht

Is féidir le Weblate, mar aon bhogearraí eile, teip. Chun stáit teipe úsáideacha a bhailiú molaimid seirbhísí tríú páirtí a úsáid chun faisnéis den sórt sin a bhailiú. Tá sé seo an-úsáideach i gcás go dteipfeadh ar thascanna Soilire, rud a d’fhágfadh nach ndéanfadh ach earráid a thuairisciú do na logaí agus ní thabharfaí fógra duit fúthu. Tá tacaíocht ag Weblate do na seirbhísí seo a leanas:

R-phost

Is é an uirlis chumraíochta réamhshocraithe Weblate atá ag Django ná ríomhphoist a sheoladh nuair a tharlaíonn earráidí freastalaí trí django.utils.log.AdminEmailHandler. Seo an socrú is lú iarrachta, ach ba cheart duit roghanna eile a mheas ar chúiseanna príobháideachta, toisc go bhféadfadh sonraí íogaire a bheith sna ríomhphoist earráide. Is féidir leat tuilleadh a léamh faoi sin i Security implications.

Chun an t-iompar seo a dhíchumasú, bain mail_admins as an LOGGING i socruithe Weblate, nó díchumasaigh WEBLATE_ADMIN_NOTIFY_ERROR i dtimpeallacht Docker.

Sentry

Tá tacaíocht ionsuite ag Weblate do Sentry. Chun é a úsáid, is leor SENTRY_DSN a shocrú sa settings.py:

SENTRY_DSN = "https://id@your.sentry.example.com/"

Is féidir sentry a úsáid freisin chun monatóireacht a dhéanamh ar fheidhmíocht Weblate trí rianta agus próifílí a bhailiú le haghaidh céatadán sainithe oibríochtaí. Is féidir é seo a chumrú le SENTRY_TRACES_SAMPLE_RATE agus SENTRY_PROFILES_SAMPLE_RATE.

Barra Rolla

Tá tacaíocht ionsuite ag Weblate do Rollbar. Chun é a úsáid, is leor treoracha a leanúint maidir le fógra Rollbar notifier do Python.

I mbeagán focal, ní mór duit a choigeartú settings.py:

# Add rollbar as last middleware:
MIDDLEWARE = [
    # … other middleware classes …
    "rollbar.contrib.django.middleware.RollbarNotifierMiddleware",
]

# Configure client access
ROLLBAR = {
    "access_token": "POST_SERVER_ITEM_ACCESS_TOKEN",
    "environment": "development" if DEBUG else "production",
    "branch": "main",
    "root": "/absolute/path/to/code/root",
}

Tá gach rud eile comhtháite go huathoibríoch, baileoidh tú earráidí taobh an fhreastalaí agus an chliaint anois.

Note

Áiríonn logáil earráide eisceachtaí freisin a láimhseáladh go galánta, ach a d’fhéadfadh fadhb a léiriú - mar theip ar pharsáil comhad uaslódáilte.

Bainistíocht loga Graylog

Added in version 5.9.

Is féidir Weblate a chumrú le logáil trí úsáid a bhaint as prótacal GELF TCP. Forbraíodh é seo do chomhtháthú Graylog, ach is féidir é a úsáid le haon ardán logála comhlíontach.

Tá an pláta coire cumraíochta san áireamh i Cumraíocht samplach, le haghaidh Docker is féidir é seo a chumrú le WEBLATE_LOG_GELF_HOST.

Weblate á aistriú go freastalaí eile

Ba cheart go mbeadh sé éasca go leor Gréasán a aistriú go freastalaí eile, ach stórálann sé sonraí i gcúpla áit ar cheart duit a aistriú go cúramach. Is é an cur chuige is fearr ná Weblate a stopadh don imirce.

Bunachar sonraí a aistriú

Is é an cur chuige is simplí ná uirlisí dúchasacha bunachar sonraí a úsáid, toisc gurb iad is éifeachtaí de ghnáth (m.sh. pg_dump). Nó is féidir leat macasamhlú a úsáid má thacaíonn do bhunachar sonraí leis.

See also

Imirce idir bunachair shonraí a bhfuil cur síos orthu in Aistriú ó bhunachair shonraí eile go PostgreSQL.

Taisclanna VCS a aistriú

Ní mór na stórtha VCS atá stóráilte faoi DATA_DIR a aistriú freisin. Is féidir leat iad a chóipeáil go simplí nó rsync a úsáid chun an t-aistriú a dhéanamh ar bhealach níos éifeachtaí.

Nótaí eile

Ná déan dearmad seirbhísí eile a d'fhéadfadh a bheith in úsáid ag Weblate a bhogadh, amhail Valkey, Redis, poist Cron nó córais chúltaca fíordheimhnithe saincheaptha.