feat(openclaw): add Openclaw service with environment variables and health checks

- Implemented Openclaw service in Service.php to manage environment variables and passwords.
- Added Openclaw SVG icon for branding.
- Created openclaw.yaml for Docker Compose configuration, including necessary environment variables and volume mappings.
- Updated service-templates-latest.json and service-templates.json to include Openclaw service details and metadata.
This commit is contained in:
Andras Bacsai 2026-02-09 12:33:17 +01:00
parent 3a00984593
commit 63a1c5c0c7
6 changed files with 227 additions and 10 deletions

View file

@ -881,7 +881,7 @@ public function extraFields()
],
]);
}
if ($SERVICE_PASSWORD_LINKDING) {
if ($SERVICE_PASSWORD_LINKDING) {
$data = $data->merge([
'Superuser Password' => [
'key' => data_get($SERVICE_PASSWORD_LINKDING, 'key'),
@ -1118,6 +1118,40 @@ public function extraFields()
}
$fields->put('Sessy', $data->toArray());
break;
case $image->contains('coollabsio/openclaw'):
$data = collect([]);
$username = $this->environment_variables()->where('key', 'AUTH_USERNAME')->first();
$password = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_OPENCLAW')->first();
$gateway_token = $this->environment_variables()->where('key', 'SERVICE_PASSWORD_64_GATEWAYTOKEN')->first();
if ($username) {
$data = $data->merge([
'Username' => [
'key' => data_get($username, 'key'),
'value' => data_get($username, 'value'),
'readonly' => true,
],
]);
}
if ($password) {
$data = $data->merge([
'Password' => [
'key' => data_get($password, 'key'),
'value' => data_get($password, 'value'),
'isPassword' => true,
],
]);
}
if ($gateway_token) {
$data = $data->merge([
'Gateway Token' => [
'key' => data_get($gateway_token, 'key'),
'value' => data_get($gateway_token, 'value'),
'isPassword' => true,
],
]);
}
$fields->put('Openclaw', $data->toArray());
break;
default:
$data = collect([]);
$admin_user = $this->environment_variables()->where('key', 'SERVICE_USER_ADMIN')->first();

18
package-lock.json generated
View file

@ -949,8 +949,7 @@
"resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz",
"integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==",
"dev": true,
"license": "MIT",
"peer": true
"license": "MIT"
},
"node_modules/@tailwindcss/forms": {
"version": "0.5.10",
@ -1403,7 +1402,8 @@
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz",
"integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==",
"license": "MIT"
"license": "MIT",
"peer": true
},
"node_modules/asynckit": {
"version": "0.4.0",
@ -1556,7 +1556,6 @@
"integrity": "sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.4.1",
@ -1571,7 +1570,6 @@
"integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=10.0.0"
}
@ -2332,6 +2330,7 @@
"integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@ -2408,6 +2407,7 @@
"integrity": "sha512-wp3HqIIUc1GRyu1XrP6m2dgyE9MoCsXVsWNlohj0rjSkLf+a0jLvEyVubdg58oMk7bhjBWnFClgp8jfAa6Ak4Q==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"tweetnacl": "^1.0.3"
}
@ -2512,7 +2512,6 @@
"integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@socket.io/component-emitter": "~3.1.0",
"debug": "~4.4.1"
@ -2557,7 +2556,8 @@
"version": "4.1.18",
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz",
"integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==",
"license": "MIT"
"license": "MIT",
"peer": true
},
"node_modules/tapable": {
"version": "2.3.0",
@ -2609,6 +2609,7 @@
"integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"esbuild": "^0.27.0",
"fdir": "^6.5.0",
@ -2708,6 +2709,7 @@
"integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@vue/compiler-dom": "3.5.26",
"@vue/compiler-sfc": "3.5.26",
@ -2730,7 +2732,6 @@
"integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"dev": true,
"license": "MIT",
"peer": true,
"engines": {
"node": ">=10.0.0"
},
@ -2752,7 +2753,6 @@
"resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz",
"integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==",
"dev": true,
"peer": true,
"engines": {
"node": ">=0.4.0"
}

60
public/svgs/openclaw.svg Normal file
View file

@ -0,0 +1,60 @@
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" viewBox="0 0 16 16" role="img" aria-label="Pixel lobster">
<rect width="16" height="16" fill="none"/>
<!-- outline -->
<g fill="#3a0a0d">
<rect x="1" y="5" width="1" height="3"/>
<rect x="2" y="4" width="1" height="1"/>
<rect x="2" y="8" width="1" height="1"/>
<rect x="3" y="3" width="1" height="1"/>
<rect x="3" y="9" width="1" height="1"/>
<rect x="4" y="2" width="1" height="1"/>
<rect x="4" y="10" width="1" height="1"/>
<rect x="5" y="2" width="6" height="1"/>
<rect x="11" y="2" width="1" height="1"/>
<rect x="12" y="3" width="1" height="1"/>
<rect x="12" y="9" width="1" height="1"/>
<rect x="13" y="4" width="1" height="1"/>
<rect x="13" y="8" width="1" height="1"/>
<rect x="14" y="5" width="1" height="3"/>
<rect x="5" y="11" width="6" height="1"/>
<rect x="4" y="12" width="1" height="1"/>
<rect x="11" y="12" width="1" height="1"/>
<rect x="3" y="13" width="1" height="1"/>
<rect x="12" y="13" width="1" height="1"/>
<rect x="5" y="14" width="6" height="1"/>
</g>
<!-- body -->
<g fill="#ff4f40">
<rect x="5" y="3" width="6" height="1"/>
<rect x="4" y="4" width="8" height="1"/>
<rect x="3" y="5" width="10" height="1"/>
<rect x="3" y="6" width="10" height="1"/>
<rect x="3" y="7" width="10" height="1"/>
<rect x="4" y="8" width="8" height="1"/>
<rect x="5" y="9" width="6" height="1"/>
<rect x="5" y="12" width="6" height="1"/>
<rect x="6" y="13" width="4" height="1"/>
</g>
<!-- claws -->
<g fill="#ff775f">
<rect x="1" y="6" width="2" height="1"/>
<rect x="2" y="5" width="1" height="1"/>
<rect x="2" y="7" width="1" height="1"/>
<rect x="13" y="6" width="2" height="1"/>
<rect x="13" y="5" width="1" height="1"/>
<rect x="13" y="7" width="1" height="1"/>
</g>
<!-- eyes -->
<g fill="#081016">
<rect x="6" y="5" width="1" height="1"/>
<rect x="9" y="5" width="1" height="1"/>
</g>
<g fill="#f5fbff">
<rect x="6" y="4" width="1" height="1"/>
<rect x="9" y="4" width="1" height="1"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,87 @@
# documentation: https://github.com/coollabsio/openclaw
# slogan: AI-powered coding assistant with multi-provider support and browser automation.
# category: ai
# tags: ai, coding, assistant, llm, anthropic, openai, automation
# logo: svgs/openclaw.svg
# port: 8080
services:
openclaw:
image: "coollabsio/openclaw:2026.2.6"
environment:
- SERVICE_FQDN_OPENCLAW_8080
- AUTH_USERNAME=$SERVICE_USER_OPENCLAW
- AUTH_PASSWORD=$SERVICE_PASSWORD_OPENCLAW
- OPENCLAW_GATEWAY_TOKEN=$SERVICE_PASSWORD_64_GATEWAYTOKEN
- 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

View file

@ -3396,6 +3396,24 @@
"minversion": "0.0.0",
"port": "8080"
},
"openclaw": {
"documentation": "https://github.com/coollabsio/openclaw?utm_source=coolify.io",
"slogan": "AI-powered coding assistant with multi-provider support and browser automation.",
"compose": "c2VydmljZXM6CiAgb3BlbmNsYXc6CiAgICBpbWFnZTogJ2Nvb2xsYWJzaW8vb3BlbmNsYXc6MjAyNi4yLjYnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fT1BFTkNMQVdfODA4MAogICAgICAtIEFVVEhfVVNFUk5BTUU9JFNFUlZJQ0VfVVNFUl9PUEVOQ0xBVwogICAgICAtIEFVVEhfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfT1BFTkNMQVcKICAgICAgLSBPUEVOQ0xBV19HQVRFV0FZX1RPS0VOPSRTRVJWSUNFX1BBU1NXT1JEXzY0X0dBVEVXQVlUT0tFTgogICAgICAtICdBTlRIUk9QSUNfQVBJX0tFWT0ke0FOVEhST1BJQ19BUElfS0VZfScKICAgICAgLSAnT1BFTkFJX0FQSV9LRVk9JHtPUEVOQUlfQVBJX0tFWX0nCiAgICAgIC0gJ09QRU5ST1VURVJfQVBJX0tFWT0ke09QRU5ST1VURVJfQVBJX0tFWX0nCiAgICAgIC0gJ0dFTUlOSV9BUElfS0VZPSR7R0VNSU5JX0FQSV9LRVl9JwogICAgICAtICdYQUlfQVBJX0tFWT0ke1hBSV9BUElfS0VZfScKICAgICAgLSAnR1JPUV9BUElfS0VZPSR7R1JPUV9BUElfS0VZfScKICAgICAgLSAnTUlTVFJBTF9BUElfS0VZPSR7TUlTVFJBTF9BUElfS0VZfScKICAgICAgLSAnQ0VSRUJSQVNfQVBJX0tFWT0ke0NFUkVCUkFTX0FQSV9LRVl9JwogICAgICAtICdWRU5JQ0VfQVBJX0tFWT0ke1ZFTklDRV9BUElfS0VZfScKICAgICAgLSAnTU9PTlNIT1RfQVBJX0tFWT0ke01PT05TSE9UX0FQSV9LRVl9JwogICAgICAtICdLSU1JX0FQSV9LRVk9JHtLSU1JX0FQSV9LRVl9JwogICAgICAtICdNSU5JTUFYX0FQSV9LRVk9JHtNSU5JTUFYX0FQSV9LRVl9JwogICAgICAtICdaQUlfQVBJX0tFWT0ke1pBSV9BUElfS0VZfScKICAgICAgLSAnQUlfR0FURVdBWV9BUElfS0VZPSR7QUlfR0FURVdBWV9BUElfS0VZfScKICAgICAgLSAnT1BFTkNPREVfQVBJX0tFWT0ke09QRU5DT0RFX0FQSV9LRVl9JwogICAgICAtICdTWU5USEVUSUNfQVBJX0tFWT0ke1NZTlRIRVRJQ19BUElfS0VZfScKICAgICAgLSAnQ09QSUxPVF9HSVRIVUJfVE9LRU49JHtDT1BJTE9UX0dJVEhVQl9UT0tFTn0nCiAgICAgIC0gJ1hJQU9NSV9BUElfS0VZPSR7WElBT01JX0FQSV9LRVl9JwogICAgICAtICdPUEVOQ0xBV19QUklNQVJZX01PREVMPSR7T1BFTkNMQVdfUFJJTUFSWV9NT0RFTH0nCiAgICAgIC0gJ0RFRVBHUkFNX0FQSV9LRVk9JHtERUVQR1JBTV9BUElfS0VZfScKICAgICAgLSAnQVdTX0FDQ0VTU19LRVlfSUQ9JHtBV1NfQUNDRVNTX0tFWV9JRH0nCiAgICAgIC0gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWT0ke0FXU19TRUNSRVRfQUNDRVNTX0tFWX0nCiAgICAgIC0gJ0FXU19SRUdJT049JHtBV1NfUkVHSU9OOi11cy1lYXN0LTF9JwogICAgICAtICdBV1NfU0VTU0lPTl9UT0tFTj0ke0FXU19TRVNTSU9OX1RPS0VOfScKICAgICAgLSAnQkVEUk9DS19QUk9WSURFUl9GSUxURVI9JHtCRURST0NLX1BST1ZJREVSX0ZJTFRFUjotYW50aHJvcGljfScKICAgICAgLSAnT0xMQU1BX0JBU0VfVVJMPSR7T0xMQU1BX0JBU0VfVVJMfScKICAgICAgLSBQT1JUPTgwODAKICAgICAgLSBPUEVOQ0xBV19HQVRFV0FZX1BPUlQ9MTg3ODkKICAgICAgLSAnT1BFTkNMQVdfR0FURVdBWV9CSU5EPSR7T1BFTkNMQVdfR0FURVdBWV9CSU5EOi1sb29wYmFja30nCiAgICAgIC0gT1BFTkNMQVdfU1RBVEVfRElSPS9kYXRhLy5vcGVuY2xhdwogICAgICAtIE9QRU5DTEFXX1dPUktTUEFDRV9ESVI9L2RhdGEvd29ya3NwYWNlCiAgICAgIC0gJ0JST1dTRVJfQ0RQX1VSTD1odHRwOi8vYnJvd3Nlcjo5MjIzJwogICAgICAtICdCUk9XU0VSX0RFRkFVTFRfUFJPRklMRT0ke0JST1dTRVJfREVGQVVMVF9QUk9GSUxFOi1vcGVuY2xhd30nCiAgICAgIC0gJ0JST1dTRVJfRVZBTFVBVEVfRU5BQkxFRD0ke0JST1dTRVJfRVZBTFVBVEVfRU5BQkxFRDotdHJ1ZX0nCiAgICAgIC0gJ0JST1dTRVJfU05BUFNIT1RfTU9ERT0ke0JST1dTRVJfU05BUFNIT1RfTU9ERTotZWZmaWNpZW50fScKICAgICAgLSAnQlJPV1NFUl9SRU1PVEVfVElNRU9VVF9NUz0ke0JST1dTRVJfUkVNT1RFX1RJTUVPVVRfTVM6LTE1MDB9JwogICAgICAtICdCUk9XU0VSX1JFTU9URV9IQU5EU0hBS0VfVElNRU9VVF9NUz0ke0JST1dTRVJfUkVNT1RFX0hBTkRTSEFLRV9USU1FT1VUX01TOi0zMDAwfScKICAgICAgLSAnSE9PS1NfRU5BQkxFRD0ke0hPT0tTX0VOQUJMRUQ6LWZhbHNlfScKICAgICAgLSAnSE9PS1NfUEFUSD0ke0hPT0tTX1BBVEg6LS9ob29rc30nCiAgICAgIC0gJ01PT05TSE9UX0JBU0VfVVJMPSR7TU9PTlNIT1RfQkFTRV9VUkw6LWh0dHBzOi8vYXBpLm1vb25zaG90LmFpL3YxfScKICAgICAgLSAnS0lNSV9CQVNFX1VSTD0ke0tJTUlfQkFTRV9VUkw6LWh0dHBzOi8vYXBpLm1vb25zaG90LmFpL2FudGhyb3BpY30nCiAgICAgIC0gVEVMRUdSQU1fQk9UX1RPS0VOPSRURUxFR1JBTV9CT1RfVE9LRU4KICAgICAgLSBESVNDT1JEX0JPVF9UT0tFTj0kRElTQ09SRF9CT1RfVE9LRU4KICAgICAgLSBTTEFDS19CT1RfVE9LRU49JFNMQUNLX0JPVF9UT0tFTgogICAgICAtIFNMQUNLX0FQUF9UT0tFTj0kU0xBQ0tfQVBQX1RPS0VOCiAgICAgIC0gV0hBVFNBUFBfRU5BQkxFRD0kV0hBVFNBUFBfRU5BQkxFRAogICAgICAtIE9QRU5DTEFXX0RPQ0tFUl9BUFRfUEFDS0FHRVM9JE9QRU5DTEFXX0RPQ0tFUl9BUFRfUEFDS0FHRVMKICAgIHZvbHVtZXM6CiAgICAgIC0gJ29wZW5jbGF3LWRhdGE6L2RhdGEnCiAgICBkZXBlbmRzX29uOgogICAgICBicm93c2VyOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1zZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwODAvaGVhbHRoeicKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogNQogIGJyb3dzZXI6CiAgICBpbWFnZTogJ2Nvb2xsYWJzaW8vb3BlbmNsYXctYnJvd3NlcjpsYXRlc3QnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBQVUlEPTEwMDAKICAgICAgLSBQR0lEPTEwMDAKICAgICAgLSBUWj1FdGMvVVRDCiAgICAgIC0gQ0hST01FX0NMST0tLXJlbW90ZS1kZWJ1Z2dpbmctcG9ydD05MjIyCiAgICB2b2x1bWVzOgogICAgICAtICdicm93c2VyLWRhdGE6L2NvbmZpZycKICAgIHNobV9zaXplOiAyZwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICJiYXNoIC1jICc6PiAvZGV2L3RjcC8xMjcuMC4wLjEvOTIyMicgfHwgZXhpdCAxIgogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMTAK",
"tags": [
"ai",
"coding",
"assistant",
"llm",
"anthropic",
"openai",
"automation"
],
"category": "ai",
"logo": "svgs/openclaw.svg",
"minversion": "0.0.0",
"port": "8080"
},
"openpanel": {
"documentation": "https://openpanel.dev/docs?utm_source=coolify.io",
"slogan": "Open source alternative to Mixpanel and Plausible for product analytics",

View file

@ -3396,6 +3396,24 @@
"minversion": "0.0.0",
"port": "8080"
},
"openclaw": {
"documentation": "https://github.com/coollabsio/openclaw?utm_source=coolify.io",
"slogan": "AI-powered coding assistant with multi-provider support and browser automation.",
"compose": "c2VydmljZXM6CiAgb3BlbmNsYXc6CiAgICBpbWFnZTogJ2Nvb2xsYWJzaW8vb3BlbmNsYXc6MjAyNi4yLjYnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fT1BFTkNMQVdfODA4MAogICAgICAtIEFVVEhfVVNFUk5BTUU9JFNFUlZJQ0VfVVNFUl9PUEVOQ0xBVwogICAgICAtIEFVVEhfUEFTU1dPUkQ9JFNFUlZJQ0VfUEFTU1dPUkRfT1BFTkNMQVcKICAgICAgLSBPUEVOQ0xBV19HQVRFV0FZX1RPS0VOPSRTRVJWSUNFX1BBU1NXT1JEXzY0X0dBVEVXQVlUT0tFTgogICAgICAtICdBTlRIUk9QSUNfQVBJX0tFWT0ke0FOVEhST1BJQ19BUElfS0VZfScKICAgICAgLSAnT1BFTkFJX0FQSV9LRVk9JHtPUEVOQUlfQVBJX0tFWX0nCiAgICAgIC0gJ09QRU5ST1VURVJfQVBJX0tFWT0ke09QRU5ST1VURVJfQVBJX0tFWX0nCiAgICAgIC0gJ0dFTUlOSV9BUElfS0VZPSR7R0VNSU5JX0FQSV9LRVl9JwogICAgICAtICdYQUlfQVBJX0tFWT0ke1hBSV9BUElfS0VZfScKICAgICAgLSAnR1JPUV9BUElfS0VZPSR7R1JPUV9BUElfS0VZfScKICAgICAgLSAnTUlTVFJBTF9BUElfS0VZPSR7TUlTVFJBTF9BUElfS0VZfScKICAgICAgLSAnQ0VSRUJSQVNfQVBJX0tFWT0ke0NFUkVCUkFTX0FQSV9LRVl9JwogICAgICAtICdWRU5JQ0VfQVBJX0tFWT0ke1ZFTklDRV9BUElfS0VZfScKICAgICAgLSAnTU9PTlNIT1RfQVBJX0tFWT0ke01PT05TSE9UX0FQSV9LRVl9JwogICAgICAtICdLSU1JX0FQSV9LRVk9JHtLSU1JX0FQSV9LRVl9JwogICAgICAtICdNSU5JTUFYX0FQSV9LRVk9JHtNSU5JTUFYX0FQSV9LRVl9JwogICAgICAtICdaQUlfQVBJX0tFWT0ke1pBSV9BUElfS0VZfScKICAgICAgLSAnQUlfR0FURVdBWV9BUElfS0VZPSR7QUlfR0FURVdBWV9BUElfS0VZfScKICAgICAgLSAnT1BFTkNPREVfQVBJX0tFWT0ke09QRU5DT0RFX0FQSV9LRVl9JwogICAgICAtICdTWU5USEVUSUNfQVBJX0tFWT0ke1NZTlRIRVRJQ19BUElfS0VZfScKICAgICAgLSAnQ09QSUxPVF9HSVRIVUJfVE9LRU49JHtDT1BJTE9UX0dJVEhVQl9UT0tFTn0nCiAgICAgIC0gJ1hJQU9NSV9BUElfS0VZPSR7WElBT01JX0FQSV9LRVl9JwogICAgICAtICdPUEVOQ0xBV19QUklNQVJZX01PREVMPSR7T1BFTkNMQVdfUFJJTUFSWV9NT0RFTH0nCiAgICAgIC0gJ0RFRVBHUkFNX0FQSV9LRVk9JHtERUVQR1JBTV9BUElfS0VZfScKICAgICAgLSAnQVdTX0FDQ0VTU19LRVlfSUQ9JHtBV1NfQUNDRVNTX0tFWV9JRH0nCiAgICAgIC0gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWT0ke0FXU19TRUNSRVRfQUNDRVNTX0tFWX0nCiAgICAgIC0gJ0FXU19SRUdJT049JHtBV1NfUkVHSU9OOi11cy1lYXN0LTF9JwogICAgICAtICdBV1NfU0VTU0lPTl9UT0tFTj0ke0FXU19TRVNTSU9OX1RPS0VOfScKICAgICAgLSAnQkVEUk9DS19QUk9WSURFUl9GSUxURVI9JHtCRURST0NLX1BST1ZJREVSX0ZJTFRFUjotYW50aHJvcGljfScKICAgICAgLSAnT0xMQU1BX0JBU0VfVVJMPSR7T0xMQU1BX0JBU0VfVVJMfScKICAgICAgLSBQT1JUPTgwODAKICAgICAgLSBPUEVOQ0xBV19HQVRFV0FZX1BPUlQ9MTg3ODkKICAgICAgLSAnT1BFTkNMQVdfR0FURVdBWV9CSU5EPSR7T1BFTkNMQVdfR0FURVdBWV9CSU5EOi1sb29wYmFja30nCiAgICAgIC0gT1BFTkNMQVdfU1RBVEVfRElSPS9kYXRhLy5vcGVuY2xhdwogICAgICAtIE9QRU5DTEFXX1dPUktTUEFDRV9ESVI9L2RhdGEvd29ya3NwYWNlCiAgICAgIC0gJ0JST1dTRVJfQ0RQX1VSTD1odHRwOi8vYnJvd3Nlcjo5MjIzJwogICAgICAtICdCUk9XU0VSX0RFRkFVTFRfUFJPRklMRT0ke0JST1dTRVJfREVGQVVMVF9QUk9GSUxFOi1vcGVuY2xhd30nCiAgICAgIC0gJ0JST1dTRVJfRVZBTFVBVEVfRU5BQkxFRD0ke0JST1dTRVJfRVZBTFVBVEVfRU5BQkxFRDotdHJ1ZX0nCiAgICAgIC0gJ0JST1dTRVJfU05BUFNIT1RfTU9ERT0ke0JST1dTRVJfU05BUFNIT1RfTU9ERTotZWZmaWNpZW50fScKICAgICAgLSAnQlJPV1NFUl9SRU1PVEVfVElNRU9VVF9NUz0ke0JST1dTRVJfUkVNT1RFX1RJTUVPVVRfTVM6LTE1MDB9JwogICAgICAtICdCUk9XU0VSX1JFTU9URV9IQU5EU0hBS0VfVElNRU9VVF9NUz0ke0JST1dTRVJfUkVNT1RFX0hBTkRTSEFLRV9USU1FT1VUX01TOi0zMDAwfScKICAgICAgLSAnSE9PS1NfRU5BQkxFRD0ke0hPT0tTX0VOQUJMRUQ6LWZhbHNlfScKICAgICAgLSAnSE9PS1NfUEFUSD0ke0hPT0tTX1BBVEg6LS9ob29rc30nCiAgICAgIC0gJ01PT05TSE9UX0JBU0VfVVJMPSR7TU9PTlNIT1RfQkFTRV9VUkw6LWh0dHBzOi8vYXBpLm1vb25zaG90LmFpL3YxfScKICAgICAgLSAnS0lNSV9CQVNFX1VSTD0ke0tJTUlfQkFTRV9VUkw6LWh0dHBzOi8vYXBpLm1vb25zaG90LmFpL2FudGhyb3BpY30nCiAgICAgIC0gVEVMRUdSQU1fQk9UX1RPS0VOPSRURUxFR1JBTV9CT1RfVE9LRU4KICAgICAgLSBESVNDT1JEX0JPVF9UT0tFTj0kRElTQ09SRF9CT1RfVE9LRU4KICAgICAgLSBTTEFDS19CT1RfVE9LRU49JFNMQUNLX0JPVF9UT0tFTgogICAgICAtIFNMQUNLX0FQUF9UT0tFTj0kU0xBQ0tfQVBQX1RPS0VOCiAgICAgIC0gV0hBVFNBUFBfRU5BQkxFRD0kV0hBVFNBUFBfRU5BQkxFRAogICAgICAtIE9QRU5DTEFXX0RPQ0tFUl9BUFRfUEFDS0FHRVM9JE9QRU5DTEFXX0RPQ0tFUl9BUFRfUEFDS0FHRVMKICAgIHZvbHVtZXM6CiAgICAgIC0gJ29wZW5jbGF3LWRhdGE6L2RhdGEnCiAgICBkZXBlbmRzX29uOgogICAgICBicm93c2VyOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRAogICAgICAgIC0gY3VybAogICAgICAgIC0gJy1zZicKICAgICAgICAtICdodHRwOi8vMTI3LjAuMC4xOjgwODAvaGVhbHRoeicKICAgICAgaW50ZXJ2YWw6IDEwcwogICAgICB0aW1lb3V0OiAxMHMKICAgICAgcmV0cmllczogNQogIGJyb3dzZXI6CiAgICBpbWFnZTogJ2Nvb2xsYWJzaW8vb3BlbmNsYXctYnJvd3NlcjpsYXRlc3QnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBQVUlEPTEwMDAKICAgICAgLSBQR0lEPTEwMDAKICAgICAgLSBUWj1FdGMvVVRDCiAgICAgIC0gQ0hST01FX0NMST0tLXJlbW90ZS1kZWJ1Z2dpbmctcG9ydD05MjIyCiAgICB2b2x1bWVzOgogICAgICAtICdicm93c2VyLWRhdGE6L2NvbmZpZycKICAgIHNobV9zaXplOiAyZwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICJiYXNoIC1jICc6PiAvZGV2L3RjcC8xMjcuMC4wLjEvOTIyMicgfHwgZXhpdCAxIgogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogNXMKICAgICAgcmV0cmllczogMTAK",
"tags": [
"ai",
"coding",
"assistant",
"llm",
"anthropic",
"openai",
"automation"
],
"category": "ai",
"logo": "svgs/openclaw.svg",
"minversion": "0.0.0",
"port": "8080"
},
"openpanel": {
"documentation": "https://openpanel.dev/docs?utm_source=coolify.io",
"slogan": "Open source alternative to Mixpanel and Plausible for product analytics",