diff --git a/blueprints/ackee/instructions.md b/blueprints/ackee/instructions.md
index 318691780..b107d3602 100644
--- a/blueprints/ackee/instructions.md
+++ b/blueprints/ackee/instructions.md
@@ -1,4 +1,4 @@
-## TODO
+## Instructions
We don't have nothing to show here....
diff --git a/blueprints/cloudflare-ddns/cloudflare-ddns.svg b/blueprints/cloudflare-ddns/cloudflare-ddns.svg
new file mode 100644
index 000000000..efe800bcc
--- /dev/null
+++ b/blueprints/cloudflare-ddns/cloudflare-ddns.svg
@@ -0,0 +1,8 @@
+
diff --git a/blueprints/cloudflare-ddns/docker-compose.yml b/blueprints/cloudflare-ddns/docker-compose.yml
new file mode 100644
index 000000000..179139d88
--- /dev/null
+++ b/blueprints/cloudflare-ddns/docker-compose.yml
@@ -0,0 +1,16 @@
+# For more details, see:
+# - https://github.com/favonia/cloudflare-ddns
+services:
+ cloudflare-ddns:
+ image: favonia/cloudflare-ddns:1
+ network_mode: host
+ restart: unless-stopped
+ user: "1000:1000"
+ read_only: true
+ cap_drop: [all]
+ security_opt: [no-new-privileges:true]
+ environment:
+ - CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN:?}
+ - DOMAINS=${DOMAINS:?}
+ - PROXIED=false
+ - IP6_PROVIDER=none
diff --git a/blueprints/cloudflare-ddns/template.toml b/blueprints/cloudflare-ddns/template.toml
new file mode 100644
index 000000000..f40da5adc
--- /dev/null
+++ b/blueprints/cloudflare-ddns/template.toml
@@ -0,0 +1,9 @@
+variables = {}
+
+[config]
+domains = []
+mounts = []
+
+[config.env]
+CLOUDFLARE_API_TOKEN = ""
+DOMAINS = "example.org,www.example.org,example.io"
diff --git a/blueprints/cloudflared/docker-compose.yml b/blueprints/cloudflared/docker-compose.yml
index d9fc27419..b6bf54580 100644
--- a/blueprints/cloudflared/docker-compose.yml
+++ b/blueprints/cloudflared/docker-compose.yml
@@ -3,14 +3,14 @@ services:
image: 'cloudflare/cloudflared:latest'
environment:
# Don't forget to set this in your Dokploy Environment
- - 'TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN}'
+ - 'TUNNEL_TOKEN=${CLOUDFLARE_TUNNEL_TOKEN:?}'
network_mode: host
restart: unless-stopped
command: [
"tunnel",
# More tunnel run parameters here:
- # https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/configure-tunnels/tunnel-run-parameters/
+ # https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/configure-tunnels/cloudflared-parameters/run-parameters/
"--no-autoupdate",
#"--protocol", "http2",
diff --git a/blueprints/cloudflared/template.toml b/blueprints/cloudflared/template.toml
index 242197bdf..7d2557cc3 100644
--- a/blueprints/cloudflared/template.toml
+++ b/blueprints/cloudflared/template.toml
@@ -2,5 +2,7 @@ variables = {}
[config]
domains = []
-env = ["CLOUDFLARE_TUNNEL_TOKEN=\"\""]
mounts = []
+
+[config.env]
+CLOUDFLARE_TUNNEL_TOKEN = ""
diff --git a/blueprints/openclaw/docker-compose.yml b/blueprints/openclaw/docker-compose.yml
new file mode 100644
index 000000000..e6aba49bb
--- /dev/null
+++ b/blueprints/openclaw/docker-compose.yml
@@ -0,0 +1,86 @@
+services:
+ openclaw:
+ image: "coollabsio/openclaw:2026.2.6"
+ environment:
+ - AUTH_USERNAME=${AUTH_USERNAME}
+ - AUTH_PASSWORD=${AUTH_PASSWORD}
+ - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
+ - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
+ - OPENAI_API_KEY=${OPENAI_API_KEY}
+ - OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
+ - GEMINI_API_KEY=${GEMINI_API_KEY}
+ - XAI_API_KEY=${XAI_API_KEY}
+ - GROQ_API_KEY=${GROQ_API_KEY}
+ - MISTRAL_API_KEY=${MISTRAL_API_KEY}
+ - CEREBRAS_API_KEY=${CEREBRAS_API_KEY}
+ - VENICE_API_KEY=${VENICE_API_KEY}
+ - MOONSHOT_API_KEY=${MOONSHOT_API_KEY}
+ - KIMI_API_KEY=${KIMI_API_KEY}
+ - MINIMAX_API_KEY=${MINIMAX_API_KEY}
+ - ZAI_API_KEY=${ZAI_API_KEY}
+ - AI_GATEWAY_API_KEY=${AI_GATEWAY_API_KEY}
+ - OPENCODE_API_KEY=${OPENCODE_API_KEY}
+ - SYNTHETIC_API_KEY=${SYNTHETIC_API_KEY}
+ - COPILOT_GITHUB_TOKEN=${COPILOT_GITHUB_TOKEN}
+ - XIAOMI_API_KEY=${XIAOMI_API_KEY}
+ - OPENCLAW_PRIMARY_MODEL=${OPENCLAW_PRIMARY_MODEL}
+ - DEEPGRAM_API_KEY=${DEEPGRAM_API_KEY}
+ - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
+ - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
+ - AWS_REGION=${AWS_REGION:-us-east-1}
+ - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN}
+ - BEDROCK_PROVIDER_FILTER=${BEDROCK_PROVIDER_FILTER:-anthropic}
+ - OLLAMA_BASE_URL=${OLLAMA_BASE_URL}
+ - PORT=8080
+ - OPENCLAW_GATEWAY_PORT=18789
+ - OPENCLAW_GATEWAY_BIND=${OPENCLAW_GATEWAY_BIND:-loopback}
+ - OPENCLAW_STATE_DIR=/data/.openclaw
+ - OPENCLAW_WORKSPACE_DIR=/data/workspace
+ - BROWSER_CDP_URL=http://browser:9223
+ - BROWSER_DEFAULT_PROFILE=${BROWSER_DEFAULT_PROFILE:-openclaw}
+ - BROWSER_EVALUATE_ENABLED=${BROWSER_EVALUATE_ENABLED:-true}
+ - BROWSER_SNAPSHOT_MODE=${BROWSER_SNAPSHOT_MODE:-efficient}
+ - BROWSER_REMOTE_TIMEOUT_MS=${BROWSER_REMOTE_TIMEOUT_MS:-1500}
+ - BROWSER_REMOTE_HANDSHAKE_TIMEOUT_MS=${BROWSER_REMOTE_HANDSHAKE_TIMEOUT_MS:-3000}
+ - HOOKS_ENABLED=${HOOKS_ENABLED:-false}
+ - HOOKS_PATH=${HOOKS_PATH:-/hooks}
+ - MOONSHOT_BASE_URL=${MOONSHOT_BASE_URL:-https://api.moonshot.ai/v1}
+ - KIMI_BASE_URL=${KIMI_BASE_URL:-https://api.moonshot.ai/anthropic}
+ - TELEGRAM_BOT_TOKEN=$TELEGRAM_BOT_TOKEN
+ - DISCORD_BOT_TOKEN=$DISCORD_BOT_TOKEN
+ - SLACK_BOT_TOKEN=$SLACK_BOT_TOKEN
+ - SLACK_APP_TOKEN=$SLACK_APP_TOKEN
+ - WHATSAPP_ENABLED=$WHATSAPP_ENABLED
+ - OPENCLAW_DOCKER_APT_PACKAGES=$OPENCLAW_DOCKER_APT_PACKAGES
+ volumes:
+ - "openclaw-data:/data"
+ depends_on:
+ browser:
+ condition: service_healthy
+ healthcheck:
+ test: ["CMD", "curl", "-sf", "http://127.0.0.1:8080/healthz"]
+ interval: 10s
+ timeout: 10s
+ retries: 5
+
+
+ browser:
+ image: "coollabsio/openclaw-browser:latest"
+ environment:
+ - PUID=1000
+ - PGID=1000
+ - TZ=Etc/UTC
+ - CHROME_CLI=--remote-debugging-port=9222
+ volumes:
+ - "browser-data:/config"
+ shm_size: 2g
+ healthcheck:
+ test: ["CMD-SHELL", "bash -c ':> /dev/tcp/127.0.0.1/9222' || exit 1"]
+ interval: 5s
+ timeout: 5s
+ retries: 10
+
+
+volumes:
+ openclaw-data:
+ browser-data:
diff --git a/blueprints/openclaw/openclaw.svg b/blueprints/openclaw/openclaw.svg
new file mode 100644
index 000000000..6d89f848c
--- /dev/null
+++ b/blueprints/openclaw/openclaw.svg
@@ -0,0 +1,60 @@
+
+
\ No newline at end of file
diff --git a/blueprints/openclaw/template.toml b/blueprints/openclaw/template.toml
new file mode 100644
index 000000000..188d1e831
--- /dev/null
+++ b/blueprints/openclaw/template.toml
@@ -0,0 +1,21 @@
+[variables]
+gateway_token = "${password:32}"
+auth_username = "dokploy"
+auth_password = "${password:32}"
+
+[config]
+[[config.domains]]
+serviceName = "openclaw"
+port = 8080
+host = "${domain}"
+
+[config.env]
+OPENCLAW_GATEWAY_TOKEN = "${gateway_token}"
+OPENCLAW_GATEWAY_PORT = 18789
+AUTH_USERNAME="${auth_username}"
+AUTH_PASSWORD="${auth_password}"
+OPENCLAW_BRIDGE_PORT = 18790
+OPENCLAW_GATEWAY_BIND="lan"
+OPENCLAW_PLUGINS="discord,memory-core"
+# Get here https://openrouter.ai/
+OPENROUTER_API_KEY="YOUR-API-KEY"
diff --git a/meta.json b/meta.json
index 7e59e5a01..515022737 100644
--- a/meta.json
+++ b/meta.json
@@ -1299,6 +1299,23 @@
"console"
]
},
+ {
+ "id": "cloudflare-ddns",
+ "name": "Cloudflare DDNS",
+ "version": "1.15.1",
+ "description": "A small, feature-rich, and robust Cloudflare DDNS updater.",
+ "logo": "cloudflare-ddns.svg",
+ "links": {
+ "github": "https://github.com/favonia/cloudflare-ddns",
+ "website": "https://github.com/favonia/cloudflare-ddns",
+ "docs": "https://github.com/favonia/cloudflare-ddns"
+ },
+ "tags": [
+ "cloud",
+ "networking",
+ "ddns"
+ ]
+ },
{
"id": "cloudflared",
"name": "Cloudflared",
@@ -1307,8 +1324,8 @@
"logo": "cloudflared.svg",
"links": {
"github": "https://github.com/cloudflare/cloudflared",
- "website": "https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/",
- "docs": "https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/"
+ "website": "https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/",
+ "docs": "https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/get-started/"
},
"tags": [
"cloud",
@@ -4520,6 +4537,27 @@
"surrealdb"
]
},
+ {
+ "id": "openclaw",
+ "name": "Openclaw",
+ "version": "2026.1.29",
+ "description": "WhatsApp gateway CLI with Pi RPC agent - self-hosted AI-powered messaging platform",
+ "logo": "openclaw.svg",
+ "links": {
+ "github": "https://github.com/openclaw/openclaw",
+ "website": "https://openclaw.ai/",
+ "docs": "https://docs.openclaw.ai/"
+ },
+ "tags": [
+ "whatsapp",
+ "ai",
+ "messaging",
+ "chatbot",
+ "gateway",
+ "self-hosted",
+ "automation"
+ ]
+ },
{
"id": "opengist",
"name": "OpenGist",