Skip to content

Commit 0973fac

Browse files
ddcashclaude
andauthored
Add plugins option to enable the MeshCentral plugin system (#7)
Adds a new `plugins` boolean option (default: false). When enabled, the add-on writes `plugins: { enabled: true }` into the generated config.json, which unlocks the Plugins tab under My Server so administrators can install, update and remove MeshCentral plugins. Installed plugins are stored under /data/meshcentral-data/plugins, so they persist across add-on restarts, updates and HA backups. Co-authored-by: ddcash <25888001+ddcash@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent cace370 commit 0973fac

7 files changed

Lines changed: 39 additions & 1 deletion

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## \[0.2.13\] - 2026-07-09
4+
5+
### Added
6+
7+
- `plugins` — enable the MeshCentral plugin system. Adds a **Plugins** tab under **My Server** where administrators can install, update and remove plugins. Installed plugins are stored under `/data/meshcentral-data/plugins` and persist across restarts, updates and backups. Disabled by default.
8+
39
## \[0.2.12\] - 2026-07-07
410

511
### Added

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ All settings are in the add-on **Configuration** tab. No JSON files to edit. The
153153
| `allow_high_quality_desktop` | `true` | Allow users to set remote desktop quality above 60%. Set to `false` to cap quality and reduce bandwidth |
154154
| `self_update` | `false` | Let MeshCentral automatically update itself after midnight |
155155
| `maintenance_mode` | `false` | When enabled, only administrators can log in |
156+
| `plugins` | `false` | Enable the plugin system — adds a Plugins tab under My Server for installing and managing plugins |
156157

157158
### Backup
158159

meshcentral/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## \[0.2.13\] - 2026-07-09
4+
5+
### Added
6+
7+
- `plugins` — enable the MeshCentral plugin system. Adds a **Plugins** tab under **My Server** where administrators can install, update and remove plugins. Installed plugins are stored under `/data/meshcentral-data/plugins` and persist across restarts, updates and backups. Disabled by default.
8+
39
## \[0.2.12\] - 2026-07-07
410

511
### Added

meshcentral/DOCS.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,13 @@ Allow MeshCentral to update itself. Not recommended — the add-on controls the
189189

190190
Block all user logins while keeping agents connected. Useful during configuration changes.
191191

192+
#### `plugins`
193+
**Default:** `false`
194+
195+
Enable the MeshCentral plugin system. When enabled, a **Plugins** tab appears under **My Server** where administrators can install, update and remove plugins from the [plugin registry](https://github.com/Ylianst/MeshCentral/blob/master/docs/docs/meshcentral/plugins.md) or from a plugin's `config.json` URL.
196+
197+
Installed plugins are stored under `/data/meshcentral-data/plugins`, so they persist across add-on restarts, updates and Home Assistant backups.
198+
192199
#### `auto_remove_inactive_devices`
193200
**Default:** `0` _(disabled)_
194201

meshcentral/config.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "MeshCentral",
3-
"version": "0.2.12",
3+
"version": "0.2.13",
44
"slug": "meshcentral",
55
"description": "Self-hosted remote device management — monitor and control your PCs from Home Assistant",
66
"url": "https://github.com/andlo/ha-meshcentral-addon",
@@ -42,6 +42,7 @@
4242
"auto_remove_inactive_devices": 0,
4343
"guest_device_sharing": true,
4444
"allow_framing": false,
45+
"plugins": false,
4546
"user_allowed_ip": "",
4647
"user_blocked_ip": "",
4748
"agent_allowed_ip": "",
@@ -83,6 +84,7 @@
8384
"auto_remove_inactive_devices": "int",
8485
"guest_device_sharing": "bool",
8586
"allow_framing": "bool",
87+
"plugins": "bool",
8688
"user_allowed_ip": "str?",
8789
"user_blocked_ip": "str?",
8890
"agent_allowed_ip": "str?",

meshcentral/run.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ NO_2FA=$(bashio::config 'no_2fa')
1616
SITE_STYLE=$(bashio::config 'site_style')
1717
GUEST_SHARING=$(bashio::config 'guest_device_sharing')
1818
ALLOW_FRAMING=$(bashio::config 'allow_framing')
19+
PLUGINS=$(bashio::config 'plugins')
1920
LOGIN_COUNT=$(bashio::config 'max_invalid_login_count')
2021
LOGIN_TIME=$(bashio::config 'max_invalid_login_time')
2122
AUTO_REMOVE=$(bashio::config 'auto_remove_inactive_devices')
@@ -115,6 +116,13 @@ if [ "$NO_2FA" = "true" ]; then
115116
SETTINGS=$(echo "$SETTINGS" | jq '. + {no2FactorAuth: true}')
116117
fi
117118

119+
# Plugins — adds the Plugins tab under My Server where plugins are installed and managed.
120+
# Installed plugins live under the datapath and survive add-on restarts and updates.
121+
if [ "$PLUGINS" = "true" ]; then
122+
SETTINGS=$(echo "$SETTINGS" | jq '. + {plugins: {enabled: true}}')
123+
bashio::log.info "Plugins enabled (plugins.enabled: true)"
124+
fi
125+
118126
# Invalid login rate limiting
119127
SETTINGS=$(echo "$SETTINGS" | jq \
120128
--argjson cnt "$LOGIN_COUNT" \

meshcentral/translations/en.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,14 @@ configuration:
138138
Disabled by default to prevent clickjacking. Only enable if you need to embed MeshCentral
139139
in another dashboard.
140140
141+
plugins:
142+
name: Enable plugins
143+
description: >-
144+
Enable the MeshCentral plugin system. Adds a Plugins tab under My Server where
145+
administrators can install, update and remove plugins (e.g. event log, routing).
146+
Installed plugins are stored in the add-on data folder and survive restarts and updates.
147+
Disabled by default.
148+
141149
user_allowed_ip:
142150
name: Allowed user IPs
143151
description: >-

0 commit comments

Comments
 (0)