Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.
helm repo add obeone https://charts.obeone.cloud
helm repo update
helm install libretranslate obeone/libretranslate
LibreTranslate is a free and open source machine translation API powered by Argos Translate. It is fully self-hosted and offline capable: no API keys, no third-party cloud, your text never leaves the cluster. A small web UI ships on top of the REST API for interactive use.
libretranslate/libretranslatecharts/libretranslatekubeVersion constraint (see Chart.yaml)This chart is built on the bjw-s-labs common library.
Most configuration keys (controllers, service, ingress, persistence,
…) follow its schema; see the common library documentation
for everything it supports beyond what is spelled out in values.yaml.
Defaults are meant to work out of the box on any cluster. The full list of
options lives in values.yaml, is validated by
values.schema.json at install time, and is documented
in the Values section below. Override it with your own values file:
helm install libretranslate obeone/libretranslate -f my-values.yaml
helm repo update
helm upgrade libretranslate obeone/libretranslate
Each release lists its changes in the Artifact Hub changelog; give it a look before jumping across several chart versions.
helm uninstall libretranslate
PersistentVolumeClaims created by the chart are kept around: delete them manually if you also want the data gone.
Kubernetes: >=1.16.0-0
| Repository | Name | Version |
|---|---|---|
| https://bjw-s-labs.github.io/helm-charts | common | 3.7.1 |
| Key | Type | Default | Description |
|---|---|---|---|
| additionalVolumeMounts | list | [] |
Define additional volumeMounts if needed |
| additionalVolumes | list | [] |
Define additional volumes if needed |
| affinity | object | {} |
Affinity rules to control pod assignment based on node labels |
| controllers.main.containers.main.env.LT_API_KEYS | string | "1" |
Set to “1” to enable API key usage for authentication |
| controllers.main.containers.main.env.LT_UPDATE_MODELS | string | "1" |
Set to “1” to update language models on startup |
| controllers.main.containers.main.image.pullPolicy | string | "Always" |
Image pull policy (Always, IfNotPresent, Never) |
| controllers.main.containers.main.image.repository | string | "libretranslate/libretranslate" |
Image repository to pull |
| controllers.main.containers.main.image.tag | string | "v1.9.6" |
Image tag to pull (use vX.X.X-cuda for GPU builds) |
| controllers.main.containers.main.probes.liveness.custom | bool | true |
|
| controllers.main.containers.main.probes.liveness.enabled | bool | true |
|
| controllers.main.containers.main.probes.liveness.spec.httpGet.path | string | "/" |
|
| controllers.main.containers.main.probes.liveness.spec.httpGet.port | string | "http" |
|
| controllers.main.containers.main.probes.readiness.custom | bool | true |
|
| controllers.main.containers.main.probes.readiness.enabled | bool | true |
|
| controllers.main.containers.main.probes.readiness.spec.httpGet.path | string | "/" |
|
| controllers.main.containers.main.probes.readiness.spec.httpGet.port | string | "http" |
|
| controllers.main.containers.main.resources.limits | object | {"cpu":"500m","memory":"512Mi"} |
Resource limits for the main container |
| controllers.main.containers.main.resources.requests | object | {"cpu":"100m","memory":"128Mi"} |
Resource requests for the main container |
| controllers.main.strategy | string | "Recreate" |
|
| global | object | {"gpuEnabled":false} |
Global parameters for the chart Used to configure GPU support and other global settings |
| global.gpuEnabled | bool | false |
Enable GPU-specific settings (like CUDA paths and GPU resources) |
| ingress | object | {"main":{"enabled":false,"hosts":[{"host":"chart-example.local","paths":[{"path":"/","pathType":"Prefix","service":{"identifier":"main","port":"http"}}]}],"tls":[{"hosts":["chart-example.local"],"secretName":"tls-chart-example-local"}]}} |
Ingress configuration for external access to the service |
| ingress.main.enabled | bool | false |
Enable or disable ingress |
| ingress.main.tls[0].secretName | string | "tls-chart-example-local" |
Secret containing TLS certificate for the ingress |
| nodeSelector | object | {} |
Node selector for pod assignment |
| persistence | object | {"api-keys":{"accessMode":"ReadWriteOnce","annotations":{},"enabled":false,"globalMounts":[{"path":"/app/db"}],"size":"10Mi"},"cache":{"enabled":true,"globalMounts":[{"path":"/home/libretranslate/.local/cache"}],"type":"emptyDir"},"db":{"accessMode":"ReadWriteOnce","annotations":{},"enabled":false,"globalMounts":[{"path":"/home/libretranslate/.local/db"}],"size":"1Gi"},"files-translate":{"enabled":true,"globalMounts":[{"path":"/tmp/libretranslate-files-translate"}],"type":"emptyDir"},"share":{"accessMode":"ReadWriteOnce","annotations":{},"enabled":true,"globalMounts":[{"path":"/home/libretranslate/.local/share"}],"size":"20Gi"}} |
Persistence volumes configuration for different data types |
| persistence.api-keys.enabled | bool | false |
Enable persistence for API keys database |
| persistence.cache.enabled | bool | true |
Enable temporary cache storage |
| persistence.db.enabled | bool | false |
Enable database storage for application data |
| persistence.files-translate.enabled | bool | true |
Temporary storage for uploaded translation files |
| persistence.share.enabled | bool | true |
Enable persistent shared storage for translation models and shared assets |
| route | object | {"main":{"enabled":false,"hostnames":["chart-example.local"],"kind":"HTTPRoute","parentRefs":[{"name":"gateway","namespace":"gateway-system"}],"rules":[{"backendRefs":[{"name":"main"}],"matches":[{"path":{"type":"PathPrefix","value":"/"}}]}]}} |
Gateway API HTTPRoute, mirroring the Ingress above. Disabled by default: pick either Ingress or HTTPRoute, not both. Requires the Gateway API CRDs and an existing Gateway in the cluster. |
| route.main.enabled | bool | false |
Enable the HTTPRoute. Mutually exclusive with ingress.main.enabled. |
| route.main.hostnames | list | ["chart-example.local"] |
Hostnames served by this route. |
| route.main.kind | string | "HTTPRoute" |
Route kind. HTTPRoute, GRPCRoute, TCPRoute, TLSRoute or UDPRoute. |
| route.main.parentRefs | list | [{"name":"gateway","namespace":"gateway-system"}] |
Gateways this route attaches to. namespace is required on common 3.x. |
| route.main.rules | list | [{"backendRefs":[{"name":"main"}],"matches":[{"path":{"type":"PathPrefix","value":"/"}}]}] |
Routing rules. name resolves to a Service identifier defined above. |
| service | object | {"main":{"controller":"main","ports":{"http":{"port":80,"protocol":"TCP","targetPort":5000}}}} |
Service configuration to expose the application internally in the cluster |
| service.main.ports.http.port | int | 80 |
External service port |
| service.main.ports.http.protocol | string | "TCP" |
Protocol to use (TCP/UDP) |
| service.main.ports.http.targetPort | int | 5000 |
Internal container target port |
| tolerations | list | [] |
Tolerations for pod assignment to specific nodes |
Charts in this repository are signed with GPG and every release ships a
provenance file. The public key is available at
charts.obeone.cloud/public_key.gpg,
fingerprint B9FE852F28888D27F8C9A11CD33E04CD22E335CE.
# Import the signing key into a legacy keyring (helm verifies with GnuPG v1 keyrings)
curl -fsSL https://charts.obeone.cloud/public_key.gpg | gpg --import
gpg --export > ~/.gnupg/pubring.gpg
# Pull the chart and check it against its provenance file
helm pull --verify obeone/libretranslate
This is a personal chart repository, maintained on a best-effort basis. Bug reports and contributions are welcome on GitHub.
Autogenerated from chart metadata using helm-docs v1.14.2