matterbridge 3.4.7-dev-20260112-a00b2bf → 3.4.7-dev-20260112-bd9e311
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 +5 -3
- package/dist/dgram/dgram.js +1 -1
- package/npm-shrinkwrap.json +10 -4
- package/package.json +2 -2
- package/packages/dgram/dist/dgram.js +1 -1
- package/packages/dgram/package.json +13 -9
- package/packages/jest-utils/package.json +6 -5
- package/packages/utils/package.json +12 -8
- package/packages/vitest-utils/package.json +6 -5
- package/reflector/DockerDesktopSetup.png +0 -0
- package/reflector/Reflector.md +0 -167
- package/reflector/ReflectorClient.png +0 -0
- package/reflector/ReflectorServer.png +0 -0
- package/reflector/docker-compose.yml +0 -32
- package/reflector/mDnsPacket.png +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -28,7 +28,7 @@ Advantages:
|
|
|
28
28
|
- individual plugin isolation in childbridge mode;
|
|
29
29
|
- ability to update the plugin in childbridge mode without restarting matterbridge;
|
|
30
30
|
|
|
31
|
-
## [3.4.7] -
|
|
31
|
+
## [3.4.7] - 2026-01-12
|
|
32
32
|
|
|
33
33
|
### Added
|
|
34
34
|
|
|
@@ -41,12 +41,14 @@ Advantages:
|
|
|
41
41
|
- [bug_report]: Updated the bug report issue template.
|
|
42
42
|
- [dockerfile]: Refactored dockerfiles and entrypoints for main, dev, ubuntu and alpine.
|
|
43
43
|
- [docker]: Removed from docker hub all images untagged or tag 1.x.x and 2.x.x (350 GB).
|
|
44
|
+
- [eslint]: Added --cache.
|
|
45
|
+
- [prettier]: Added --cache.
|
|
44
46
|
|
|
45
47
|
### Changed
|
|
46
48
|
|
|
47
49
|
- [package]: Updated dependencies.
|
|
48
|
-
- [dgram]: Bumbed version number to 1.0.
|
|
49
|
-
- [network]: Bumbed version number to 1.0.
|
|
50
|
+
- [dgram]: Bumbed version number to 1.0.3 and excluded virtual, overlay, or tunnel interfaces in Dgram class.
|
|
51
|
+
- [network]: Bumbed version number to 1.0.3.
|
|
50
52
|
|
|
51
53
|
<a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
|
|
52
54
|
|
package/dist/dgram/dgram.js
CHANGED
|
@@ -133,7 +133,7 @@ export class Dgram extends EventEmitter {
|
|
|
133
133
|
}
|
|
134
134
|
if (!networkInterface) {
|
|
135
135
|
for (const [interfaceName, interfaceDetails] of Object.entries(interfaces)) {
|
|
136
|
-
if (
|
|
136
|
+
if (!networkInterface && this.excludedInterfaceNamePattern.test(interfaceName))
|
|
137
137
|
continue;
|
|
138
138
|
if (!interfaceDetails)
|
|
139
139
|
continue;
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.4.7-dev-20260112-
|
|
3
|
+
"version": "3.4.7-dev-20260112-bd9e311",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge",
|
|
9
|
-
"version": "3.4.7-dev-20260112-
|
|
9
|
+
"version": "3.4.7-dev-20260112-bd9e311",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"workspaces": [
|
|
12
12
|
"packages/jest-utils",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
],
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@matter/main": "0.15.6",
|
|
19
|
-
"@matterbridge/dgram": "0.0.
|
|
19
|
+
"@matterbridge/dgram": "0.0.2",
|
|
20
20
|
"@matterbridge/jest-utils": "0.0.1",
|
|
21
21
|
"@matterbridge/utils": "0.0.1",
|
|
22
22
|
"@matterbridge/vitest-utils": "0.0.1",
|
|
@@ -12063,7 +12063,7 @@
|
|
|
12063
12063
|
},
|
|
12064
12064
|
"packages/dgram": {
|
|
12065
12065
|
"name": "@matterbridge/dgram",
|
|
12066
|
-
"version": "0.0.
|
|
12066
|
+
"version": "0.0.2",
|
|
12067
12067
|
"license": "Apache-2.0",
|
|
12068
12068
|
"dependencies": {
|
|
12069
12069
|
"@matterbridge/jest-utils": "0.0.1",
|
|
@@ -12094,6 +12094,9 @@
|
|
|
12094
12094
|
"typescript-eslint": "8.51.0",
|
|
12095
12095
|
"vitest": "4.0.16"
|
|
12096
12096
|
},
|
|
12097
|
+
"engines": {
|
|
12098
|
+
"node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
12099
|
+
},
|
|
12097
12100
|
"funding": {
|
|
12098
12101
|
"type": "buymeacoffee",
|
|
12099
12102
|
"url": "https://www.buymeacoffee.com/luligugithub"
|
|
@@ -12172,6 +12175,9 @@
|
|
|
12172
12175
|
"typescript-eslint": "8.51.0",
|
|
12173
12176
|
"vitest": "4.0.16"
|
|
12174
12177
|
},
|
|
12178
|
+
"engines": {
|
|
12179
|
+
"node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
12180
|
+
},
|
|
12175
12181
|
"funding": {
|
|
12176
12182
|
"type": "buymeacoffee",
|
|
12177
12183
|
"url": "https://www.buymeacoffee.com/luligugithub"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.4.7-dev-20260112-
|
|
3
|
+
"version": "3.4.7-dev-20260112-bd9e311",
|
|
4
4
|
"description": "Matterbridge plugin manager for Matter",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
},
|
|
111
111
|
"dependencies": {
|
|
112
112
|
"@matter/main": "0.15.6",
|
|
113
|
-
"@matterbridge/dgram": "0.0.
|
|
113
|
+
"@matterbridge/dgram": "0.0.2",
|
|
114
114
|
"@matterbridge/jest-utils": "0.0.1",
|
|
115
115
|
"@matterbridge/utils": "0.0.1",
|
|
116
116
|
"@matterbridge/vitest-utils": "0.0.1",
|
|
@@ -137,7 +137,7 @@ export class Dgram extends EventEmitter {
|
|
|
137
137
|
}
|
|
138
138
|
if (!networkInterface) {
|
|
139
139
|
for (const [interfaceName, interfaceDetails] of Object.entries(interfaces)) {
|
|
140
|
-
if (
|
|
140
|
+
if (!networkInterface && this.excludedInterfaceNamePattern.test(interfaceName))
|
|
141
141
|
continue;
|
|
142
142
|
if (!interfaceDetails)
|
|
143
143
|
continue;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matterbridge/dgram",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "Matterbridge dgram library",
|
|
5
5
|
"author": "https://github.com/Luligu",
|
|
6
6
|
"repository": {
|
|
@@ -26,7 +26,11 @@
|
|
|
26
26
|
"import": "./dist/export.js"
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
31
|
+
},
|
|
29
32
|
"scripts": {
|
|
33
|
+
"start": "node ./dist/export.js",
|
|
30
34
|
"build": "tsc --project tsconfig.json",
|
|
31
35
|
"buildProduction": "tsc --project tsconfig.production.json",
|
|
32
36
|
"clean": "npx shx rm -rf tsconfig.tsbuildinfo dist",
|
|
@@ -41,12 +45,12 @@
|
|
|
41
45
|
"test:vitest:watch": "vitest --reporter verbose",
|
|
42
46
|
"test:vitest:verbose": "vitest run --reporter verbose",
|
|
43
47
|
"test:vitest:coverage": "vitest run --reporter verbose --coverage",
|
|
44
|
-
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
48
|
+
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json .eslintcache .prettiercache node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
45
49
|
"reset": "npm run deepClean && npm install && npm run build && npx jest --clearCache",
|
|
46
|
-
"lint": "eslint --max-warnings=0 .",
|
|
47
|
-
"lint:fix": "eslint --fix --max-warnings=0 .",
|
|
48
|
-
"format": "prettier --write .",
|
|
49
|
-
"format:check": "prettier --check .",
|
|
50
|
+
"lint": "eslint --cache --cache-location .eslintcache --max-warnings=0 .",
|
|
51
|
+
"lint:fix": "eslint --cache --cache-location .eslintcache --fix --max-warnings=0 .",
|
|
52
|
+
"format": "prettier --cache --cache-location .prettiercache --write .",
|
|
53
|
+
"format:check": "prettier --cache --cache-location .prettiercache --check .",
|
|
50
54
|
"preversion": "npm run runMeBeforePublish",
|
|
51
55
|
"postversion": "git push && git push --tags",
|
|
52
56
|
"version:patch": "npm version patch",
|
|
@@ -66,7 +70,7 @@
|
|
|
66
70
|
"npmPublishTagDev": "npx shx cp package.json package.json.backup && npm run prepublishOnly && npm publish --tag dev && npx shx cp package.json.backup package.json && npx shx rm -f package.json.backup && npm run reset",
|
|
67
71
|
"npmPublishTagEdge": "npx shx cp package.json package.json.backup && npm run prepublishOnly && npm publish --tag edge && npx shx cp package.json.backup package.json && npx shx rm -f package.json.backup && npm run reset",
|
|
68
72
|
"npmPublishTagLatest": "npx shx cp package.json package.json.backup && npm run prepublishOnly && npm publish --tag latest && npx shx cp package.json.backup package.json && npx shx rm -f package.json.backup && npm run reset",
|
|
69
|
-
"install:dependencies": "npm install --save-exact node-ansi-logger",
|
|
73
|
+
"install:dependencies": "npm install --save-exact node-ansi-logger @matterbridge/jest-utils",
|
|
70
74
|
"install:scripts": "npm install --save-dev --save-exact npm-check-updates shx cross-env",
|
|
71
75
|
"install:typescript": "npm install --save-dev --save-exact typescript @types/node",
|
|
72
76
|
"install:eslint": "npm install --save-dev --save-exact eslint @eslint/js typescript-eslint eslint-plugin-import eslint-plugin-n eslint-plugin-promise eslint-plugin-jsdoc",
|
|
@@ -75,8 +79,8 @@
|
|
|
75
79
|
"install:vitest": "npm install --save-dev --save-exact vitest @vitest/coverage-v8 @vitest/eslint-plugin"
|
|
76
80
|
},
|
|
77
81
|
"dependencies": {
|
|
78
|
-
"
|
|
79
|
-
"
|
|
82
|
+
"@matterbridge/jest-utils": "0.0.1",
|
|
83
|
+
"node-ansi-logger": "3.1.1"
|
|
80
84
|
},
|
|
81
85
|
"devDependencies": {
|
|
82
86
|
"@eslint/js": "9.39.2",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
+
"start": "node ./dist/export.js",
|
|
33
34
|
"build": "tsc --project tsconfig.json",
|
|
34
35
|
"buildProduction": "tsc --project tsconfig.production.json",
|
|
35
36
|
"clean": "npx shx rm -rf tsconfig.tsbuildinfo dist",
|
|
@@ -44,12 +45,12 @@
|
|
|
44
45
|
"test:vitest:watch": "vitest --reporter verbose",
|
|
45
46
|
"test:vitest:verbose": "vitest run --reporter verbose",
|
|
46
47
|
"test:vitest:coverage": "vitest run --reporter verbose --coverage",
|
|
47
|
-
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
48
|
+
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json .eslintcache .prettiercache node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
48
49
|
"reset": "npm run deepClean && npm install && npm run build && npx jest --clearCache",
|
|
49
|
-
"lint": "eslint --max-warnings=0 .",
|
|
50
|
-
"lint:fix": "eslint --fix --max-warnings=0 .",
|
|
51
|
-
"format": "prettier --write .",
|
|
52
|
-
"format:check": "prettier --check .",
|
|
50
|
+
"lint": "eslint --cache --cache-location .eslintcache --max-warnings=0 .",
|
|
51
|
+
"lint:fix": "eslint --cache --cache-location .eslintcache --fix --max-warnings=0 .",
|
|
52
|
+
"format": "prettier --cache --cache-location .prettiercache --write .",
|
|
53
|
+
"format:check": "prettier --cache --cache-location .prettiercache --check .",
|
|
53
54
|
"preversion": "npm run runMeBeforePublish",
|
|
54
55
|
"postversion": "git push && git push --tags",
|
|
55
56
|
"version:patch": "npm version patch",
|
|
@@ -26,7 +26,11 @@
|
|
|
26
26
|
"import": "./dist/export.js"
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
31
|
+
},
|
|
29
32
|
"scripts": {
|
|
33
|
+
"start": "node ./dist/export.js",
|
|
30
34
|
"build": "tsc --project tsconfig.json",
|
|
31
35
|
"buildProduction": "tsc --project tsconfig.production.json",
|
|
32
36
|
"clean": "npx shx rm -rf tsconfig.tsbuildinfo dist",
|
|
@@ -41,12 +45,12 @@
|
|
|
41
45
|
"test:vitest:watch": "vitest --reporter verbose",
|
|
42
46
|
"test:vitest:verbose": "vitest run --reporter verbose",
|
|
43
47
|
"test:vitest:coverage": "vitest run --reporter verbose --coverage",
|
|
44
|
-
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
48
|
+
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json .eslintcache .prettiercache node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
45
49
|
"reset": "npm run deepClean && npm install && npm run build && npx jest --clearCache",
|
|
46
|
-
"lint": "eslint --max-warnings=0 .",
|
|
47
|
-
"lint:fix": "eslint --fix --max-warnings=0 .",
|
|
48
|
-
"format": "prettier --write .",
|
|
49
|
-
"format:check": "prettier --check .",
|
|
50
|
+
"lint": "eslint --cache --cache-location .eslintcache --max-warnings=0 .",
|
|
51
|
+
"lint:fix": "eslint --cache --cache-location .eslintcache --fix --max-warnings=0 .",
|
|
52
|
+
"format": "prettier --cache --cache-location .prettiercache --write .",
|
|
53
|
+
"format:check": "prettier --cache --cache-location .prettiercache --check .",
|
|
50
54
|
"preversion": "npm run runMeBeforePublish",
|
|
51
55
|
"postversion": "git push && git push --tags",
|
|
52
56
|
"version:patch": "npm version patch",
|
|
@@ -66,7 +70,7 @@
|
|
|
66
70
|
"npmPublishTagDev": "npx shx cp package.json package.json.backup && npm run prepublishOnly && npm publish --tag dev && npx shx cp package.json.backup package.json && npx shx rm -f package.json.backup && npm run reset",
|
|
67
71
|
"npmPublishTagEdge": "npx shx cp package.json package.json.backup && npm run prepublishOnly && npm publish --tag edge && npx shx cp package.json.backup package.json && npx shx rm -f package.json.backup && npm run reset",
|
|
68
72
|
"npmPublishTagLatest": "npx shx cp package.json package.json.backup && npm run prepublishOnly && npm publish --tag latest && npx shx cp package.json.backup package.json && npx shx rm -f package.json.backup && npm run reset",
|
|
69
|
-
"install:dependencies": "npm install --save-exact node-ansi-logger",
|
|
73
|
+
"install:dependencies": "npm install --save-exact node-ansi-logger @matterbridge/jest-utils",
|
|
70
74
|
"install:scripts": "npm install --save-dev --save-exact npm-check-updates shx cross-env",
|
|
71
75
|
"install:typescript": "npm install --save-dev --save-exact typescript @types/node",
|
|
72
76
|
"install:eslint": "npm install --save-dev --save-exact eslint @eslint/js typescript-eslint eslint-plugin-import eslint-plugin-n eslint-plugin-promise eslint-plugin-jsdoc",
|
|
@@ -75,8 +79,8 @@
|
|
|
75
79
|
"install:vitest": "npm install --save-dev --save-exact vitest @vitest/coverage-v8 @vitest/eslint-plugin"
|
|
76
80
|
},
|
|
77
81
|
"dependencies": {
|
|
78
|
-
"
|
|
79
|
-
"
|
|
82
|
+
"@matterbridge/jest-utils": "0.0.1",
|
|
83
|
+
"node-ansi-logger": "3.1.1"
|
|
80
84
|
},
|
|
81
85
|
"devDependencies": {
|
|
82
86
|
"@eslint/js": "9.39.2",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
|
|
31
31
|
},
|
|
32
32
|
"scripts": {
|
|
33
|
+
"start": "node ./dist/export.js",
|
|
33
34
|
"build": "tsc --project tsconfig.json",
|
|
34
35
|
"buildProduction": "tsc --project tsconfig.production.json",
|
|
35
36
|
"clean": "npx shx rm -rf tsconfig.tsbuildinfo dist",
|
|
@@ -44,12 +45,12 @@
|
|
|
44
45
|
"test:vitest:watch": "vitest --reporter verbose",
|
|
45
46
|
"test:vitest:verbose": "vitest run --reporter verbose",
|
|
46
47
|
"test:vitest:coverage": "vitest run --reporter verbose --coverage",
|
|
47
|
-
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
48
|
+
"deepClean": "npx shx rm -rf tsconfig.tsbuildinfo dist coverage jest temp package-lock.json npm-shrinkwrap.json .eslintcache .prettiercache node_modules/* node_modules/.[!.]* node_modules/..?*",
|
|
48
49
|
"reset": "npm run deepClean && npm install && npm run build && npx jest --clearCache",
|
|
49
|
-
"lint": "eslint --max-warnings=0 .",
|
|
50
|
-
"lint:fix": "eslint --fix --max-warnings=0 .",
|
|
51
|
-
"format": "prettier --write .",
|
|
52
|
-
"format:check": "prettier --check .",
|
|
50
|
+
"lint": "eslint --cache --cache-location .eslintcache --max-warnings=0 .",
|
|
51
|
+
"lint:fix": "eslint --cache --cache-location .eslintcache --fix --max-warnings=0 .",
|
|
52
|
+
"format": "prettier --cache --cache-location .prettiercache --write .",
|
|
53
|
+
"format:check": "prettier --cache --cache-location .prettiercache --check .",
|
|
53
54
|
"preversion": "npm run runMeBeforePublish",
|
|
54
55
|
"postversion": "git push && git push --tags",
|
|
55
56
|
"version:patch": "npm version patch",
|
|
Binary file
|
package/reflector/Reflector.md
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
# Matterbridge mDNS reflector
|
|
2
|
-
|
|
3
|
-
This project aims to use Matterbridge in these configurations:
|
|
4
|
-
|
|
5
|
-
| Docker type | Docker network | OS | Ipv4 | Ipv6 | Share (3) | Home Assistant | Matter Server |
|
|
6
|
-
| -------------- | -------------- | ------- | ---- | ---- | --------- | -------------- | ------------- |
|
|
7
|
-
| Docker Desktop | bridge (1) | Windows | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
8
|
-
| Docker Desktop | bridge (1) | macOS | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
9
|
-
| Docker Engine | bridge (2) | Linux | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
10
|
-
|
|
11
|
-
(1) - Network host in this configuration is useless cause Docker runs inside a VM.
|
|
12
|
-
|
|
13
|
-
(2) - Network host in this configuration works already out of the box cause Docker runs on the host.
|
|
14
|
-
|
|
15
|
-
(3) - Share mDNS between separate containers.
|
|
16
|
-
|
|
17
|
-
It can also be used to run Home Assistant and Matter Server inside Docker Desktop on Windows and macOS (with network bridge) without using complex VM. You just copy paste this [docker-compose.yml](https://matterbridge.io/reflector/docker-compose.yml).
|
|
18
|
-
|
|
19
|
-
Since the mDNS are shared between reflector clients, you can pair Matterbridge running with Docker Desktop to Home Assistant running with Docker Desktop. Even on the same machine.
|
|
20
|
-
|
|
21
|
-
<a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
|
|
22
|
-
|
|
23
|
-
# Prerequisites
|
|
24
|
-
|
|
25
|
-
- Docker Desktop
|
|
26
|
-
|
|
27
|
-
## Docker Desktop requirements for Windows and macOS
|
|
28
|
-
|
|
29
|
-
See Docker Desktop docs.
|
|
30
|
-
|
|
31
|
-
## Dual Stack IPv4/IPv6 mDNS enabled and No filtering
|
|
32
|
-
|
|
33
|
-

|
|
34
|
-
|
|
35
|
-
# Run Matterbridge in a Docker Desktop container
|
|
36
|
-
|
|
37
|
-
We use named volumes for storage, plugins and mattercert.
|
|
38
|
-
|
|
39
|
-
We publish the default matterbridge frontend port 8283.
|
|
40
|
-
|
|
41
|
-
We publish the matter port range 5550-5559 to allow childbridge mode and server node devices (RVCs).
|
|
42
|
-
|
|
43
|
-
macOS
|
|
44
|
-
|
|
45
|
-
```zsh
|
|
46
|
-
docker stop matterbridge-test
|
|
47
|
-
docker rm matterbridge-test
|
|
48
|
-
docker pull luligu/matterbridge:dev
|
|
49
|
-
docker run -dit --restart unless-stopped --name matterbridge-test \
|
|
50
|
-
-p 8283:8283 -p 5550-5559:5550-5559/udp \
|
|
51
|
-
-v storage:/root/.matterbridge -v plugins:/root/Matterbridge -v mattercert:/root/.mattercert \
|
|
52
|
-
luligu/matterbridge:dev matterbridge --docker --frontend 8283 --port 5550
|
|
53
|
-
docker logs --tail 1000 -f matterbridge-test
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
powerShell
|
|
57
|
-
|
|
58
|
-
```powershell
|
|
59
|
-
docker stop matterbridge-test
|
|
60
|
-
docker rm matterbridge-test
|
|
61
|
-
docker pull luligu/matterbridge:dev
|
|
62
|
-
docker run -dit --restart unless-stopped --name matterbridge-test `
|
|
63
|
-
-p 8283:8283 -p 5550-5559:5550-5559/udp `
|
|
64
|
-
-v storage:/root/.matterbridge -v plugins:/root/Matterbridge -v mattercert:/root/.mattercert `
|
|
65
|
-
luligu/matterbridge:dev matterbridge --docker --frontend 8283 --port 5550
|
|
66
|
-
docker logs --tail 1000 -f matterbridge-test
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
You will see that the frontend inside the container is listening on the conainer address
|
|
70
|
-
|
|
71
|
-
```text
|
|
72
|
-
[09:02:10.140] [Frontend] The frontend http server is listening on http://172.17.0.2:8283
|
|
73
|
-
[09:02:10.140] [Frontend] The frontend http server is listening on http://[fd3d:8954:ffe5::2]:8283
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
But since we mapped the port 8283:
|
|
77
|
-
|
|
78
|
-
- the frontend is available on the host with localhost:8283, <your_host_ip>:8283 or <your_hostname>:8283.
|
|
79
|
-
|
|
80
|
-
- the frontend is available on the lan with <your_host_ip>:8283 or <your_hostname>:8283.
|
|
81
|
-
|
|
82
|
-
In the same way the Matter port range 5550-5559 is mapped outside the container to allow the controllers on the lan to discover and connect Matterbridge.
|
|
83
|
-
|
|
84
|
-
## Optional: if you want to see the mDNS inside the Docker Desktop container
|
|
85
|
-
|
|
86
|
-
From another terminal run mb_mdns inside the container we created and run before
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
docker exec -it matterbridge-test mb_mdns --no-timeout
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
In a while you will see what mDNS packets are advertised inside the container
|
|
93
|
-
|
|
94
|
-

|
|
95
|
-
|
|
96
|
-
## Optional: if you want to see ip and routing table inside the Docker Desktop container
|
|
97
|
-
|
|
98
|
-
From another terminal run ip a and ip r inside the container we created and run before
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
docker exec -it matterbridge-test apt-get update
|
|
102
|
-
docker exec -it matterbridge-test apt-get install -y --no-install-recommends iproute2 iputils-ping net-tools dnsutils tcpdump netcat-openbsd
|
|
103
|
-
docker exec -it matterbridge-test ip a
|
|
104
|
-
docker exec -it matterbridge-test ip r
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Issues we have there
|
|
108
|
-
|
|
109
|
-
1. The advertised mDNS packets cannot reach the host and the lan cause mDNS are not routed inside Docker Desktop
|
|
110
|
-
|
|
111
|
-
2. The advertised mDNS packets contain wrong A and AAAA records:
|
|
112
|
-
|
|
113
|
-
- the advertised address are relative to the container
|
|
114
|
-
- those address are not reachable from the host and from the lan
|
|
115
|
-
|
|
116
|
-
## Download and run the Madderbridge reflector server tray app directly on the host
|
|
117
|
-
|
|
118
|
-
| OS | Type | Dowload | Link |
|
|
119
|
-
| ------- | ------------- | --------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
120
|
-
| Windows | Any arch | .exe | [download](https://github.com/Luligu/mdns-reflector-dist/releases/download/v0.0.1/mDNS.Reflector.Server.Setup.0.0.1.exe) |
|
|
121
|
-
| macOS | Apple Silicon | .dmg | [download](https://github.com/Luligu/mdns-reflector-dist/releases/download/v0.0.1/mDNS.Reflector.Server-0.0.1-arm64.dmg) |
|
|
122
|
-
| macOS | Intel | .dmg | [download](https://github.com/Luligu/mdns-reflector-dist/releases/download/v0.0.1/mDNS.Reflector.Server-0.0.1.dmg) |
|
|
123
|
-
| Ubuntu | desktop | .AppImage | [download](https://github.com/Luligu/mdns-reflector-dist/releases/download/v0.0.1/mDNS.Reflector.Server-0.0.1.AppImage) |
|
|
124
|
-
| Ubuntu | headless | .deb | [download](https://github.com/Luligu/mdns-reflector-dist/releases/download/v0.0.1/mdns-reflector-server_0.0.1-1_all.deb) |
|
|
125
|
-
| Debian | Any distro | .deb | [download](https://github.com/Luligu/mdns-reflector-dist/releases/download/v0.0.1/mdns-reflector-server_0.0.1-1_all.deb) |
|
|
126
|
-
|
|
127
|
-
You may need to approve the install while the try apps are not digitally signed.
|
|
128
|
-
|
|
129
|
-
Verify also that the firewall, if enabled, allows UDP for the app on public and private networks.
|
|
130
|
-
|
|
131
|
-
In a while you will see:
|
|
132
|
-
|
|
133
|
-

|
|
134
|
-
|
|
135
|
-
## Run the Madderbridge reflector client in container
|
|
136
|
-
|
|
137
|
-
```shell
|
|
138
|
-
docker stop matterbridge-reflector
|
|
139
|
-
docker rm matterbridge-reflector
|
|
140
|
-
docker pull luligu/reflector-client:latest
|
|
141
|
-
docker run -dit --restart unless-stopped --name matterbridge-reflector luligu/reflector-client:latest
|
|
142
|
-
docker logs --tail 1000 -f matterbridge-reflector
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
In a while you will see:
|
|
146
|
-
|
|
147
|
-

|
|
148
|
-
|
|
149
|
-
# Run Home Assistant and Matter Server in Docker compose with Docker Desktop
|
|
150
|
-
|
|
151
|
-
## Prerequisites
|
|
152
|
-
|
|
153
|
-
You need the Matterbridge reflector server tray app running on the host from the tutorial above.
|
|
154
|
-
|
|
155
|
-
## Run Home Assitant and Matter Server in Docker Compose with Docker Desktop
|
|
156
|
-
|
|
157
|
-
To test the sharing feature (it shares mDNS between all reflector clients),
|
|
158
|
-
use this [docker-compose.yml](https://matterbridge.io/reflector/docker-compose.yml).
|
|
159
|
-
|
|
160
|
-
With this configuration Home Assistant (with Matter Server) works inside a Docker Desktop container without network host. When asked by Home Assistant, connect to Matter Server with **ws://matterserver:5580/ws**
|
|
161
|
-
|
|
162
|
-
```shell
|
|
163
|
-
docker compose down
|
|
164
|
-
docker compose pull
|
|
165
|
-
docker compose up -d --force-recreate
|
|
166
|
-
docker logs --tail 1000 -f reflector
|
|
167
|
-
```
|
|
Binary file
|
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
services:
|
|
2
|
-
homeassistant:
|
|
3
|
-
container_name: homeassistant
|
|
4
|
-
image: ghcr.io/home-assistant/home-assistant:stable
|
|
5
|
-
restart: unless-stopped
|
|
6
|
-
depends_on:
|
|
7
|
-
- matterserver
|
|
8
|
-
ports:
|
|
9
|
-
- "8123:8123"
|
|
10
|
-
volumes:
|
|
11
|
-
- ./DockerVolumes/homeassistant:/config
|
|
12
|
-
environment:
|
|
13
|
-
- TZ=Europe/Paris
|
|
14
|
-
|
|
15
|
-
matterserver:
|
|
16
|
-
container_name: matterserver
|
|
17
|
-
image: ghcr.io/home-assistant-libs/python-matter-server:stable
|
|
18
|
-
restart: unless-stopped
|
|
19
|
-
ports:
|
|
20
|
-
- "5580:5580"
|
|
21
|
-
- "5540:5540/udp"
|
|
22
|
-
volumes:
|
|
23
|
-
- ./DockerVolumes/matterserver:/data
|
|
24
|
-
environment:
|
|
25
|
-
- TZ=Europe/Paris
|
|
26
|
-
|
|
27
|
-
reflector:
|
|
28
|
-
container_name: reflector
|
|
29
|
-
image: luligu/reflector-client:latest
|
|
30
|
-
restart: unless-stopped
|
|
31
|
-
environment:
|
|
32
|
-
- TZ=Europe/Paris
|
package/reflector/mDnsPacket.png
DELETED
|
Binary file
|