I have tested the template in my instance, so the maintainers don't spend time trying to figure out what's wrong.
I have added tests that demonstrate that my correction works or that my new feature works.
Greptile Summary
This PR adds a new Weblate template (localization/translation platform) to the blueprint collection. The overall structure is solid — Docker images are pinned to specific versions, secrets use Dokploy helpers, read_only: true is applied for security, and a database healthcheck is included. The meta.json entry is well-formed with the correct version matching the image tag.
Key issues found:
Startup reliability (docker-compose.yml line 36–38): depends_on for cache and database does not use condition: service_healthy, so Weblate can attempt to connect to PostgreSQL before it has finished initializing. The database healthcheck is defined but not wired into the dependency condition.
PostgreSQL volume path (docker-compose.yml line 53): The volume is mounted at /var/lib/postgresql rather than the conventional /var/lib/postgresql/data. Data is still persisted, but it's broader than necessary and deviates from the recommended pattern.
Superfluous env vars on the database service (docker-compose.yml lines 59–60): POSTGRES_HOST and POSTGRES_PORT are Weblate client-side variables; the PostgreSQL image does not recognise them and they should be removed from the database service block.
Confidence Score: 4/5
Template is largely correct and well-structured; one startup-reliability fix recommended before merge.
The template is well-constructed with pinned images, proper secrets handling, and security hardening. The only meaningful functional concern is that depends_on does not use condition: service_healthy, which can cause Weblate to start before PostgreSQL is ready — Weblate does have retry logic so this often recovers, but it is better practice to wire the dependency correctly. The remaining notes are minor style improvements.
blueprints/weblate/docker-compose.yml — the depends_on and volume path items deserve a second look.
Important Files Changed
Filename
Overview
blueprints/weblate/docker-compose.yml
Adds the Weblate stack (weblate + valkey + postgres). Two style issues: volume path should be /var/lib/postgresql/data, and POSTGRES_HOST/POSTGRES_PORT are unnecessarily set on the database service. One functional concern: depends_on does not leverage the database healthcheck, so Weblate may attempt to connect before Postgres is ready.
blueprints/weblate/template.toml
Template variables, domain config, and env passthrough look correct. Secrets use ${password:32} helper, domain uses ${domain} helper, and the port 8080 matches the Weblate image default.
meta.json
Adds Weblate entry with correct id, name, version (5.16 matching docker-compose.yml), description, links, logo filename, and tags. The Strapi entry visible as removed in the diff was simply re-sorted by dedupe-and-sort-meta.js and remains present in the file at a different position.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/Dokploy/templates/pull/755
**Author:** [@enigma972](https://github.com/enigma972)
**Created:** 3/26/2026
**Status:** 🔄 Open
**Base:** `canary` ← **Head:** `weblate`
---
### 📝 Commits (10+)
- [`f2c576d`](https://github.com/Dokploy/templates/commit/f2c576d66975160bccf0fa0d8dd95546511fcfdd) feat: add Weblate template
- [`9bfe810`](https://github.com/Dokploy/templates/commit/9bfe8105619bffd984e30b31120a527dfb5de6a2) chore: add db health check
- [`9502f8e`](https://github.com/Dokploy/templates/commit/9502f8e06663a2597b3eca6e63f6cb17ab4caf27) feat: cleanup
- [`e29916f`](https://github.com/Dokploy/templates/commit/e29916f32328dd0f17b341a4f2a51390fac6df07) chore: fix config file
- [`7983f40`](https://github.com/Dokploy/templates/commit/7983f40202bd4aeee5cc9baea992929a47fcc03c) chore: remove compose default config
- [`626fdca`](https://github.com/Dokploy/templates/commit/626fdca8dfc14b01a18b29e824864cef76e31291) chore: fix weblate version
- [`be412bc`](https://github.com/Dokploy/templates/commit/be412bc60553066617a5f1b6c6c4c7b795c1958f) chore: run dedupe-and-sort-meta
- [`e805d62`](https://github.com/Dokploy/templates/commit/e805d620fde7fc19d2eb3f02b227d8ca2674db2c) Update blueprints/weblate/docker-compose.yml
- [`ebb2ba9`](https://github.com/Dokploy/templates/commit/ebb2ba91a35a8e0d64f991f5a8602a3d693dda9b) chore: remove config.mounts
- [`fc41864`](https://github.com/Dokploy/templates/commit/fc418647783f0e06f2abb4f536eaf66fec0e605c) Update blueprints/weblate/docker-compose.yml
### 📊 Changes
**4 files changed** (+148 additions, -18 deletions)
<details>
<summary>View changed files</summary>
➕ `blueprints/weblate/docker-compose.yml` (+74 -0)
➕ `blueprints/weblate/template.toml` (+56 -0)
➕ `blueprints/weblate/weblate.svg` (+1 -0)
📝 `meta.json` (+17 -18)
</details>
### 📄 Description
## What is this PR about?
New PR of [Weblate](https://weblate.org)
## Checklist
Before submitting this PR, please make sure that:
- [x] I have read the suggestions in the README.md file https://github.com/Dokploy/templates?tab=readme-ov-file#general-requirements-when-creating-a-template
- [x] I have tested the template in my instance, so the maintainers don't spend time trying to figure out what's wrong.
- [x] I have added tests that demonstrate that my correction works or that my new feature works.
<!-- greptile_comment -->
<h3>Greptile Summary</h3>
This PR adds a new Weblate template (localization/translation platform) to the blueprint collection. The overall structure is solid — Docker images are pinned to specific versions, secrets use Dokploy helpers, `read_only: true` is applied for security, and a database healthcheck is included. The `meta.json` entry is well-formed with the correct version matching the image tag.
Key issues found:
- **Startup reliability** (`docker-compose.yml` line 36–38): `depends_on` for `cache` and `database` does not use `condition: service_healthy`, so Weblate can attempt to connect to PostgreSQL before it has finished initializing. The database healthcheck is defined but not wired into the dependency condition.
- **PostgreSQL volume path** (`docker-compose.yml` line 53): The volume is mounted at `/var/lib/postgresql` rather than the conventional `/var/lib/postgresql/data`. Data is still persisted, but it's broader than necessary and deviates from the recommended pattern.
- **Superfluous env vars on the `database` service** (`docker-compose.yml` lines 59–60): `POSTGRES_HOST` and `POSTGRES_PORT` are Weblate client-side variables; the PostgreSQL image does not recognise them and they should be removed from the database service block.
<h3>Confidence Score: 4/5</h3>
Template is largely correct and well-structured; one startup-reliability fix recommended before merge.
The template is well-constructed with pinned images, proper secrets handling, and security hardening. The only meaningful functional concern is that `depends_on` does not use `condition: service_healthy`, which can cause Weblate to start before PostgreSQL is ready — Weblate does have retry logic so this often recovers, but it is better practice to wire the dependency correctly. The remaining notes are minor style improvements.
`blueprints/weblate/docker-compose.yml` — the `depends_on` and volume path items deserve a second look.
<details><summary><h3>Important Files Changed</h3></summary>
| Filename | Overview |
|----------|----------|
| blueprints/weblate/docker-compose.yml | Adds the Weblate stack (weblate + valkey + postgres). Two style issues: volume path should be `/var/lib/postgresql/data`, and `POSTGRES_HOST`/`POSTGRES_PORT` are unnecessarily set on the database service. One functional concern: `depends_on` does not leverage the database healthcheck, so Weblate may attempt to connect before Postgres is ready. |
| blueprints/weblate/template.toml | Template variables, domain config, and env passthrough look correct. Secrets use `${password:32}` helper, domain uses `${domain}` helper, and the port 8080 matches the Weblate image default. |
| meta.json | Adds Weblate entry with correct id, name, version (5.16 matching docker-compose.yml), description, links, logo filename, and tags. The Strapi entry visible as removed in the diff was simply re-sorted by `dedupe-and-sort-meta.js` and remains present in the file at a different position. |
| blueprints/weblate/weblate.svg | Valid SVG logo for Weblate, no issues. |
</details>
</details>
<sub>Reviews (1): Last reviewed commit: ["chore: remove config.mounts"](https://github.com/dokploy/templates/commit/ebb2ba91a35a8e0d64f991f5a8602a3d693dda9b) | [Re-trigger Greptile](https://app.greptile.com/api/retrigger?id=26436291)</sub>
> Greptile also left **3 inline comments** on this PR.
<sub>(3/5) Reply to the agent's comments like "Can you suggest a fix for this @greptileai?" or ask follow-up questions!</sub>
**Context used:**
- Context used - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=09330bde-2058-497c-9c64-ceae637fb5b2))
<!-- /greptile_comment -->
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/755
Author: @enigma972
Created: 3/26/2026
Status: 🔄 Open
Base:
canary← Head:weblate📝 Commits (10+)
f2c576dfeat: add Weblate template9bfe810chore: add db health check9502f8efeat: cleanupe29916fchore: fix config file7983f40chore: remove compose default config626fdcachore: fix weblate versionbe412bcchore: run dedupe-and-sort-metae805d62Update blueprints/weblate/docker-compose.ymlebb2ba9chore: remove config.mountsfc41864Update blueprints/weblate/docker-compose.yml📊 Changes
4 files changed (+148 additions, -18 deletions)
View changed files
➕
blueprints/weblate/docker-compose.yml(+74 -0)➕
blueprints/weblate/template.toml(+56 -0)➕
blueprints/weblate/weblate.svg(+1 -0)📝
meta.json(+17 -18)📄 Description
What is this PR about?
New PR of Weblate
Checklist
Before submitting this PR, please make sure that:
Greptile Summary
This PR adds a new Weblate template (localization/translation platform) to the blueprint collection. The overall structure is solid — Docker images are pinned to specific versions, secrets use Dokploy helpers,
read_only: trueis applied for security, and a database healthcheck is included. Themeta.jsonentry is well-formed with the correct version matching the image tag.Key issues found:
docker-compose.ymlline 36–38):depends_onforcacheanddatabasedoes not usecondition: service_healthy, so Weblate can attempt to connect to PostgreSQL before it has finished initializing. The database healthcheck is defined but not wired into the dependency condition.docker-compose.ymlline 53): The volume is mounted at/var/lib/postgresqlrather than the conventional/var/lib/postgresql/data. Data is still persisted, but it's broader than necessary and deviates from the recommended pattern.databaseservice (docker-compose.ymllines 59–60):POSTGRES_HOSTandPOSTGRES_PORTare Weblate client-side variables; the PostgreSQL image does not recognise them and they should be removed from the database service block.Confidence Score: 4/5
Template is largely correct and well-structured; one startup-reliability fix recommended before merge.
The template is well-constructed with pinned images, proper secrets handling, and security hardening. The only meaningful functional concern is that
depends_ondoes not usecondition: service_healthy, which can cause Weblate to start before PostgreSQL is ready — Weblate does have retry logic so this often recovers, but it is better practice to wire the dependency correctly. The remaining notes are minor style improvements.blueprints/weblate/docker-compose.yml— thedepends_onand volume path items deserve a second look.Important Files Changed
/var/lib/postgresql/data, andPOSTGRES_HOST/POSTGRES_PORTare unnecessarily set on the database service. One functional concern:depends_ondoes not leverage the database healthcheck, so Weblate may attempt to connect before Postgres is ready.${password:32}helper, domain uses${domain}helper, and the port 8080 matches the Weblate image default.dedupe-and-sort-meta.jsand remains present in the file at a different position.Reviews (1): Last reviewed commit: "chore: remove config.mounts" | Re-trigger Greptile
(3/5) Reply to the agent's comments like "Can you suggest a fix for this @greptileai?" or ask follow-up questions!
Context used:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.