Skip to content

feat: add Matomo blueprint#765

Open
sanadidari wants to merge 8 commits intoDokploy:canaryfrom
sanadidari:canary
Open

feat: add Matomo blueprint#765
sanadidari wants to merge 8 commits intoDokploy:canaryfrom
sanadidari:canary

Conversation

@sanadidari
Copy link
Copy Markdown

@sanadidari sanadidari commented Apr 1, 2026

What is this PR about?

New PR of Matomo Template.

Checklist

  • I have read the suggestions in the README.md file
  • I have tested the template in my instance
  • I have added tests that demonstrate that my correction works

Issues related

Adds Matomo one-click deployment.

Greptile Summary

This PR adds a Matomo web analytics blueprint for one-click deployment via Dokploy. The docker-compose.yml is mostly well-structured (correct version, health-checked MariaDB, named volumes, no ports/container_name/networks), but there are two blocking issues in template.toml and one in meta.json that need to be resolved before this template will work correctly.

Key issues found:

  • template.toml schema is incorrect (P1): The file uses a [[variables]] array-of-tables format with name/label/defaultValue/placeholder keys — a schema used by no other blueprint in the repo. Every other template uses a flat [variables] table (key = value) plus a [config] block with an env array and [[config.domains]] for routing. Without the [[config.domains]] section, Dokploy won't configure the Traefik reverse-proxy route for the service.
  • Hardcoded default credentials (P1): Both DATABASE_ROOT_PASSWORD and DATABASE_PASSWORD default to literal placeholder strings. Per AGENTS.md, secrets must use Dokploy's built-in helpers so each deployment receives unique credentials.
  • Version mismatch in meta.json (P1): \"version\": \"latest\" does not match the pinned image tag matomo:5.1-apache in docker-compose.yml. AGENTS.md requires these to match exactly.
  • Logo format (P2): AGENTS.md prefers SVG logos; a PNG is provided.

Confidence Score: 2/5

Not safe to merge — the template.toml uses an unsupported schema and is missing the domain-routing section, making the template non-functional as submitted.

Three P1 issues: wrong template.toml format (unsupported schema + missing [[config.domains]]), hardcoded credentials that violate the project's explicit security policy, and a version mismatch in meta.json. All three are straightforward to fix but must be addressed before the template can be used reliably in Dokploy.

blueprints/matomo/template.toml needs a full rewrite to match the standard schema. meta.json needs the version field corrected.

Reviews (1): Last reviewed commit: "feat: add Matomo blueprint (v2 - fixed b..." | Re-trigger Greptile

Greptile also left 4 inline comments on this PR.

(3/5) Reply to the agent's comments like "Can you suggest a fix for this @greptileai?" or ask follow-up questions!

Context used:

  • Context used - AGENTS.md (source)

@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Apr 1, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 1, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
templates ✅ Ready (View Log) Visit Preview d70f45f

meta.json Outdated
"id": "matomo",
"name": "Matomo",
"version": "latest",
"description": "Leading open-source web analytics platform with global data ownership.",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Version mismatch with docker-compose.yml

meta.json specifies "version": "latest", but docker-compose.yml pins the image to matomo:5.1-apache. Per AGENTS.md: "Version: MUST match Docker image version in docker-compose.yml."

Suggested change
"description": "Leading open-source web analytics platform with global data ownership.",
"version": "5.1-apache",

Comment on lines +37 to +40
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DATABASE_ROOT_PASSWORD}"]
timeout: 5s
retries: 5
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Healthcheck missing interval field

The healthcheck block omits interval, which defaults to 30 seconds in Docker. Adding an explicit interval (and optionally start_period) makes the startup behaviour clearer and avoids surprises on slow hosts.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Comment on lines +1 to +29
name = "Matomo"
id = "matomo"
description = "Leading open-source web analytics platform"

[[variables]]
name = "DOMAINS"
label = "Matomo Domain"
defaultValue = ""
placeholder = "analytics.example.com"

[[variables]]
name = "DATABASE_ROOT_PASSWORD"
label = "MariaDB Root Password"
defaultValue = "change-me-root"

[[variables]]
name = "DATABASE_NAME"
label = "Database Name"
defaultValue = "matomo"

[[variables]]
name = "DATABASE_USERNAME"
label = "Database User"
defaultValue = "matomo"

[[variables]]
name = "DATABASE_PASSWORD"
label = "Database Password"
defaultValue = "change-me-user"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Non-standard template.toml format — likely broken

This template uses [[variables]] (array-of-tables) with name, label, defaultValue, and placeholder keys. This format is not used by any other blueprint in the repository — every other template uses [variables] as a flat key-value table and includes [config], [[config.domains]], and env = [...] sections.

Per AGENTS.md, the correct schema mirrors templates like blueprints/unleash/template.toml or blueprints/akaunting/template.toml: a flat [variables] table containing key-value pairs (using Dokploy helpers for secrets), a [config] block with an env array, and [[config.domains]] for routing.

The [[variables]] array schema is unrecognised by all other blueprints and will likely not be parsed correctly by Dokploy. Additionally, the missing [[config.domains]] section means reverse-proxy routing for the service won't be configured at all.

Comment on lines +13 to +14
label = "MariaDB Root Password"
defaultValue = "change-me-root"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Hardcoded weak default credentials

DATABASE_ROOT_PASSWORD and DATABASE_PASSWORD (line 28) use literal placeholder strings as default values. Per AGENTS.md: "NEVER hardcode secrets in templates — use Dokploy's variable system with helpers."

All other database-backed templates in this repo (e.g. blueprints/unleash/template.toml, blueprints/akaunting/template.toml) auto-generate strong, unique passwords using Dokploy's built-in password helper so that every deployment gets distinct credentials rather than a shared, predictable default.

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

Labels

new-template size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant