Skip to content

New Version#737

Merged
Siumauricio merged 130 commits intomainfrom
canary
Mar 5, 2026
Merged

New Version#737
Siumauricio merged 130 commits intomainfrom
canary

Conversation

@Siumauricio
Copy link
Copy Markdown
Contributor

@Siumauricio Siumauricio commented Mar 5, 2026

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_NUMBER

Screenshots 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 portsexpose fix, budibase/appsmith/grafana version bumps, supabase CONTAINER_PREFIX fix), the sheer scale of changes introduces numerous violations of the project's AGENTS.md conventions that need to be resolved before merging.

Critical issues requiring fixes:

  • ports directive used in 4 blueprints (ipfs, trilium-next, verdaccio, vikunja) — this is explicitly forbidden; use expose + [[config.domains]] instead. The vikunja case is a regression.
  • container_name: wg-easy added to wg-easy/docker-compose.yml — explicitly forbidden.
  • Service name mismatches: wuzapi-server (folder: wuzapi) and trilium_next (folder: trilium-next) — must match exactly.
  • Absolute host bind mounts in trilium-next (~/trilium-data, /etc/timezone, /etc/localtime) — forbidden per AGENTS.md.
  • Version mismatches: mediafetch image uses latest but meta.json says 1.1.1; evolutionapi image changed to latest but meta.json still shows v2.1.2.
  • Non-deterministic image references in postgres-pgdog (${PGDOG_IMAGE}, ${POSTGRES_IMAGE}) — images must be pinned to specific versions.
  • Broken vikunja healthcheck: CMD-SHELL array form with env vars that won't be shell-substituted.
  • Missing restart policy on verdaccio and openclaw main service.
  • Missing version: "3.8" in openclaw, seaweedfs, strapi, and trilium-next.

Confidence Score: 1/5

  • Not safe to merge — multiple new blueprints have critical convention violations and functional bugs that would break Dokploy deployments.
  • There are 10+ distinct violations of the mandatory AGENTS.md conventions across multiple files: forbidden ports directives (4 files), forbidden container_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), missing restart policies (2 files), and missing version: "3.8" declarations (4 files). Many of these would cause actual deployment failures in Dokploy.
  • blueprints/ipfs/docker-compose.yml, blueprints/trilium-next/docker-compose.yml, blueprints/verdaccio/docker-compose.yml, blueprints/vikunja/docker-compose.yml, blueprints/wg-easy/docker-compose.yml, blueprints/wuzapi/docker-compose.yml, blueprints/mediafetch/docker-compose.yml, blueprints/evolutionapi/docker-compose.yml, blueprints/postgres-pgdog/docker-compose.yml, blueprints/openclaw/docker-compose.yml

Comments Outside Diff (8)

  1. General comment

    ports directive forbidden by project conventions

    Per AGENTS.md, ports must 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.yml lines 11–14
    • blueprints/trilium-next/docker-compose.yml lines 11–17
    • blueprints/verdaccio/docker-compose.yml lines 8–9
    • blueprints/vikunja/docker-compose.yml lines 14–15 (regression — previously used expose)

    Replace ports with expose in all of these files and configure routing through template.toml [[config.domains]] entries instead.

    Context Used: Rule from dashboard - AGENTS.md (source)

  2. General comment

    container_name forbidden by project conventions

    AGENTS.md explicitly states that container_name must never be included in Dokploy blueprints, as it can conflict with Dokploy's internal container management.

    (Remove the container_name: wg-easy line entirely.)

    Context Used: Rule from dashboard - AGENTS.md (source)

  3. General comment

    Service name must match blueprint folder name

    AGENTS.md requires that the primary service name exactly matches the blueprint folder name. The folder is wuzapi but the service is named wuzapi-server. This mismatch will cause Dokploy domain routing (configured in template.toml with serviceName = "wuzapi-server") to be inconsistent with the convention.

    Context Used: Rule from dashboard - AGENTS.md (source)

  4. General comment

    Service name must match blueprint folder name

    AGENTS.md requires the primary service name to exactly match the blueprint folder name. The folder is trilium-next but the service is trilium_next (underscore instead of hyphen). These are treated as distinct identifiers.

    Context Used: Rule from dashboard - AGENTS.md (source)

  5. General comment

    Absolute host paths in bind mounts are forbidden

    AGENTS.md explicitly 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 path

    For 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)

  6. 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.md requires 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.6 and postgres:17-alpine) and update meta.json accordingly.

    Context Used: Rule from dashboard - AGENTS.md (source)

  7. General comment

    Broken healthcheck: CMD-SHELL requires a single shell string, not multiple arguments

    CMD-SHELL runs 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", "..."], only pg_isready is passed as the shell command — the -U and -d flags 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_NUMBER

Screenshots 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 portsexpose fix, budibase/appsmith/grafana version bumps, supabase CONTAINER_PREFIX fix), the sheer scale of changes introduces numerous violations of the project's AGENTS.md conventions that need to be resolved before merging.

Critical issues requiring fixes:

  • ports directive used in 4 blueprints (ipfs, trilium-next, verdaccio, vikunja) — this is explicitly forbidden; use expose + [[config.domains]] instead. The vikunja case is a regression.
  • container_name: wg-easy added to wg-easy/docker-compose.yml — explicitly forbidden.
  • Service name mismatches: wuzapi-server (folder: wuzapi) and trilium_next (folder: trilium-next) — must match exactly.
  • Absolute host bind mounts in trilium-next (~/trilium-data, /etc/timezone, /etc/localtime) — forbidden per AGENTS.md.
  • Version mismatches: mediafetch image uses latest but meta.json says 1.1.1; evolutionapi image changed to latest but meta.json still shows v2.1.2.
  • Non-deterministic image references in postgres-pgdog (${PGDOG_IMAGE}, ${POSTGRES_IMAGE}) — images must be pinned to specific versions.
  • Broken vikunja healthcheck: CMD-SHELL array form with env vars that won't be shell-substituted.
  • Missing restart policy on verdaccio and openclaw main service.
  • Missing version: "3.8" in openclaw, seaweedfs, strapi, and trilium-next.

Confidence Score: 1/5

  • Not safe to merge — multiple new blueprints have critical convention violations and functional bugs that would break Dokploy deployments.
  • There are 10+ distinct violations of the mandatory AGENTS.md conventions across multiple files: forbidden ports directives (4 files), forbidden container_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), missing restart policies (2 files), and missing version: "3.8" declarations (4 files). Many of these would cause actual deployment failures in Dokploy.
  • blueprints/ipfs/docker-compose.yml, blueprints/trilium-next/docker-compose.yml, blueprints/verdaccio/docker-compose.yml, blueprints/vikunja/docker-compose.yml, blueprints/wg-easy/docker-compose.yml, blueprints/wuzapi/docker-compose.yml, blueprints/mediafetch/docker-compose.yml, blueprints/evolutionapi/docker-compose.yml, blueprints/postgres-pgdog/docker-compose.yml, blueprints/openclaw/docker-compose.yml

so Docker performs the substitution at container runtime.)

  1. General comment

    Missing version: "3.8" and restart policy; unpinned browser image

    Three issues in this file:

    1. Missing version: "3.8"AGENTS.md requires all Dokploy blueprints to declare version: "3.8" at the top of the compose file. This also applies to blueprints/seaweedfs/docker-compose.yml, blueprints/strapi/docker-compose.yml, and blueprints/trilium-next/docker-compose.yml in this PR.
    2. openclaw service is missing a restart policy — add restart: unless-stopped or restart: always.
    3. coollabsio/openclaw-browser:latest — the browser service uses an unpinned latest tag. Pin it to a specific version to match the openclaw service version and update meta.json accordingly.

    Context Used: Rule from dashboard - AGENTS.md (source)

Last reviewed commit: d157cef

Greptile also left 3 inline comments on this PR.

Context used:

  • Rule from dashboard - AGENTS.md (source)

tknsunil and others added 30 commits November 2, 2025 00:15
- Add Rote deployment template with frontend, backend, and PostgreSQL services
- Configure domain routing for frontend (port 80) and backend (port 3000)
- Set up automatic password generation and environment variables
- Use latest image tag by default
- Add logo and metadata to meta.json
…demirror/autocomplete', '@radix-ui/react-dialog', and React packages to their latest versions. This includes updates to '@types/react' and '@types/react-dom' for improved compatibility and performance.
… target 'canary' branch for pull requests.
* Update template.toml

* Update template.toml

* Update template.toml
feat: add Rote template
…shrouded-server for autoupdate and easier config
changed image to mornedhels/enshrouded-server
* feat: add Openinary template

* feat: update Openinary configuration to support ALLOWED_ORIGIN and refactor domain variable
… template files

- Introduced a GitHub Actions workflow to validate Docker Compose files and template.toml on pull requests.
- Added helper functions for generating random values and processing variables in templates.
- Implemented validation scripts for checking the structure, syntax, and best practices of Docker Compose and template files.
- Created necessary TypeScript types and configuration files for the build scripts.
* feat(templates): add Passbolt blueprint for Dokploy
- Add docker-compose.yml defining services for Passbolt and MariaDB
- Create template.toml with configurable domain, email, and database credentials
- Add meta.json with metadata, tags, and link to logo

* fix(meta): sort meta.json entries

* fix: passbolt template had several issues that broke deployment

- env variables were using old array format, changed to new table format
- mariadb healthcheck was broken (wrong command for mariadb 11)
- missing volume mounts for gpg keys, jwt tokens, and database
- setup instructions weren't visible to users, moved to docker-compose
- email config had circular references causing warnings
- tested admin user creation and confirmed working

everything works now, fully tested

* Update blueprints/passbolt/template.toml

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: Add Kokoro TTS FastAPI template (#353)  - Add CPU-optimized docker-compose.yml with source build - Add GPU-optimized docker-compose-gpu.yml for NVIDIA support - Add comprehensive template.toml with OpenAI-compatible API docs - Add kokoro-tts.svg logo and meta.json entry - Support streaming audio, timestamps, and multi-language TTS - Resolves #353

* updated the meta.json for the build errors

* removed the docker-compose-gpu.yml file

* Update docker-compose.yml

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
Siumauricio and others added 22 commits February 15, 2026 19:54
- Added guidelines for keeping pull requests small and focused.
- Emphasized the importance of testing contributions before submission to maintain a tidy PR queue.
* feat/add trilium next template

* fix: test verify to pr

* fix: fix validation error in docker-compose

* fix: static version to trilium image

---------

Co-authored-by: jbello <jbello@raodsystem.com>
* feat: add wuzapi template

* chore: remove temporary meta_entry.json

* fix(wuzapi): remove explicit networks and simplify depends_on for Dokploy compatibility

* fix(wuzapi): remove invalid config.mounts from template.toml

* Update Docker images for wuzapi and PostgreSQL

fixed the version of the wuzapi docker image.
* feat: add PostgreSQL with PgDog template

Add postgres-pgdog template providing PostgreSQL database with PgDog connection pooler, load balancer, and horizontal scaling proxy. Modern alternative to PgBouncer with multi-threading support.

- Configurable PostgreSQL (default: 18-alpine) and PgDog (default: v0.1.26) images
- Optional admin interface on port 6433
- Includes healthcheck and dependency management

* 🐛 fix(postgres-pgdog): add config mounts and fix postgres volume path

- Add [[config.mounts]] for pgdog.toml and users.toml
- Mount config files from ../files/ in docker-compose
- Change postgres volume to /var/lib/postgresql (postgres 18+ standard)
- Add explicit command with config paths to prevent warnings

* 🐛 fix(postgres-pgdog): correct binary path and use default config locations

- Mount configs to /pgdog/ (default WorkingDir) instead of /etc/pgdog/
- Remove explicit command (binary is /usr/local/bin/pgdog, not /pgdog/pgdog)
- Use image's default CMD with default config paths

* 🐛 fix(postgres-pgdog): remove invalid admin_port config field

- Remove admin_port from [general] section (not a valid field)
- Admin DB uses same port 6432 with special database name
- Remove commented admin domain config

* 🐛 fix(postgres-pgdog): enable external access via fixed port mapping

- Add fixed port 6432:6432 to postgres-pgdog service
- Remove HTTP domain config (incompatible with TCP protocol)
- Add comment for internal-only option

Fixes UnsupportedStartup errors when using domain config for PostgreSQL protocol access.

* 🐛 fix(postgres-pgdog): use standard port format per convention

- Change port mapping from '6432:6432' to '6432' format
- Follows Dokploy template convention for port declarations
- External access requires checking Dokploy UI for assigned host port

* 📝 docs(postgres-pgdog): clarify port settings comment

* 🐛 fix(postgres-pgdog): default to internal access with opt-in external port

- Remove obsolete version field
- Port mapping commented by default for security
- Users uncomment to enable external access on port 6432
* Add IPFS Kubo template

* Update init cmds

* Remove port forwarding
* Bump version to 2.1.0

* Update meta.json with new version number
Co-authored-by: Aaron McGuire <git.figment276@passmail.net>
…ork instructions (#595)

* fix: superset version fixed, tweak network instructions

* chore: simplify mapbox key

* fix: volume mount

* deps: bump superset to 6.0.0
* feat: Add imgproxy template

* fix: Configure docker-compose to match requirements

* fix: Process meta

* fix: Change logo name

* fix: Remove incorrect mounts

* fix: Expose 80 port instead of direct mapping

* fix: Change nginx cache keys default zone size and correct format negotiation

* fix: Escaping
…mproved setup (#672)

* Update docker-compose.yml

* fix: stable nextcloud, add redis, auto config, fixed mariadb

* fix: meta nextcloud

* fix: vars

* fix: non capital

* fix: template.toml

* fix: env vars

* fix: var naming

* fix: command

* fix: command

* another try

* keep it simple

* fix toml

* retry classic

* add: admin user

* no aito install

* feat: automated fixes

* fix  file pasth

* fix: manual script

* fix: script

* fix: png logo

* fix: meta logo data

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* feat: add MediaFetch template

* Corrected .toml

* .toml
* feat: add unleash template

* feat: update unleash template to version 7.4.0 and fix formatting

* feat: update database user in unleash template from postgres to unleash
* Update Notifuse template: replace PASETO with SECRET_KEY auth

* Update docker-compose.yml

---------

Co-authored-by: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com>
* chore: update convex backend and dashboard images, switch from port mapping to expose in docker-compose.yml

* fix: set default value for DISABLE_BEACON in docker-compose.yml
* Update grafana 12.4

* Update meta.json
* feat: add tuwunel template for matrix

* fix: replace HTML placeholder with actual SVG logo for tuwunel

* fix: remove enforcement and rename logo
@dosubot dosubot bot added the size:XL This PR changes 500-999 lines, ignoring generated files. label Mar 5, 2026
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying canary-templates with  Cloudflare Pages  Cloudflare Pages

Latest commit: d157cef
Status:⚡️  Build in progress...

View logs

@Siumauricio Siumauricio merged commit 4902cbf into main Mar 5, 2026
2 of 4 checks passed
@dosubot dosubot bot added the new-template label Mar 5, 2026
@dosubot
Copy link
Copy Markdown

dosubot bot commented Mar 5, 2026

Related Documentation

Checked 7 published document(s) in 1 knowledge base(s). No updates required.

How did I do? Any feedback?  Join Discord

version: "3.8"
services:
mediafetch:
image: lukedunsmoto/mediafetch:latest
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Version mismatch between image tag and meta.json

AGENTS.md requires the version field in meta.json to exactly match the Docker image tag. meta.json lists "version": "1.1.1" for mediafetch, but the image here uses latest. Users will not be deploying the advertised 1.1.1 version.

Suggested change
image: lukedunsmoto/mediafetch:latest
image: lukedunsmoto/mediafetch:1.1.1

Context Used: Rule from dashboard - AGENTS.md (source)

services:
evolution-api:
image: atendai/evolution-api:v2.1.2
image: evoapicloud/evolution-api:latest
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Version mismatch and unpinned latest tag

meta.json still has "version": "v2.1.2" for evolutionapi, but the image was changed to evoapicloud/evolution-api:latest. This violates the AGENTS.md requirement that the version field must match the image tag. Additionally, using latest means users will silently receive unverified future updates.

Please pin to a specific version tag and update meta.json to match.

Context Used: Rule from dashboard - AGENTS.md (source)

Comment on lines +4 to +9
verdaccio:
image: verdaccio/verdaccio:6
environment:
- VERDACCIO_PORT=4873
ports:
- 4873
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing restart policy and forbidden ports directive

Two issues in this service:

  1. There is no restart directive. AGENTS.md requires restart: unless-stopped or restart: always on every service.
  2. ports: - 4873 is forbidden. Use expose: - 4873 and configure routing via [[config.domains]] in template.toml.
Suggested change
verdaccio:
image: verdaccio/verdaccio:6
environment:
- VERDACCIO_PORT=4873
ports:
- 4873
verdaccio:
image: verdaccio/verdaccio:6
restart: unless-stopped
environment:
- VERDACCIO_PORT=4873
expose:
- 4873

Context Used: Rule from dashboard - AGENTS.md (source)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-template size:XL This PR changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.