Update OpenClaw version to 0.5.35 and add gateway mode configuration
This commit is contained in:
@@ -83,7 +83,7 @@ USER root
|
|||||||
|
|
||||||
# Install OpenClaw globally
|
# Install OpenClaw globally
|
||||||
RUN npm config set fund false && npm config set audit false \
|
RUN npm config set fund false && npm config set audit false \
|
||||||
&& npm install -g openclaw@2026.2.2-3
|
&& npm install -g openclaw@2026.2.3-1
|
||||||
|
|
||||||
COPY run.sh /run.sh
|
COPY run.sh /run.sh
|
||||||
COPY oc_config_helper.py /oc_config_helper.py
|
COPY oc_config_helper.py /oc_config_helper.py
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: OpenClaw Assistant
|
name: OpenClaw Assistant
|
||||||
version: "0.5.34"
|
version: "0.5.35"
|
||||||
slug: openclaw_assistant
|
slug: openclaw_assistant
|
||||||
description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on.
|
description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on.
|
||||||
url: https://github.com/techartdev/OpenClawHomeAssistant
|
url: https://github.com/techartdev/OpenClawHomeAssistant
|
||||||
@@ -50,6 +50,12 @@ options:
|
|||||||
clean_session_locks_on_start: true
|
clean_session_locks_on_start: true
|
||||||
clean_session_locks_on_exit: true
|
clean_session_locks_on_exit: true
|
||||||
|
|
||||||
|
# Gateway mode:
|
||||||
|
# - local: Run gateway locally (recommended for most users)
|
||||||
|
# - remote: Connect to a remote gateway
|
||||||
|
# Default is local.
|
||||||
|
gateway_mode: local
|
||||||
|
|
||||||
# Gateway network bind mode:
|
# Gateway network bind mode:
|
||||||
# - loopback: bind to 127.0.0.1 only (local access only, more secure)
|
# - loopback: bind to 127.0.0.1 only (local access only, more secure)
|
||||||
# - lan: bind to all interfaces (accessible from local network)
|
# - lan: bind to all interfaces (accessible from local network)
|
||||||
@@ -78,6 +84,7 @@ schema:
|
|||||||
|
|
||||||
clean_session_locks_on_start: bool?
|
clean_session_locks_on_start: bool?
|
||||||
clean_session_locks_on_exit: bool?
|
clean_session_locks_on_exit: bool?
|
||||||
|
gateway_mode: list(local|remote)?
|
||||||
gateway_bind_mode: list(loopback|lan)?
|
gateway_bind_mode: list(loopback|lan)?
|
||||||
gateway_port: int(1,65535)?
|
gateway_port: int(1,65535)?
|
||||||
allow_insecure_auth: bool?
|
allow_insecure_auth: bool?
|
||||||
|
|||||||
@@ -57,15 +57,21 @@ def set_gateway_setting(key, value):
|
|||||||
return write_config(cfg)
|
return write_config(cfg)
|
||||||
|
|
||||||
|
|
||||||
def apply_gateway_settings(bind_mode: str, port: int, allow_insecure_auth: bool):
|
def apply_gateway_settings(mode: str, bind_mode: str, port: int, allow_insecure_auth: bool):
|
||||||
"""
|
"""
|
||||||
Apply gateway settings to OpenClaw config.
|
Apply gateway settings to OpenClaw config.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
mode: "local" or "remote"
|
||||||
bind_mode: "loopback" or "lan"
|
bind_mode: "loopback" or "lan"
|
||||||
port: Port number to listen on (must be 1-65535)
|
port: Port number to listen on (must be 1-65535)
|
||||||
allow_insecure_auth: Allow insecure HTTP authentication
|
allow_insecure_auth: Allow insecure HTTP authentication
|
||||||
"""
|
"""
|
||||||
|
# Validate gateway mode
|
||||||
|
if mode not in ["local", "remote"]:
|
||||||
|
print(f"ERROR: Invalid mode '{mode}'. Must be 'local' or 'remote'")
|
||||||
|
return False
|
||||||
|
|
||||||
# Validate bind mode
|
# Validate bind mode
|
||||||
if bind_mode not in ["loopback", "lan"]:
|
if bind_mode not in ["loopback", "lan"]:
|
||||||
print(f"ERROR: Invalid bind_mode '{bind_mode}'. Must be 'loopback' or 'lan'")
|
print(f"ERROR: Invalid bind_mode '{bind_mode}'. Must be 'loopback' or 'lan'")
|
||||||
@@ -91,12 +97,17 @@ def apply_gateway_settings(bind_mode: str, port: int, allow_insecure_auth: bool)
|
|||||||
|
|
||||||
control_ui = gateway["controlUi"]
|
control_ui = gateway["controlUi"]
|
||||||
|
|
||||||
|
current_mode = gateway.get("mode", "")
|
||||||
current_bind = gateway.get("bind", "")
|
current_bind = gateway.get("bind", "")
|
||||||
current_port = gateway.get("port", 18789)
|
current_port = gateway.get("port", 18789)
|
||||||
current_insecure = control_ui.get("allowInsecureAuth", False)
|
current_insecure = control_ui.get("allowInsecureAuth", False)
|
||||||
|
|
||||||
changes = []
|
changes = []
|
||||||
|
|
||||||
|
if current_mode != mode:
|
||||||
|
gateway["mode"] = mode
|
||||||
|
changes.append(f"mode: {current_mode} -> {mode}")
|
||||||
|
|
||||||
if current_bind != bind_mode:
|
if current_bind != bind_mode:
|
||||||
gateway["bind"] = bind_mode
|
gateway["bind"] = bind_mode
|
||||||
changes.append(f"bind: {current_bind} -> {bind_mode}")
|
changes.append(f"bind: {current_bind} -> {bind_mode}")
|
||||||
@@ -130,13 +141,14 @@ def main():
|
|||||||
cmd = sys.argv[1]
|
cmd = sys.argv[1]
|
||||||
|
|
||||||
if cmd == "apply-gateway-settings":
|
if cmd == "apply-gateway-settings":
|
||||||
if len(sys.argv) != 5:
|
if len(sys.argv) != 6:
|
||||||
print("Usage: oc_config_helper.py apply-gateway-settings <loopback|lan> <port> <true|false>")
|
print("Usage: oc_config_helper.py apply-gateway-settings <local|remote> <loopback|lan> <port> <true|false>")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
bind_mode = sys.argv[2]
|
mode = sys.argv[2]
|
||||||
port = int(sys.argv[3])
|
bind_mode = sys.argv[3]
|
||||||
allow_insecure_auth = sys.argv[4].lower() == "true"
|
port = int(sys.argv[4])
|
||||||
success = apply_gateway_settings(bind_mode, port, allow_insecure_auth)
|
allow_insecure_auth = sys.argv[5].lower() == "true"
|
||||||
|
success = apply_gateway_settings(mode, bind_mode, port, allow_insecure_auth)
|
||||||
sys.exit(0 if success else 1)
|
sys.exit(0 if success else 1)
|
||||||
|
|
||||||
elif cmd == "get":
|
elif cmd == "get":
|
||||||
|
|||||||
@@ -44,7 +44,8 @@ ROUTER_KEY=$(jq -r '.router_ssh_key_path // "/data/keys/router_ssh"' "$OPTIONS_F
|
|||||||
CLEAN_LOCKS_ON_START=$(jq -r '.clean_session_locks_on_start // true' "$OPTIONS_FILE")
|
CLEAN_LOCKS_ON_START=$(jq -r '.clean_session_locks_on_start // true' "$OPTIONS_FILE")
|
||||||
CLEAN_LOCKS_ON_EXIT=$(jq -r '.clean_session_locks_on_exit // true' "$OPTIONS_FILE")
|
CLEAN_LOCKS_ON_EXIT=$(jq -r '.clean_session_locks_on_exit // true' "$OPTIONS_FILE")
|
||||||
|
|
||||||
# Gateway bind mode (loopback or lan)
|
# Gateway configuration
|
||||||
|
GATEWAY_MODE=$(jq -r '.gateway_mode // "local"' "$OPTIONS_FILE")
|
||||||
GATEWAY_BIND_MODE=$(jq -r '.gateway_bind_mode // "loopback"' "$OPTIONS_FILE")
|
GATEWAY_BIND_MODE=$(jq -r '.gateway_bind_mode // "loopback"' "$OPTIONS_FILE")
|
||||||
GATEWAY_PORT=$(jq -r '.gateway_port // 18789' "$OPTIONS_FILE")
|
GATEWAY_PORT=$(jq -r '.gateway_port // 18789' "$OPTIONS_FILE")
|
||||||
ALLOW_INSECURE_AUTH=$(jq -r '.allow_insecure_auth // false' "$OPTIONS_FILE")
|
ALLOW_INSECURE_AUTH=$(jq -r '.allow_insecure_auth // false' "$OPTIONS_FILE")
|
||||||
@@ -232,7 +233,7 @@ fi
|
|||||||
|
|
||||||
if [ -f "$OPENCLAW_CONFIG_PATH" ]; then
|
if [ -f "$OPENCLAW_CONFIG_PATH" ]; then
|
||||||
if [ -f "$HELPER_PATH" ]; then
|
if [ -f "$HELPER_PATH" ]; then
|
||||||
if ! python3 "$HELPER_PATH" apply-gateway-settings "$GATEWAY_BIND_MODE" "$GATEWAY_PORT" "$ALLOW_INSECURE_AUTH"; then
|
if ! python3 "$HELPER_PATH" apply-gateway-settings "$GATEWAY_MODE" "$GATEWAY_BIND_MODE" "$GATEWAY_PORT" "$ALLOW_INSECURE_AUTH"; then
|
||||||
rc=$?
|
rc=$?
|
||||||
echo "ERROR: Failed to apply gateway settings via oc_config_helper.py (exit code ${rc})."
|
echo "ERROR: Failed to apply gateway settings via oc_config_helper.py (exit code ${rc})."
|
||||||
echo "ERROR: Gateway configuration may be incorrect; aborting startup."
|
echo "ERROR: Gateway configuration may be incorrect; aborting startup."
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ configuration:
|
|||||||
name: Изчистване на заключвания при изход
|
name: Изчистване на заключвания при изход
|
||||||
description: Изчистване на заключващи файлове на сесии при нормално спиране на добавката
|
description: Изчистване на заключващи файлове на сесии при нормално спиране на добавката
|
||||||
|
|
||||||
|
gateway_mode:
|
||||||
|
name: Режим на Gateway
|
||||||
|
description: Режим на работа на Gateway - local (локално изпълнение на gateway, препоръчително) или remote (свързване към отдалечен gateway)
|
||||||
|
|
||||||
gateway_bind_mode:
|
gateway_bind_mode:
|
||||||
name: Режим на свързване на Gateway
|
name: Режим на свързване на Gateway
|
||||||
description: Режим на мрежово свързване - loopback (само 127.0.0.1, по-сигурно) или lan (всички интерфейси, достъпно от локалната мрежа)
|
description: Режим на мрежово свързване - loopback (само 127.0.0.1, по-сигурно) или lan (всички интерфейси, достъпно от локалната мрежа)
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ configuration:
|
|||||||
name: Sitzungssperren beim Beenden bereinigen
|
name: Sitzungssperren beim Beenden bereinigen
|
||||||
description: Sitzungssperrdateien beim ordnungsgemäßen Stoppen des Add-ons bereinigen
|
description: Sitzungssperrdateien beim ordnungsgemäßen Stoppen des Add-ons bereinigen
|
||||||
|
|
||||||
|
gateway_mode:
|
||||||
|
name: Gateway-Modus
|
||||||
|
description: Gateway-Betriebsmodus - local (Gateway lokal ausführen, empfohlen) oder remote (mit einem entfernten Gateway verbinden)
|
||||||
|
|
||||||
gateway_bind_mode:
|
gateway_bind_mode:
|
||||||
name: Gateway-Bindungsmodus
|
name: Gateway-Bindungsmodus
|
||||||
description: Netzwerk-Bindungsmodus - loopback (nur 127.0.0.1, sicherer) oder lan (alle Schnittstellen, vom lokalen Netzwerk aus zugänglich)
|
description: Netzwerk-Bindungsmodus - loopback (nur 127.0.0.1, sicherer) oder lan (alle Schnittstellen, vom lokalen Netzwerk aus zugänglich)
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ configuration:
|
|||||||
name: Clean Session Locks on Exit
|
name: Clean Session Locks on Exit
|
||||||
description: Cleanup session lock files when add-on stops gracefully
|
description: Cleanup session lock files when add-on stops gracefully
|
||||||
|
|
||||||
|
gateway_mode:
|
||||||
|
name: Gateway Mode
|
||||||
|
description: Gateway operation mode - local (run gateway locally, recommended) or remote (connect to a remote gateway)
|
||||||
|
|
||||||
gateway_bind_mode:
|
gateway_bind_mode:
|
||||||
name: Gateway Bind Mode
|
name: Gateway Bind Mode
|
||||||
description: Network bind mode - loopback (127.0.0.1 only, more secure) or lan (all interfaces, accessible from local network)
|
description: Network bind mode - loopback (127.0.0.1 only, more secure) or lan (all interfaces, accessible from local network)
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ configuration:
|
|||||||
name: Limpiar bloqueos de sesión al salir
|
name: Limpiar bloqueos de sesión al salir
|
||||||
description: Limpiar archivos de bloqueo de sesión cuando el complemento se detiene correctamente
|
description: Limpiar archivos de bloqueo de sesión cuando el complemento se detiene correctamente
|
||||||
|
|
||||||
|
gateway_mode:
|
||||||
|
name: Modo del Gateway
|
||||||
|
description: Modo de operación del Gateway - local (ejecutar gateway localmente, recomendado) o remote (conectar a un gateway remoto)
|
||||||
|
|
||||||
gateway_bind_mode:
|
gateway_bind_mode:
|
||||||
name: Modo de enlace del Gateway
|
name: Modo de enlace del Gateway
|
||||||
description: Modo de enlace de red - loopback (solo 127.0.0.1, más seguro) o lan (todas las interfaces, accesible desde la red local)
|
description: Modo de enlace de red - loopback (solo 127.0.0.1, más seguro) o lan (todas las interfaces, accesible desde la red local)
|
||||||
|
|||||||
Reference in New Issue
Block a user