matterbridge 3.3.3-dev-20251014-c1b948a → 3.3.3-dev-20251015-19d1be8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -25,9 +25,20 @@ Advantages:
25
25
 
26
26
  ## [3.3.3] - Not released
27
27
 
28
+ ### Added
29
+
30
+ - [thread]: Added timestamp to WorkerMessage.
31
+ - [macOS]: Added the [plist configuration guide](README-MACOS-PLIST.md).
32
+
28
33
  ### Changed
29
34
 
30
35
  - [package]: Updated dependencies.
36
+ - [frontend]: Bumped `frontend` version to 3.2.2.
37
+ - [frontend]: Added update check on start.
38
+ - [frontend]: Added icon to update dev in the Header and removed the yellow badges.
39
+ - [frontend]: Added icon to update plugin latest and dev and removed the yellow badges.
40
+ - [frontend]: Added plugin Path in the Name Tooltip.
41
+ - [history]: Added external and array buffers to the history chart.
31
42
 
32
43
  <a href="https://www.buymeacoffee.com/luligugithub">
33
44
  <img src="bmc-button.svg" alt="Buy me a coffee" width="80">
@@ -0,0 +1,242 @@
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge launchctl configuration (macOS)
2
+
3
+ [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
+ [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
7
+ ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
+ ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
+ [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
10
+
11
+ [![power by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history)
12
+ [![power by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger)
13
+ [![power by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager)
14
+
15
+ ---
16
+
17
+ # Advanced configuration
18
+
19
+ ## Run matterbridge as system service with launchctl (macOS) and its own global node_modules directory
20
+
21
+ ### Optional: cleanup all previous setups
22
+
23
+ ```bash
24
+ sudo rm -rf ~/Matterbridge
25
+ sudo rm -rf ~/.matterbridge
26
+ sudo rm -rf ~/.mattercert
27
+ sudo rm -rf /usr/local/etc/matterbridge
28
+ sudo rm -f /Library/LaunchDaemons/matterbridge.plist
29
+ sudo rm -f /var/log/matterbridge.log /var/log/matterbridge.err
30
+ sudo npm uninstall matterbridge -g
31
+ ```
32
+
33
+ ### Verify node setup
34
+
35
+ ```bash
36
+ node -v
37
+ npm -v
38
+ ```
39
+
40
+ It should output something like:
41
+
42
+ ```
43
+ v22.20.0
44
+ 10.9.3
45
+ ```
46
+
47
+ ### Check node path
48
+
49
+ ```bash
50
+ which node
51
+ ```
52
+
53
+ It should output something like:
54
+
55
+ ```
56
+ /usr/local/bin/node
57
+ ```
58
+
59
+ In this case you will need in the step below to replace **_MYNODEPATH_** with /usr/local/bin
60
+
61
+ ### First create the Matterbridge directories
62
+
63
+ This will create the required directories if they don't exist and install matterbridge in the matterbridge global node_modules directory
64
+
65
+ ```bash
66
+ sudo mkdir -p /usr/local/etc/matterbridge
67
+ sudo mkdir -p /usr/local/etc/matterbridge/.npm-global
68
+ sudo mkdir -p /usr/local/etc/matterbridge/Matterbridge
69
+ sudo mkdir -p /usr/local/etc/matterbridge/.matterbridge
70
+ sudo mkdir -p /usr/local/etc/matterbridge/.mattercert
71
+ sudo chown -R root:wheel /usr/local/etc/matterbridge
72
+ sudo chown -R root:wheel /usr/local/etc/matterbridge/.npm-global
73
+ sudo chmod -R 755 /usr/local/etc/matterbridge/.npm-global
74
+ sudo NPM_CONFIG_PREFIX=/usr/local/etc/matterbridge/.npm-global npm install -g matterbridge --omit=dev
75
+ ```
76
+
77
+ ### Then create a system launchctl configuration file for Matterbridge
78
+
79
+ - create a launchctl configuration file for Matterbridge
80
+
81
+ ```bash
82
+ sudo nano /Library/LaunchDaemons/matterbridge.plist
83
+ ```
84
+
85
+ - add the following to the file, replacing **_MYNODEPATH_** with the path found in the step before:
86
+
87
+ ```
88
+ <?xml version="1.0" encoding="UTF-8"?>
89
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
90
+ <plist version="1.0">
91
+ <dict>
92
+ <key>EnvironmentVariables</key>
93
+ <dict>
94
+ <key>PATH</key>
95
+ <string>/usr/local/etc/matterbridge/.npm-global/bin:MYNODEPATH</string>
96
+ <key>NPM_CONFIG_PREFIX</key>
97
+ <string>/usr/local/etc/matterbridge/.npm-global</string>
98
+ <key>HOME</key>
99
+ <string>/var/root</string>
100
+ <key>NODE_PATH</key>
101
+ <string>/usr/local/etc/matterbridge/.npm-global/lib/node_modules</string>
102
+ </dict>
103
+ <key>KeepAlive</key>
104
+ <true/>
105
+ <key>Label</key>
106
+ <string>matterbridge</string>
107
+ <key>ProgramArguments</key>
108
+ <array>
109
+ <string>/usr/local/etc/matterbridge/.npm-global/bin/matterbridge</string>
110
+ <string>--homedir</string>
111
+ <string>/usr/local/etc/matterbridge</string>
112
+ <string>--service</string>
113
+ <string>--nosudo</string>
114
+ </array>
115
+ <key>RunAtLoad</key>
116
+ <true/>
117
+ <key>StandardErrorPath</key>
118
+ <string>/var/log/matterbridge.err</string>
119
+ <key>StandardOutPath</key>
120
+ <string>/var/log/matterbridge.log</string>
121
+ <key>WorkingDirectory</key>
122
+ <string>/usr/local/etc/matterbridge</string>
123
+ </dict>
124
+ </plist>
125
+ ```
126
+
127
+ - stop matterbridge
128
+
129
+ ```bash
130
+ sudo launchctl bootout system/matterbridge
131
+ ```
132
+
133
+ - check the plist
134
+
135
+ ```bash
136
+ sudo chown root:wheel /Library/LaunchDaemons/matterbridge.plist
137
+ sudo chmod 644 /Library/LaunchDaemons/matterbridge.plist
138
+ sudo plutil -lint /Library/LaunchDaemons/matterbridge.plist
139
+ sudo plutil -convert xml1 /Library/LaunchDaemons/matterbridge.plist
140
+ ```
141
+
142
+ - bootstrap matterbridge and enable it
143
+
144
+ ```bash
145
+ sudo rm -f /var/log/matterbridge.log /var/log/matterbridge.err
146
+ sudo launchctl bootstrap system /Library/LaunchDaemons/matterbridge.plist
147
+ sudo launchctl enable system/matterbridge
148
+ ```
149
+
150
+ ### Start Matterbridge
151
+
152
+ ```bash
153
+ sudo launchctl kickstart -k system/matterbridge
154
+ ```
155
+
156
+ ### Stop Matterbridge
157
+
158
+ ```bash
159
+ sudo launchctl bootout system/matterbridge
160
+ ```
161
+
162
+ ### Restart Matterbridge
163
+
164
+ ```bash
165
+ sudo launchctl kickstart -k system/matterbridge
166
+ ```
167
+
168
+ ### Show Matterbridge status
169
+
170
+ ```bash
171
+ sudo launchctl print system/matterbridge
172
+ ```
173
+
174
+ ### Show Matterbridge status (only essentials)
175
+
176
+ ```bash
177
+ sudo launchctl print system/matterbridge | grep -E "pid|state"
178
+ ```
179
+
180
+ ### Enable Matterbridge to start automatically on boot
181
+
182
+ ```bash
183
+ sudo launchctl enable system/matterbridge
184
+ ```
185
+
186
+ ### Disable Matterbridge from starting automatically on boot
187
+
188
+ ```bash
189
+ sudo launchctl disable system/matterbridge
190
+ ```
191
+
192
+ ### View the log of Matterbridge in real time (this will show the log with colors)
193
+
194
+ ```bash
195
+ sudo tail -n 1000 -f /var/log/matterbridge.log /var/log/matterbridge.err
196
+ ```
197
+
198
+ ### Automatically rotate logs (every 5 days or at 100 MB, keep 5 compressed backups)
199
+
200
+ ```bash
201
+ sudo tee /etc/newsyslog.d/matterbridge.conf <<'EOF'
202
+ /var/log/matterbridge.log root:wheel 640 5 102400 5 Z
203
+ /var/log/matterbridge.err root:wheel 640 5 102400 5 Z
204
+ EOF
205
+ sudo newsyslog -v
206
+ ```
207
+
208
+ ### Optional: remove the password prompt for sudo
209
+
210
+ ```bash
211
+ sudo EDITOR=nano visudo
212
+ ```
213
+
214
+ Add this line at the end of the file (replace USER with your macOS username):
215
+
216
+ ```
217
+ USER ALL=(ALL) NOPASSWD: ALL
218
+ ```
219
+
220
+ Save and validate syntax:
221
+
222
+ ```bash
223
+ sudo visudo -c
224
+ ```
225
+
226
+ ### Optional: ask for password only each 60 minutes
227
+
228
+ ```bash
229
+ sudo EDITOR=nano visudo
230
+ ```
231
+
232
+ Add (or edit) this line anywhere in the file:
233
+
234
+ ```
235
+ Defaults timestamp_timeout = 60
236
+ ```
237
+
238
+ Save and validate syntax:
239
+
240
+ ```bash
241
+ sudo visudo -c
242
+ ```
package/README-SERVICE.md CHANGED
@@ -169,7 +169,7 @@ sudo systemctl restart systemd-journald
169
169
  Run the following command to verify if you can install Matterbridge globally without being prompted for a password:
170
170
 
171
171
  ```bash
172
- sudo npm install -g matterbridge
172
+ sudo npm install -g matterbridge --omit=dev
173
173
  ```
174
174
 
175
175
  If you are not prompted for a password, no further action is required.
@@ -210,3 +210,9 @@ save the file and reload the settings with:
210
210
  sudo chmod 0440 /etc/sudoers.d/matterbridge
211
211
  sudo visudo -c
212
212
  ```
213
+
214
+ Verify if you can install Matterbridge globally without being prompted for a password:
215
+
216
+ ```bash
217
+ sudo npm install -g matterbridge --omit=dev
218
+ ```
package/README.md CHANGED
@@ -84,7 +84,7 @@ Since Matter is designed as "a universal IPv6-based communication protocol for s
84
84
 
85
85
  Avoid using VLAN and firewall blocking the communications between the controllers and Matterbridge.
86
86
 
87
- To pair matterbridge, you need a matter enabled controller (Apple Home, Smart Things, Google Home, Alexa, Hose Assistant etc.).
87
+ To pair matterbridge, you need a matter enabled controller (Apple Home, Smart Things, Google Home, Alexa, Home Assistant etc.).
88
88
 
89
89
  ## Installation
90
90
 
@@ -172,6 +172,10 @@ Config editor:
172
172
 
173
173
  [Service configurations](README-SERVICE.md)
174
174
 
175
+ ### Run matterbridge as a system service with launchctl (macOS only)
176
+
177
+ [Launchctl configurations](README-MACOS-PLIST.md)
178
+
175
179
  ### Run matterbridge with docker and docker compose
176
180
 
177
181
  [Docker configurations](README-DOCKER.md)
@@ -180,10 +184,6 @@ Config editor:
180
184
 
181
185
  [Podman configurations](README-PODMAN.md)
182
186
 
183
- ### Run matterbridge as a service on macOS with mb-service (by [Michael Ahern](https://github.com/michaelahern))
184
-
185
- [Matterbridge Service Command for macOS](https://github.com/michaelahern/mb-service)
186
-
187
187
  ### Run matterbridge with nginx
188
188
 
189
189
  [Nginx configurations](README-NGINX.md)