From fecb4831ad7f01052c5c3fbda0566858e17f8622 Mon Sep 17 00:00:00 2001 From: poprhythm Date: Mon, 23 Feb 2026 19:14:01 +0000 Subject: [PATCH] Add Brave API key to openclaw, fix uptime-kuma auth and TCP monitors - openclaw: expose BRAVE_API_KEY env var for web search tool - uptime-kuma: prefer username/password auth (API key token auth unreliable) - uptime-kuma: add TCP monitor type support to manage_monitors.py --- openclaw/docker-compose.yml | 1 + uptime-kuma/manage_monitors.py | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/openclaw/docker-compose.yml b/openclaw/docker-compose.yml index 13bace2..0cd2940 100644 --- a/openclaw/docker-compose.yml +++ b/openclaw/docker-compose.yml @@ -11,6 +11,7 @@ services: - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN} # Enable Ollama provider (opt-in via env var) - OLLAMA_API_KEY=ollama-local + - BRAVE_API_KEY=${BRAVE_API_KEY} volumes: - /srv/openclaw/config:/home/node/.openclaw - /srv/openclaw/workspace:/home/node/.openclaw/workspace diff --git a/uptime-kuma/manage_monitors.py b/uptime-kuma/manage_monitors.py index e6c480f..59156db 100755 --- a/uptime-kuma/manage_monitors.py +++ b/uptime-kuma/manage_monitors.py @@ -25,12 +25,10 @@ def connect(): # Disable SSL verification for self-signed certificates api = UptimeKumaApi(UPTIME_KUMA_URL, ssl_verify=False) - if API_KEY: - # API key authentication (preferred) - api.login_by_token(API_KEY) - elif USERNAME and PASSWORD: - # Username/password authentication + if USERNAME and PASSWORD: api.login(USERNAME, PASSWORD) + elif API_KEY: + api.login_by_token(API_KEY) else: print("Error: No credentials provided. Set UPTIME_KUMA_API_KEY or UPTIME_KUMA_USERNAME/PASSWORD environment variables.") sys.exit(1) @@ -73,6 +71,15 @@ def add_monitor(api, name, url, monitor_type='http', interval=60, ignore_tls=Fal hostname=url, interval=interval ) + elif monitor_type.lower() == 'tcp': + hostname, port = url.rsplit(':', 1) + result = api.add_monitor( + type=monitor_type_value, + name=name, + hostname=hostname, + port=int(port), + interval=interval + ) else: kwargs = { 'type': monitor_type_value,