Luligu / matterbridge

Matterbridge plugin manager for Matter
https://github.com/Luligu/matterbridge/blob/main/README.md
Apache License 2.0
125 stars 13 forks source link

Unable to update MatterBridge #75

Closed A-vesalius closed 2 weeks ago

A-vesalius commented 2 weeks ago

Unable to update MatterBridge from the web interface. Installed via tteck proxmox help script. Selecting the update button starts the process and either crashes the WebUI, requiring a restart of the LXC or refreshes the screen without update installed. Screenshot 2024-07-02 at 9 44 41 AM

additionally from the console of the LXC running the command update is stated to be an additional method to update, however, this has also never worked for me. Error message below:

place matterbridge-1.3.8/yellow-button.png? [y]es, [n]o, [A]ll, [N]one, [r]ename: y mv: 'matterbridge-1.3.8' and '/opt/matterbridge/matterbridge-1.3.8' are the same file

[ERROR] in line 69: exit code 0: while executing command mv matterbridge-${RELEASE} /opt/matterbridge

I can install and update plugins, using matterbridge-shelly and have successfully updated via Webui through multiple versions.

Luligu commented 2 weeks ago

Hi, let's try to solve your issue.

First of all, your docker configuration is not correct: from your screenshot I see that you missed the correct parameter in your docker compose or whatever you use with proxmox. The command line in the image from docker hub is CMD ["matterbridge", "-bridge", "-docker"]. If you override it, you have to respect the parameter -docker. In your case you or proxmox missed the -docker parameter. You should have a gui like this: image

For this: "place matterbridge-1.3.8/yellow-button.png? [y]es, [n]o, [A]ll, [N]one, [r]ename: y mv: 'matterbridge-1.3.8' and '/opt/matterbridge/matterbridge-1.3.8' are the same file [ERROR] in line 69: exit code 0: while executing command mv matterbridge-${RELEASE} /opt/matterbridge", I have no idea what is it from. Maybe @tammeryousef1006 can help you with proxmox. In a normal docker or docker compose setup there is no issue.

Second: since you are using docker you can simply pull the new image from docker hub. That is easier and better since the docker image contains also all the updated plugins (at least the official ones).

Hope this can solve your problem.

Let us know.

A-vesalius commented 2 weeks ago

Thanks,

Not using docker. Using a proxmox LXC. https://tteck.github.io/Proxmox/#matterbridge-lxc Screenshot 2024-07-02 at 11 56 27 AM

Fresh install pulls the correct most recent MatterBridge version but attempts to update fail. Is this the wrong place to bring this issue up? I may have misremembered that you were involved with the MatterBridge tteck script.

Luligu commented 2 weeks ago

Hi, this is the first time I see this! @tammeryousef1006 did you make it ?

Is is not docker like is clear since it runs systemctl start matterbridge.

Your setup error is here: https://github.com/Luligu/matterbridge?tab=readme-ov-file#run-matterbridge-as-a-daemon-with-systemctl-linux-only

Check this line: ExecStart=/usr/bin/matterbridge -bridge -service

You missed -service probably...

After you modify remember sudo systemctl daemon-reload or simply restart everything.

We wait for @tammeryousef1006 then will tell you how to do the update.

tammeryousef1006 commented 2 weeks ago

i did try to install through the easy script way (default) as following :

__  ___      __  __            __         _     __         

/ |/ / / /_/ /_ / / ____(_)/ / _ / /|/ / `/ / / \/ / _ \/ / / / `/ \ / / / / // / // // / / / // / / / / // / /_/ / / // //_,/\/_/\// /.// //_,/_, /_/ /____/
Using Default Settings Using Distribution: debian Using debian Version: 12 Using Container Type: 1 Using Root Password: Automatic Login Using Container ID: 110 Using Hostname: matterbridge Using Disk Size: 4GB Allocated Cores 1 Allocated Ram 1024 Using Bridge: vmbr0 Using Static IP Address: dhcp Using Gateway IP Address: Default Using Apt-Cacher IP Address: Default Disable IPv6: No Using Interface MTU Size: Default Using DNS Search Domain: Host Using DNS Server Address: Host Using MAC Address: Default Using VLAN Tag: Default Enable Root SSH Access: No Enable Verbose Mode: No Creating a Matterbridge LXC using the above default settings ✓ Using local for Template Storage. ✓ Using sam for Container Storage. ✓ Updated LXC Template List ✓ LXC Container 110 was successfully created. ✓ Started LXC Container ✓ Set up Container OS ✓ Network Connected: 192.168.68.141 ✓ IPv4 Internet Connected ✗ IPv6 Internet Not Connected ✓ DNS Resolved github.com to 140.82.121.4 ✓ Updated Container OS ✓ Installed Dependencies ✓ Set up Node.js Repository ✓ Installed Node.js ✓ Installed Matterbridge ✓ Created Service ✓ Customized Container ✓ Cleaned ✓ Completed Successfully!

Matterbridge Setup should be reachable by going to the following URL. http://192.168.68.141:8283

after that the bridge started and GUI working well and shows pending updates , I hit update and watched the log and got following :

root@matterbridge:~# sudo journalctl -u matterbridge.service -f --output cat █ █ █ █▄ ▀▄ ▄█▀▀▄ ▀██ █ █▄▄▄█ █ ▄ ▄▄▀▄▀█ ▀ █ █▄▄▄▄▄▄▄█▄▄█▄▄█▄▄██▄█▄█ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Matterbridge qrPairingCode: MT:Y.K90KCZ16V0A.7F020 Manual pairing code: 13250158076

[21:37:16.259] [Matterbridge] Setting reachability to true for Matterbridge [21:37:40.851] [Matterbridge] WebSocketServer client ::ffff:192.168.68.55 connected [21:38:43.195] [Matterbridge] restarting... [21:38:43.198] [Matterbridge] WebSocket client disconnected 2024-07-02 21:38:46.293 INFO MatterDevice All announcements expired [21:38:46.296] [Matterbridge] Saving registered devices... [21:38:46.297] [Matterbridge] Saved registered devices (0) [21:38:46.297] [Matterbridge] Waiting for matter to deliver last messages... [21:38:48.297] [Matterbridge] Cleanup completed. Restarting... [21:38:48.313] [Matterbridge] Matterbridge version 1.3.8 mode bridge running on Linux 6.8.8-2-pve linux x64 [21:38:48.345] [Matterbridge] The frontend http server is listening on http://192.168.68.141:8283 [21:38:48.345] [Matterbridge] The WebSocketServer is listening on ws://192.168.68.141:8283 [21:38:49.354] [Matterbridge] Matter server started [21:38:49.366] [Matterbridge] The commissioning server on port 5540 for Matterbridge is not commissioned. Pair it scanning the QR code: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ ▄▄▄▄▄ ██▀▄▀▄█ ▄▄▄▄▄ █ █ █ █ █▄▀▄▀▄█ █ █ █ █ █▄▄▄█ ██ ▀▀▄█ █▄▄▄█ █ █▄▄▄▄▄▄▄█ █ ▀ █▄▄▄▄▄▄▄█ █▄▄▄█▄▄▄▄▄█▄█▄ ███ █▀█ █▀██▀ ▄▄▀█ ▀ ▄▀▄▀█ ▀█▀█ █▄██▄▄█▄██▄█▄▀█▄▄█▄▀▄▀█ █ ▄▄▄▄▄ █ ▄ ▀▄▀ ▄ █ █ █ █ █ █▄ █ ▄█▀▀▀▄ ▀██ █ █▄▄▄█ █ ▀▄ ▀▀█▀█ ▀ █ █▄▄▄▄▄▄▄█▄█▄█▄▄█▄██▄█▄█ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Matterbridge qrPairingCode: MT:Y.K90C0R15.P0P2Z200 Manual pairing code: 11082602224

[21:38:49.508] [Matterbridge] Matterbridge is out of date. Current version: 1.3.8, Latest version: 1.3.9 [21:39:00.506] [Matterbridge] WebSocketServer client ::ffff:192.168.68.55 connected [21:39:03.303] [Matterbridge] Updating matterbridge... root : PWD=/opt/matterbridge ; USER=root ; COMMAND=/usr/bin/npm install -g matterbridge --loglevel=verbose pam_limits(sudo:session): Could not set limit for 'core' to soft=0, hard=-1: Operation not permitted; uid=0,euid=0 pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0) [21:39:23.940] [Matterbridge] WebSocket client disconnected [21:39:24.055] [Matterbridge] WebSocketServer client ::ffff:192.168.68.55 connected [21:39:49.371] [Matterbridge] Setting reachability to true for Matterbridge pam_unix(sudo:session): session closed for user root [21:39:49.523] [Matterbridge] Matterbridge has been updated. Full restart required. [21:39:49.523] [Matterbridge] updating... [21:39:49.524] [Matterbridge] WebSocket client disconnected 2024-07-02 21:39:52.622 INFO MatterDevice All announcements expired [21:39:52.625] [Matterbridge] Saving registered devices... [21:39:52.626] [Matterbridge] Saved registered devices (0) [21:39:52.626] [Matterbridge] Waiting for matter to deliver last messages... [21:39:54.627] [Matterbridge] Cleanup completed. Shutting down... matterbridge.service: Deactivated successfully. matterbridge.service: Consumed 9.069s CPU time. matterbridge.service: Scheduled restart job, restart counter is at 1. Stopped matterbridge.service - matterbridge. matterbridge.service: Consumed 9.069s CPU time. Started matterbridge.service - matterbridge.

matterbridge@1.3.8 start:bridge node ./dist/cli.js -bridge [21:40:05.649] [Matterbridge] Matterbridge version 1.3.8 mode bridge running on Linux 6.8.8-2-pve linux x64 [21:40:05.971] [Matterbridge] The frontend http server is listening on http://192.168.68.141:8283 [21:40:05.976] [Matterbridge] The WebSocketServer is listening on ws://192.168.68.141:8283 [21:40:06.344] [Matterbridge] Matterbridge is out of date. Current version: 1.3.8, Latest version: 1.3.9 [21:40:06.992] [Matterbridge] Matter server started [21:40:07.006] [Matterbridge] The commissioning server on port 5540 for Matterbridge is not commissioned. Pair it scanning the QR code: ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ █ ▄▄▄▄▄ ██▀▄█▄█ ▄▄▄▄▄ █ █ █ █ █▄▀▄ ▀█ █ █ █ █ █▄▄▄█ ██ ▀▀▄█ █▄▄▄█ █ █▄▄▄▄▄▄▄█ █ ▀ █▄▄▄▄▄▄▄█ █ ▄ ▀▄▄▄ ▀ ▄▀▄▄▀██ █▀█ █ ▀▄▄▀▄▀▄▀▀▀▀ ▄ █ ▀█▀█ █▄█▄███▄██▄▀▄▄█▄█▄▄▀▄▀█ █ ▄▄▄▄▄ █ ▄ ███▄█▀▄ █ █ █ █ █ █▄▄▄██▀▄▀▀▄ ▀██ █ █▄▄▄█ █ ▀█▀ ▀█ ▀ █ █▄▄▄▄▄▄▄█▄█▄▄▄██▄██▄█▄█ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Matterbridge qrPairingCode: MT:Y.K90KCZ162IY94J810 Manual pairing code: 33373535357


as the log above Could not set limit for 'core' to soft=0, hard=-1: Operation not permitted; uid=0,euid=0** ,, its a permissions issue not matterbridge issue , the one who created the script need to look at this and adjust what need to be adjusted

tammeryousef1006 commented 2 weeks ago

my advice that you should choose to install Docker LXC . then follow the steps to install matter bridge inside it

tammeryousef1006 commented 2 weeks ago

Ubuntu 20.04.6 LTS matterbridge tty1

matterbridge login: root (automatic login)

Matterbridge LXC provided by https://helper-scripts.com/

Last login: Tue Jul 2 22:16:30 +03 2024 on lxc/tty1 root@matterbridge:~# sudo journalctl -u matterbridge.service -f --output cat npm error code ENOENT npm error syscall spawn sh npm error path /opt/matterbridge npm error errno -2 npm error enoent spawn sh ENOENT npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: /root/.npm/_logs/2024-07-02T19_17_07_227Z-debug-0.log matterbridge.service: Main process exited, code=exited, status=254/n/a matterbridge.service: Failed with result 'exit-code'. matterbridge.service: Scheduled restart job, restart counter is at 1. Stopped matterbridge. Started matterbridge.

matterbridge@1.3.8 start:bridge node ./dist/cli.js -bridge npm error code ENOENT npm error syscall spawn sh npm error path /opt/matterbridge npm error errno -2 npm error enoent spawn sh ENOENT npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: /root/.npm/_logs/2024-07-02T19_17_17_592Z-debug-0.log matterbridge.service: Main process exited, code=exited, status=254/n/a matterbridge.service: Failed with result 'exit-code'. matterbridge.service: Scheduled restart job, restart counter is at 2. Stopped matterbridge. Started matterbridge. matterbridge@1.3.8 start:bridge node ./dist/cli.js -bridge npm error code ENOENT npm error syscall spawn sh npm error path /opt/matterbridge npm error errno -2 npm error enoent spawn sh ENOENT npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: /root/.npm/_logs/2024-07-02T19_17_27_846Z-debug-0.log matterbridge.service: Main process exited, code=exited, status=254/n/a matterbridge.service: Failed with result 'exit-code'. matterbridge.service: Scheduled restart job, restart counter is at 3. Stopped matterbridge. Started matterbridge. matterbridge@1.3.8 start:bridge node ./dist/cli.js -bridge npm error code ENOENT npm error syscall spawn sh npm error path /opt/matterbridge npm error errno -2 npm error enoent spawn sh ENOENT npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: /root/.npm/_logs/2024-07-02T19_17_38_094Z-debug-0.log matterbridge.service: Main process exited, code=exited, status=254/n/a matterbridge.service: Failed with result 'exit-code'. matterbridge.service: Scheduled restart job, restart counter is at 4. Stopped matterbridge. Started matterbridge. matterbridge@1.3.8 start:bridge node ./dist/cli.js -bridge npm error code ENOENT npm error syscall spawn sh npm error path /opt/matterbridge npm error errno -2 npm error enoent spawn sh ENOENT npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: /root/.npm/_logs/2024-07-02T19_17_48_348Z-debug-0.log matterbridge.service: Main process exited, code=exited, status=254/n/a matterbridge.service: Failed with result 'exit-code'

test with root also same error , kinda wrong path

Luligu commented 2 weeks ago

@A-vesalius make a test with the correct systemctl configuration and let me know please

I would also open an issue with https://github.com/tteck/Proxmox/issues and tell them that if they need they can get in touch.

tammeryousef1006 commented 2 weeks ago

here is the script of promox if you would like to take a look :

!/usr/bin/env bash

source <(curl -s https://raw.githubusercontent.com/tteck/Proxmox/main/misc/build.func)

Copyright (c) 2021-2024 tteck

Author: MickLesk (Canbiz)

License: MIT

https://github.com/tteck/Proxmox/raw/main/LICENSE

function header_info { clear cat <<"EOF"


/ |/ / / /_/ /_ / / ____(_)/ / _ / /|/ / `/ / / \/ / _ \/ / / / `/ \ / / / / // / // // / / / // / / / / // / /_/ / / // //_,/\/_/\// /.// //_,/_, /_/ /____/
EOF } header_info echo -e "Loading..." APP="Matterbridge" var_disk="4" var_cpu="1" var_ram="1024" var_os="debian" var_version="12" variables color catch_errors

function default_settings() { CT_TYPE="1" PW="" CT_ID=$NEXTID HN=$NSAPP DISK_SIZE="$var_disk" CORE_COUNT="$var_cpu" RAM_SIZE="$var_ram" BRG="vmbr0" NET="dhcp" GATE="" APT_CACHER="" APT_CACHER_IP="" DISABLEIP6="no" MTU="" SD="" NS="" MAC="" VLAN="" SSH="no" VERB="no" echo_default }

function update_script() { header_info if [[ ! -d /opt/matterbridge ]]; then msg_error "No ${APP} Installation Found!"; exit; fi

RELEASE=$(curl -s https://api.github.com/repos/Luligu/matterbridge/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3)}') if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then msg_info "Stopping ${APP} Service" systemctl stop matterbridge msg_ok "Stopped ${APP} Service"

msg_info "Updating ${APP} to ${RELEASE}" cd /opt/matterbridge wget -q "https://github.com/Luligu/matterbridge/archive/refs/tags/${RELEASE}.zip" unzip -q ${RELEASE}.zip mv matterbridge-${RELEASE} /opt/matterbridge cd /opt/matterbridge npm ci >/dev/null 2>&1 npm run build >/dev/null 2>&1 echo "${RELEASE}" >/opt/${APP}_version.txt msg_ok "Updated ${APP} to ${RELEASE}"

msg_info "Cleaning up" rm /opt/${RELEASE}.zip msg_ok "Cleaned"

msg_info "Starting ${APP} Service" systemctl start matterbridge sleep 1 msg_ok "Started ${APP} Service" msg_ok "Updated Successfully!\n" else msg_ok "No update required. ${APP} is already at ${RELEASE}" fi exit }

start build_container description

msg_ok "Completed Successfully!\n" echo -e "${APP} Setup should be reachable by going to the following URL. ${BL}http://${IP}:8283${CL} \n"

A-vesalius commented 2 weeks ago

Sorry busy working nights will try to pull in https://github.com/MickLesk to help from the TTeck side. Not crucial enough yet as I am just testing and would prefer to use a dedicated LXC if that can be made to work from the script. Otherwise I can just install myself into an LXC. The correct systemctl configuration given above runs fine after reboot and correctly identifies this as running as a -- service, but does not fix this particular issue, but for reasons I don't understand the script is using something very different in the /etc/systemd/system/matterbridge.service file line ExecStart=/usr/bin/npm run start:bridge childbridge can be substituted for bridge. https://github.com/tteck/Proxmox/discussions/50#discussioncomment-9762466