Deploy Weblate's components separately to allow for horizontal scaling
Nobody has claimed this yet.
- Dominant language
- Mustache
- Stars
- 41
- Forks
- 45
- Avg merge
- 1h 24m
- Merged PRs (30d)
- 37
Description
Describe the problem
Right now, the Weblate helm chart deploys itself as a single monolithic instance, meaning that every component runs in a single container. Causing slow startup times due to having to initialize every single component in the same container.
But according to https://docs.weblate.org/en/latest/admin/install/docker.html#scaling-horizontally, you can actually scale Weblate horizontally by deploying multiple instances of Weblate, with extra arguments to make them run a specific component.
Doing this allows for high-availability as individual components can be restarted without affecting the whole instance, meaning that when a certain component (i.e Celery, or the web server) fails, it can quickly restart and reconnect to the cluster without affecting downtime.
Describe the solution you'd like
Extend the Helm chart to allow Weblate components to be deployed separately instead of running everything in a single binary.
I got an example for a similar distributed Helm deployment that works similarly to what I'm describing, from Grafana Mimir which uses only 1 single Grafana Mimir container, but with extra arguments to target a specific component https://github.com/grafana/mimir/tree/main/operations/helm/charts/mimir-distributed
While that deployment has its own hash ring clustering, seems like our distributed Docker compose only relies on a common database backend, so this should be fine enough.
Describe alternatives you've considered
No response
Screenshots
No response
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing Weblate Helm chart and compare its deployment structure with Weblate's distributed Docker Compose configuration and the linked horizontal-scaling documentation. Determine how separate component deployments and their arguments should be represented in chart values. Done means the chart can deploy Weblate components independently while preserving the shared database-based setup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, helm
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100