Skip to content

feat: add crawlab#759

Open
spacewaterbear wants to merge 3 commits intoDokploy:canaryfrom
spacewaterbear:crawlab
Open

feat: add crawlab#759
spacewaterbear wants to merge 3 commits intoDokploy:canaryfrom
spacewaterbear:crawlab

Conversation

@spacewaterbear
Copy link
Copy Markdown

@spacewaterbear spacewaterbear commented Mar 28, 2026

What is this PR about?

New PR of Crawlab (crawler management plateform)

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

image

Greptile Summary

This PR adds a Crawlab (distributed web crawler management platform) template to the blueprint collection, deploying a master node backed by MongoDB. While the core concept and meta.json entry are solid, the docker-compose.yml and template.toml have several violations of the mandatory Dokploy contribution conventions that need to be resolved before merging.

Issues found:

  • Compose version (docker-compose.yml line 1): Must be "3.8", not "3.3".
  • container_name must be removed (docker-compose.yml line 6): Dokploy manages container naming; explicit names cause conflicts.
  • ports must be replaced with expose (docker-compose.yml lines 20–22): External port routing is handled by Dokploy's proxy — using ports bypasses this.
  • Service name mismatch (docker-compose.yml line 4): The service is named master but must exactly match the blueprint folder name crawlab. The serviceName in template.toml must be updated accordingly.
  • Invalid env var format in template.toml (lines 11–13): The [config.env] object subtable syntax is not supported — must use an array of strings under [config].
  • Unpinned image tag (crawlabteam/crawlab:latest): Should be pinned to a specific release to prevent silent upstream changes and supply chain risk. The version in meta.json must then be updated to match.

Confidence Score: 2/5

Not safe to merge — multiple mandatory Dokploy conventions are violated in both docker-compose.yml and template.toml.

There are four P1 violations in docker-compose.yml (wrong Compose version, forbidden container_name, forbidden ports, wrong service name) and one P1 violation in template.toml (invalid env var syntax), all explicitly required by the project AGENTS.md guide. These will result in incorrect or broken deployments.

blueprints/crawlab/docker-compose.yml and blueprints/crawlab/template.toml both need corrections before merging.

Important Files Changed

Filename Overview
blueprints/crawlab/docker-compose.yml Multiple violations of required Dokploy conventions: wrong Compose version (3.3 instead of 3.8), forbidden container_name and ports directives, service name (master) doesn't match blueprint folder name (crawlab), and the main image uses unpinned latest tag.
blueprints/crawlab/template.toml Environment variables are declared using invalid object syntax ([config.env] subtable) instead of the required array-of-strings format. The serviceName also needs updating once the service is renamed to match the folder.
meta.json Entry is well-formed with all required fields, correct id matching the folder name, valid links, and appropriate tags. The version: latest mirrors the unpinned image tag and should be updated when the image is pinned.

Reviews (1): Last reviewed commit: "feat: add crawlab - re order" | Re-trigger Greptile

Greptile also left 6 inline comments on this PR.

(2/5) Greptile learns from your feedback when you react with thumbs up/down!

Context used:

  • Context used - AGENTS.md (source)

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

github-actions bot commented Mar 28, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

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

@@ -0,0 +1,39 @@
version: "3.3"
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 Wrong Docker Compose version

Per the project's contribution guide, the Compose file version must be "3.8". Using "3.3" is a convention violation that may cause compatibility issues with Dokploy's compose handling.

Suggested change
version: "3.3"
version: "3.8"

Context Used: AGENTS.md (source)

Comment on lines +4 to +6
master:
image: crawlabteam/crawlab:latest
container_name: crawlab_master
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 Service name must match blueprint folder name; container_name must be removed

Two separate convention violations here:

  1. The service name must exactly match the blueprint folder name (crawlab). Using master breaks the naming convention required by Dokploy — the domain config in template.toml references serviceName = "master", but the convention requires it to match the folder.
  2. container_name must never be specified — Dokploy manages container naming. Explicit container names can cause conflicts across deployments.
Suggested change
master:
image: crawlabteam/crawlab:latest
container_name: crawlab_master
crawlab:
image: crawlabteam/crawlab:latest

Context Used: AGENTS.md (source)

Comment on lines +20 to +22
ports:
- "8080"
- "9666"
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 ports must not be used; use expose instead

Per the contribution guide, ports must never be included in Dokploy templates — Dokploy handles external port routing via its proxy layer. Use expose to declare internal ports without publishing them to the host.

Suggested change
ports:
- "8080"
- "9666"
expose:
- "8080"
- "9666"

Context Used: AGENTS.md (source)


services:
master:
image: crawlabteam/crawlab: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.

P2 Unpinned image tag is a security risk

Using crawlabteam/crawlab:latest means any upstream change can silently alter the deployed version, including potentially breaking changes or supply chain attacks. The contribution guide explicitly requires images to be pinned to a specific version (e.g., crawlabteam/crawlab:0.6.0). The version field in meta.json must also match.

(Replace 0.6.0 with the actual latest stable release tag.)

Context Used: AGENTS.md (source)


[config]
[[config.domains]]
serviceName = "master"
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 serviceName must match the corrected service name

Once the service in docker-compose.yml is renamed from master to crawlab (to comply with the folder-name convention), this value must be updated to match.

Suggested change
serviceName = "master"
serviceName = "crawlab"

Context Used: AGENTS.md (source)

Comment on lines +11 to +13
[config.env]
MONGO_USERNAME = "${MONGO_USERNAME}"
MONGO_PASSWORD = "${MONGO_PASSWORD}"
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 Incorrect config format for environment variables

The contribution guide explicitly flags this as a common pitfall: environment variables in template.toml must be declared as an array of strings under [config], not as a TOML subtable ([config.env]). The current object-style subtable will not be parsed correctly by Dokploy. Please refer to the env array format described in AGENTS.md under the template.toml conventions section.

Context Used: 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: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