Config: generic router SSH options (deprecate mikrotik_*); bump 0.4.4
This commit is contained in:
@@ -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.
|
|
||||||
|
|||||||
@@ -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?
|
||||||
|
|||||||
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user