DSH’s design philosophy is “everything is a plugin.” After installing multiple custom plugins locally, checking status, temporarily disabling a feature, or completely removing a plugin usually requires restarting the service. dsh-plugin-manager solves this problem. It is a Web administration interface plugin that provides a plugin list, enable/disable toggles, and deletion functionality, with hot-swapping support so operations take effect immediately.
What Is It¶
This plugin is maintained by Yolotd. It does not provide business logic itself; instead, it acts as a manager that lets you manage other installed plugins in the “Custom Plugins” module of the DSH Web settings page.
Core Features¶
- Plugin List: Displays plugin names, source badges (self-built / third-party), and Chinese descriptions.
- Hot-Swapping Toggles: Enable or disable with one click; hot-swapping takes effect immediately, without service restarts or crashes.
- Safe Deletion: Deletion requires a second confirmation, after which dependency declarations and runtime entries are removed.
- Automatic Refresh and Self-Protection: The list automatically polls and refreshes after operations; disabling the manager itself requires a second confirmation.
Installation and Activation¶
Run the following command in the Web Profile to install it:
dsh plugin --profile web add git+https://github.com/Yolotd/dsh-plugin-manager.git
After installation is complete, restart the DSH service. You can then find this manager in the “Custom Plugins” module on the Web settings page.
Typical Usage¶
- Enable/Disable: Click the toggle; hot-swapping takes effect immediately (disabling the manager itself is the exception and requires confirmation).
- Delete: Click Delete → Confirm deletion → Dependency declarations and runtime entries are removed.
- Refresh: Manually refetch the list.
How It Works¶
- Host half: Provides
/manager/*HTTP routes and implements hot-swapping through thecreate,update, andremovemethods of the cordis loader. The manifest is responsible for persistence across restarts. - Client half: Registers the official
settings.sectionslot and is integrated into the official settings panel.
Note: Early versions once called
process.exit(42)after operations, which would directly kill DSH services deployed as a single process. This has been replaced by loader hot-swapping, and the process never exits.
Use Cases and Notes¶
This plugin is suitable for DSH users who need to frequently adjust plugin configuration or debug plugins.
Note: This plugin runs with the permissions of the current DSH process. Please review the source code and license before installing it.
Short Ending¶
dsh-plugin-manager makes DSH plugin management more intuitive and easier to control. Source code and catalog links are as follows: