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
This commit is contained in:
2026-02-23 19:14:01 +00:00
parent c4157023f6
commit fecb4831ad
2 changed files with 13 additions and 5 deletions
+1
View File
@@ -11,6 +11,7 @@ services:
- OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN} - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
# Enable Ollama provider (opt-in via env var) # Enable Ollama provider (opt-in via env var)
- OLLAMA_API_KEY=ollama-local - OLLAMA_API_KEY=ollama-local
- BRAVE_API_KEY=${BRAVE_API_KEY}
volumes: volumes:
- /srv/openclaw/config:/home/node/.openclaw - /srv/openclaw/config:/home/node/.openclaw
- /srv/openclaw/workspace:/home/node/.openclaw/workspace - /srv/openclaw/workspace:/home/node/.openclaw/workspace
+12 -5
View File
@@ -25,12 +25,10 @@ def connect():
# Disable SSL verification for self-signed certificates # Disable SSL verification for self-signed certificates
api = UptimeKumaApi(UPTIME_KUMA_URL, ssl_verify=False) api = UptimeKumaApi(UPTIME_KUMA_URL, ssl_verify=False)
if API_KEY: if USERNAME and PASSWORD:
# API key authentication (preferred)
api.login_by_token(API_KEY)
elif USERNAME and PASSWORD:
# Username/password authentication
api.login(USERNAME, PASSWORD) api.login(USERNAME, PASSWORD)
elif API_KEY:
api.login_by_token(API_KEY)
else: else:
print("Error: No credentials provided. Set UPTIME_KUMA_API_KEY or UPTIME_KUMA_USERNAME/PASSWORD environment variables.") print("Error: No credentials provided. Set UPTIME_KUMA_API_KEY or UPTIME_KUMA_USERNAME/PASSWORD environment variables.")
sys.exit(1) sys.exit(1)
@@ -73,6 +71,15 @@ def add_monitor(api, name, url, monitor_type='http', interval=60, ignore_tls=Fal
hostname=url, hostname=url,
interval=interval 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: else:
kwargs = { kwargs = {
'type': monitor_type_value, 'type': monitor_type_value,