mirror of
https://github.com/Dokploy/templates.git
synced 2026-05-06 16:55:42 -05:00
[PR #737] [MERGED] New Version #2861
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/Dokploy/templates/pull/737
Author: @Siumauricio
Created: 3/5/2026
Status: ✅ Merged
Merged: 3/5/2026
Merged by: @Siumauricio
Base:
main← Head:canary📝 Commits (10+)
1e21b7efeat(librechat): add LibreChat blueprint with compose, toml, metadata, links and tags758cf1dfix: rename templates to template.toml47daea9fix(librechat): rename api service to librechat in docker-compose.yml3e8b431Update blueprints/librechat/template.toml60796a9Update blueprints/librechat/template.toml1d70294fix(librechat): add version under [config] and remove stray [config.mounts] header2e1fb3bfix(librechat): remove predefined persistent volume mounts from template.toml46dc5b9docs(librechat): add authentication reference link to docker-compose.ymlac07aa2feat: add Rote templated58cc15fix: process meta.json to fix formatting and sorting📊 Changes
25 files changed (+915 additions, -87 deletions)
View changed files
📝
blueprints/convex/docker-compose.yml(+8 -8)📝
blueprints/evolutionapi/docker-compose.yml(+1 -1)📝
blueprints/grafana/docker-compose.yml(+1 -1)➕
blueprints/imgproxy/docker-compose.yml(+76 -0)➕
blueprints/imgproxy/imgproxy.png(+0 -0)➕
blueprints/imgproxy/template.toml(+56 -0)➕
blueprints/mediafetch/docker-compose.yml(+18 -0)➕
blueprints/mediafetch/mediafetch.svg(+1 -0)➕
blueprints/mediafetch/template.toml(+15 -0)📝
blueprints/nextcloud-aio/docker-compose.yml(+14 -12)➖
blueprints/nextcloud-aio/nextcloud-aio.svg(+0 -1)➕
blueprints/nextcloud-aio/nextcloud.png(+0 -0)📝
blueprints/nextcloud-aio/template.toml(+166 -12)📝
blueprints/notifuse/docker-compose.yml(+28 -30)📝
blueprints/notifuse/template.toml(+2 -17)➕
blueprints/tuwunel/docker-compose.yml(+18 -0)➕
blueprints/tuwunel/template.toml(+15 -0)➕
blueprints/tuwunel/tuwunel.svg(+4 -0)➕
blueprints/unleash/docker-compose.yml(+49 -0)➕
blueprints/unleash/template.toml(+17 -0)...and 5 more files
📄 Description
What is this PR about?
New PR of [Template Name]
Checklist
Before submitting this PR, please make sure that:
Issues related (if applicable)
Close automatically the related issues using the keywords:
closes #ISSUE_NUMBERScreenshots or Videos
Greptile Summary
This is a large bulk update PR touching 72 files — adding ~20 new blueprints and updating ~15 existing ones with version bumps, dependency fixes, and structural improvements. While many individual changes are sound (convex
ports→exposefix, budibase/appsmith/grafana version bumps, supabaseCONTAINER_PREFIXfix), the sheer scale of changes introduces numerous violations of the project'sAGENTS.mdconventions that need to be resolved before merging.Critical issues requiring fixes:
portsdirective used in 4 blueprints (ipfs,trilium-next,verdaccio,vikunja) — this is explicitly forbidden; useexpose+[[config.domains]]instead. Thevikunjacase is a regression.container_name: wg-easyadded towg-easy/docker-compose.yml— explicitly forbidden.wuzapi-server(folder:wuzapi) andtrilium_next(folder:trilium-next) — must match exactly.trilium-next(~/trilium-data,/etc/timezone,/etc/localtime) — forbidden perAGENTS.md.mediafetchimage useslatestbutmeta.jsonsays1.1.1;evolutionapiimage changed tolatestbutmeta.jsonstill showsv2.1.2.postgres-pgdog(${PGDOG_IMAGE},${POSTGRES_IMAGE}) — images must be pinned to specific versions.vikunjahealthcheck:CMD-SHELLarray form with env vars that won't be shell-substituted.restartpolicy onverdaccioandopenclawmain service.version: "3.8"inopenclaw,seaweedfs,strapi, andtrilium-next.Confidence Score: 1/5
portsdirectives (4 files), forbiddencontainer_name(1 file), service naming mismatches (2 files), absolute host bind mounts (1 file), version mismatches between meta.json and image tags (2 files), non-deterministic image references (1 file), a broken healthcheck (1 file), missingrestartpolicies (2 files), and missingversion: "3.8"declarations (4 files). Many of these would cause actual deployment failures in Dokploy.Comments Outside Diff (8)
General comment
portsdirective forbidden by project conventionsPer
AGENTS.md,portsmust never be included in Dokploy blueprints — Dokploy handles routing via its own ingress. This same violation appears in several other files in this PR:blueprints/ipfs/docker-compose.ymllines 11–14blueprints/trilium-next/docker-compose.ymllines 11–17blueprints/verdaccio/docker-compose.ymllines 8–9blueprints/vikunja/docker-compose.ymllines 14–15 (regression — previously usedexpose)Replace
portswithexposein all of these files and configure routing throughtemplate.toml[[config.domains]]entries instead.Context Used: Rule from
dashboard- AGENTS.md (source)General comment
container_nameforbidden by project conventionsAGENTS.mdexplicitly states thatcontainer_namemust never be included in Dokploy blueprints, as it can conflict with Dokploy's internal container management.(Remove the
container_name: wg-easyline entirely.)Context Used: Rule from
dashboard- AGENTS.md (source)General comment
Service name must match blueprint folder name
AGENTS.mdrequires that the primary service name exactly matches the blueprint folder name. The folder iswuzapibut the service is namedwuzapi-server. This mismatch will cause Dokploy domain routing (configured intemplate.tomlwithserviceName = "wuzapi-server") to be inconsistent with the convention.Context Used: Rule from
dashboard- AGENTS.md (source)General comment
Service name must match blueprint folder name
AGENTS.mdrequires the primary service name to exactly match the blueprint folder name. The folder istrilium-nextbut the service istrilium_next(underscore instead of hyphen). These are treated as distinct identifiers.Context Used: Rule from
dashboard- AGENTS.md (source)General comment
Absolute host paths in bind mounts are forbidden
AGENTS.mdexplicitly prohibits absolute host paths in volume bind mounts. Three bind mounts here violate this rule:${TRILIUM_DATA_DIR:-~/trilium-data}— uses a~-relative home directory path, which is an absolute path on the host/etc/timezone:/etc/timezone:ro— absolute host path/etc/localtime:/etc/localtime:ro— absolute host pathFor
trilium-data, use a named volume instead. For timezone/locale, these are host-specific paths that are not portable in a Dokploy context and should be removed; the container image handles its own timezone.Context Used: Rule from
dashboard- AGENTS.md (source)General comment
Docker images must be pinned to specific versions, not user-supplied variables
Both
${PGDOG_IMAGE}and${POSTGRES_IMAGE}(line 18) are environment variable references used as image names. This means the actual image to be pulled is entirely determined at runtime by the user, making the template non-deterministic and impossible to validate.AGENTS.mdrequires images to be pinned to specific versions to prevent supply chain attacks and ensure consistent deployments.Hardcode the image references to specific, tested version tags (e.g.,
pgdogio/pgdog:0.1.6andpostgres:17-alpine) and updatemeta.jsonaccordingly.Context Used: Rule from
dashboard- AGENTS.md (source)General comment
Broken healthcheck:
CMD-SHELLrequires a single shell string, not multiple argumentsCMD-SHELLruns a command via the shell and expects a single string as its argument. When passed as an array like["CMD-SHELL", "pg_isready", "-U", "...", "-d", "..."], onlypg_isreadyis passed as the shell command — the-Uand-dflags are silently ignored, so the healthcheck will succeed regardless of the database state.Additionally, environment variable substitution does not occur in the exec-form array —
${VIKUNJA_DATABASE_USER}will be passed as a literal string rather than the resolved value.(Use
$to escape the `## What is this PR about?New PR of [Template Name]
Checklist
Before submitting this PR, please make sure that:
Issues related (if applicable)
Close automatically the related issues using the keywords:
closes #ISSUE_NUMBERScreenshots or Videos
Greptile Summary
This is a large bulk update PR touching 72 files — adding ~20 new blueprints and updating ~15 existing ones with version bumps, dependency fixes, and structural improvements. While many individual changes are sound (convex
ports→exposefix, budibase/appsmith/grafana version bumps, supabaseCONTAINER_PREFIXfix), the sheer scale of changes introduces numerous violations of the project'sAGENTS.mdconventions that need to be resolved before merging.Critical issues requiring fixes:
portsdirective used in 4 blueprints (ipfs,trilium-next,verdaccio,vikunja) — this is explicitly forbidden; useexpose+[[config.domains]]instead. Thevikunjacase is a regression.container_name: wg-easyadded towg-easy/docker-compose.yml— explicitly forbidden.wuzapi-server(folder:wuzapi) andtrilium_next(folder:trilium-next) — must match exactly.trilium-next(~/trilium-data,/etc/timezone,/etc/localtime) — forbidden perAGENTS.md.mediafetchimage useslatestbutmeta.jsonsays1.1.1;evolutionapiimage changed tolatestbutmeta.jsonstill showsv2.1.2.postgres-pgdog(${PGDOG_IMAGE},${POSTGRES_IMAGE}) — images must be pinned to specific versions.vikunjahealthcheck:CMD-SHELLarray form with env vars that won't be shell-substituted.restartpolicy onverdaccioandopenclawmain service.version: "3.8"inopenclaw,seaweedfs,strapi, andtrilium-next.Confidence Score: 1/5
portsdirectives (4 files), forbiddencontainer_name(1 file), service naming mismatches (2 files), absolute host bind mounts (1 file), version mismatches between meta.json and image tags (2 files), non-deterministic image references (1 file), a broken healthcheck (1 file), missingrestartpolicies (2 files), and missingversion: "3.8"declarations (4 files). Many of these would cause actual deployment failures in Dokploy.so Docker performs the substitution at container runtime.)
General comment
Missing
version: "3.8"andrestartpolicy; unpinned browser imageThree issues in this file:
version: "3.8"—AGENTS.mdrequires all Dokploy blueprints to declareversion: "3.8"at the top of the compose file. This also applies toblueprints/seaweedfs/docker-compose.yml,blueprints/strapi/docker-compose.yml, andblueprints/trilium-next/docker-compose.ymlin this PR.openclawservice is missing arestartpolicy — addrestart: unless-stoppedorrestart: always.coollabsio/openclaw-browser:latest— thebrowserservice uses an unpinnedlatesttag. Pin it to a specific version to match theopenclawservice version and updatemeta.jsonaccordingly.Context Used: Rule from
dashboard- AGENTS.md (source)Last reviewed commit:
d157cefContext used:
dashboard- AGENTS.md (source)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.