Config: generic router SSH options (deprecate mikrotik_*); bump 0.4.4

This commit is contained in:
root
2026-01-30 15:22:10 +02:00
parent f7fba93ffd
commit 3dbd2c39eb
3 changed files with 55 additions and 13 deletions
+19 -3
View File
@@ -73,7 +73,24 @@ Notes:
- `telegram_allow_from`: comma-separated Telegram user IDs (locks DMs) - `telegram_allow_from`: comma-separated Telegram user IDs (locks DMs)
- `brave_api_key`: exported as `BRAVE_API_KEY` (for web search) - `brave_api_key`: exported as `BRAVE_API_KEY` (for web search)
- `homeassistant_token`: written to `/config/secrets/homeassistant.token` inside the container - `homeassistant_token`: written to `/config/secrets/homeassistant.token` inside the container
- MikroTik SSH fields: `mikrotik_host`, `mikrotik_ssh_user`, `mikrotik_ssh_key_path`
### Router SSH (generic)
This add-on supports a **generic SSH configuration** for a router/firewall (or any LAN network device)
when you want the assistant to automate local network changes (e.g., port forwarding, DNS records,
firewall rules).
Config fields:
- `router_ssh_host`: host/IP of the router (reachable from the HA host network)
- `router_ssh_user`: SSH username
- `router_ssh_key_path`: path to the private key file inside the add-on (default: `/data/keys/router_ssh`)
How to provide the SSH key:
- Put the private key file under the add-on config directory so it appears in-container at `/data/keys/...`.
- Ensure permissions are restricted (recommended `chmod 600`).
Back-compat:
- Older versions used MikroTik-branded names: `mikrotik_host`, `mikrotik_ssh_user`, `mikrotik_ssh_key_path`.
These are still accepted but **deprecated**.
## Troubleshooting ## Troubleshooting
@@ -87,5 +104,4 @@ Notes:
### Gateway button opens but cannot connect ### Gateway button opens but cannot connect
- Confirm the browser can reach `gateway_public_url`. - Confirm the browser can reach `gateway_public_url`.
- Confirm your NAT/port-forward rules (if using DuckDNS/Nabu Casa is **not** involved here). - Confirm your NAT/port-forward rules.
- If you want Nabu Casa support for the gateway UI, do **not** expose the gateway; use the assistant via Telegram and keep gateway loopback.
+20 -5
View File
@@ -1,5 +1,5 @@
name: Moltbot Assistant name: Moltbot Assistant
version: "0.4.3" version: "0.4.4"
slug: moltbot_assistant slug: moltbot_assistant
description: Run Moltbot Assistant (Clawdbot-compatible) as a Home Assistant add-on. description: Run Moltbot Assistant (Clawdbot-compatible) as a Home Assistant add-on.
url: https://github.com/techartdev/ClawdHAAddOn url: https://github.com/techartdev/ClawdHAAddOn
@@ -46,7 +46,15 @@ options:
run_doctor_on_start: false run_doctor_on_start: false
homeassistant_token: "" homeassistant_token: ""
# Optional: MikroTik SSH defaults (leave empty if you don't use MikroTik)
# Optional: Router SSH defaults (leave empty if you don't need router automation)
# This is a generic SSH configuration intended for a router/firewall or any network device
# reachable from inside the HA host LAN.
router_ssh_host: ""
router_ssh_user: ""
router_ssh_key_path: "/data/keys/router_ssh"
# Backward compatible (deprecated): older config names
mikrotik_host: "" mikrotik_host: ""
mikrotik_ssh_user: "" mikrotik_ssh_user: ""
mikrotik_ssh_key_path: "/data/keys/mikrotik" mikrotik_ssh_key_path: "/data/keys/mikrotik"
@@ -72,9 +80,16 @@ schema:
gateway_public_url: str? gateway_public_url: str?
run_doctor_on_start: bool run_doctor_on_start: bool
homeassistant_token: str? homeassistant_token: str?
mikrotik_host: str
mikrotik_ssh_user: str router_ssh_host: str
mikrotik_ssh_key_path: str router_ssh_user: str
router_ssh_key_path: str
# Backward compatible (deprecated)
mikrotik_host: str?
mikrotik_ssh_user: str?
mikrotik_ssh_key_path: str?
brave_api_key: str? brave_api_key: str?
enable_terminal: bool? enable_terminal: bool?
clean_session_locks_on_start: bool? clean_session_locks_on_start: bool?
+16 -5
View File
@@ -20,10 +20,21 @@ GW_PUBLIC_URL=$(jq -r '.gateway_public_url // empty' "$OPTIONS_FILE")
HA_TOKEN=$(jq -r '.homeassistant_token // empty' "$OPTIONS_FILE") HA_TOKEN=$(jq -r '.homeassistant_token // empty' "$OPTIONS_FILE")
BRAVE_KEY=$(jq -r '.brave_api_key // empty' "$OPTIONS_FILE") BRAVE_KEY=$(jq -r '.brave_api_key // empty' "$OPTIONS_FILE")
ENABLE_TERMINAL=$(jq -r '.enable_terminal // false' "$OPTIONS_FILE") ENABLE_TERMINAL=$(jq -r '.enable_terminal // false' "$OPTIONS_FILE")
# Generic router SSH settings (preferred)
ROUTER_HOST=$(jq -r '.router_ssh_host // empty' "$OPTIONS_FILE")
ROUTER_USER=$(jq -r '.router_ssh_user // empty' "$OPTIONS_FILE")
ROUTER_KEY=$(jq -r '.router_ssh_key_path // "/data/keys/router_ssh"' "$OPTIONS_FILE")
# Backward compatible (deprecated) MikroTik-named settings
MT_HOST=$(jq -r '.mikrotik_host // empty' "$OPTIONS_FILE") MT_HOST=$(jq -r '.mikrotik_host // empty' "$OPTIONS_FILE")
MT_USER=$(jq -r '.mikrotik_ssh_user // empty' "$OPTIONS_FILE") MT_USER=$(jq -r '.mikrotik_ssh_user // empty' "$OPTIONS_FILE")
MT_KEY=$(jq -r '.mikrotik_ssh_key_path // "/data/keys/mikrotik"' "$OPTIONS_FILE") MT_KEY=$(jq -r '.mikrotik_ssh_key_path // "/data/keys/mikrotik"' "$OPTIONS_FILE")
# Prefer generic router_* values; fall back to mikrotik_* if router_* are empty
[ -z "$ROUTER_HOST" ] && ROUTER_HOST="$MT_HOST"
[ -z "$ROUTER_USER" ] && ROUTER_USER="$MT_USER"
[ "$ROUTER_KEY" = "/data/keys/router_ssh" ] && [ -n "$MT_KEY" ] && ROUTER_KEY="$MT_KEY"
# Optional: allow disabling lock cleanup if you ever need to debug # Optional: allow disabling lock cleanup if you ever need to debug
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")
@@ -205,13 +216,13 @@ else
echo "WARN: Telegram token validation failed (getMe)" echo "WARN: Telegram token validation failed (getMe)"
fi fi
# Convenience info for later (MikroTik access path & HA token file) # Convenience info for later (router SSH access path & HA token file)
cat > /config/CONNECTION_NOTES.txt <<EOF cat > /config/CONNECTION_NOTES.txt <<EOF
Home Assistant token (if set): /config/secrets/homeassistant.token Home Assistant token (if set): /config/secrets/homeassistant.token
MikroTik SSH: Router SSH (generic):
host=${MT_HOST} host=${ROUTER_HOST}
user=${MT_USER} user=${ROUTER_USER}
key=${MT_KEY} key=${ROUTER_KEY}
EOF EOF
RUN_DOCTOR=$(jq -r '.run_doctor_on_start // false' "$OPTIONS_FILE") RUN_DOCTOR=$(jq -r '.run_doctor_on_start // false' "$OPTIONS_FILE")