Skip to content

feat: add ZeroClaw template (v0.6.4)#757

Open
theonlyhennygod wants to merge 1 commit intoDokploy:mainfrom
zeroclaw-labs:zeroclaw/add-template
Open

feat: add ZeroClaw template (v0.6.4)#757
theonlyhennygod wants to merge 1 commit intoDokploy:mainfrom
zeroclaw-labs:zeroclaw/add-template

Conversation

@theonlyhennygod
Copy link
Copy Markdown

@theonlyhennygod theonlyhennygod commented Mar 26, 2026

Summary

  • Adds ZeroClaw template (v0.6.4)
  • Image: ghcr.io/zeroclaw-labs/zeroclaw:0.6.4 (multi-arch: linux/amd64 + linux/arm64)
  • ZeroClaw is a fast, small, fully autonomous AI personal assistant infrastructure (100% Rust)

What is ZeroClaw?

Open-source AI agent daemon. Connects to any LLM provider (OpenRouter, OpenAI, Anthropic, Ollama), exposes a web dashboard + REST/WebSocket API on port 42617. Features: persistent memory, multi-channel chat (Discord, Telegram, Matrix, Slack, WhatsApp, Nostr, Lark), scheduled tasks, autonomous tool use.

Checklist

  • Read README.md suggestions
  • Tested template in personal Dokploy instance
  • Confirmed all requirements met
  • No ports, container_name, or custom networks
  • Pinned image version (not latest)
  • No hardcoded secrets (uses Dokploy helpers)
  • Ran dedupe-and-sort-meta.js

Testing

  • Deployed via Compose service import
  • Service starts and gateway is accessible on port 42617
  • Health check passes

Files

  • blueprints/zeroclaw/docker-compose.yml
  • blueprints/zeroclaw/template.toml
  • blueprints/zeroclaw/zeroclaw.png (logo)
  • meta.json (added entry)

Greptile Summary

This PR adds a new ZeroClaw template (v0.6.4), a Rust-based autonomous AI assistant daemon that exposes a web dashboard and REST/WebSocket API on port 42617. The implementation is clean and follows all repository conventions.

  • All required Compose conventions are met: version: "3.8", service name matches the folder (zeroclaw), restart: unless-stopped, expose instead of ports, no container_name or custom networks, and a named persistent volume.
  • template.toml generates a random 64-character API_KEY and correctly maps the domain to port 42617.
  • The meta.json entry contains all required fields (id, name, version, description, logo, links, tags); the version 0.6.4 matches the Docker image tag exactly.
  • The apparent removal of the strapi entry from meta.json is not a regression — the base branch contained a duplicate strapi entry, and the dedupe-and-sort-meta.js script correctly removed the extra copy.
  • Two minor style suggestions: the ${PROVIDER:-openrouter} default in docker-compose.yml is redundant (template.toml already injects the value), and PROVIDER could optionally be surfaced as a configurable template variable to make it easier for users to switch LLM providers at deploy time.

Confidence Score: 5/5

Safe to merge — no functional or security issues; all template conventions are met.

The ZeroClaw template follows every hard requirement from AGENTS.md: correct Compose version, proper service naming, no forbidden directives, pinned image, no hardcoded secrets, and a valid meta.json entry. The only open items are two non-blocking P2 style suggestions. The Strapi removal is correct deduplication and not a regression.

No files require special attention.

Important Files Changed

Filename Overview
blueprints/zeroclaw/docker-compose.yml New Compose file following all conventions: version 3.8, service named zeroclaw (matches folder), restart: unless-stopped, expose instead of ports, named volume. Minor: ${PROVIDER:-openrouter} fallback is redundant with the explicit PROVIDER=openrouter injected by template.toml.
blueprints/zeroclaw/template.toml New template config. Generates a 64-char API key, maps the domain, and wires it to port 42617. PROVIDER is hardcoded to openrouter — functional but not user-configurable through the Dokploy UI.
meta.json Adds the zeroclaw entry with all required fields; version 0.6.4 matches the Docker image tag. The removal of one strapi block is correct deduplication — the base branch had two identical strapi entries and dedupe-and-sort-meta.js removed one.

Reviews (1): Last reviewed commit: "feat: add ZeroClaw template (v0.6.4)" | Re-trigger Greptile

Greptile also left 2 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 26, 2026
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

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

restart: unless-stopped
environment:
- API_KEY=${API_KEY}
- PROVIDER=${PROVIDER:-openrouter}
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 Redundant default value in compose env

${PROVIDER:-openrouter} carries a shell-style fallback in the Compose file, but template.toml already injects PROVIDER=openrouter unconditionally into the container environment. When deployed via Dokploy the two definitions will always agree, so the :-openrouter fallback is dead code. Consider simplifying to a plain PROVIDER=${PROVIDER} (or removing the line entirely from the Compose file and relying solely on template.toml) to avoid confusion for anyone reading the raw Compose.

Suggested change
- PROVIDER=${PROVIDER:-openrouter}
- PROVIDER=${PROVIDER}

[config]
env = [
"API_KEY=${api_key}",
"PROVIDER=openrouter",
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 PROVIDER not exposed as a configurable variable

The PR description highlights that ZeroClaw supports OpenRouter, OpenAI, Anthropic, and Ollama, yet PROVIDER is hardcoded to openrouter rather than surfaced as a template variable. Users who want a different provider must manually edit the env after deployment.

Consider promoting it to a [variables] entry (e.g. provider = "openrouter") and referencing it as PROVIDER=${provider} in the env array. This is optional — the hardcoded default is fully functional — but it would improve the out-of-box experience for users who want Anthropic or Ollama.

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!

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