Plugins and WebApps are available in the AppStore when they have been published to npm repository with the one or more of the following keywords in the package.json file:
signalk-node-server-pluginsignalk-webappAdditionally you can have your plugin appear within one or more AppStore categories by also adding the following keyword(s):
signalk-category-chart-plotterssignalk-category-nmea-2000signalk-category-nmea-0183signalk-category-instrumentssignalk-category-hardwaresignalk-category-aissignalk-category-notificationssignalk-category-digital-switchingsignalk-category-utilitysignalk-category-cloudsignalk-category-weathersignalk-category-deprecatedTo have your plugin start automatically after being installed, without requiring any configuration via the Plugin Config screen add the following key to the package.json file:
"signalk-plugin-enabled-by-default": true
To control the way your WebApp is displayed in the Admin UI add a signalk key with the following attributes:
"signalk": {
"appIcon": "./img/icon-72x72.png", // path to an image file to use as an icon.
"displayName": "My SK App" // name to display in place of the package name.
}
Example: package.json
{
"name": "my-signalk-plugin-app",
"version": "1.0.0",
"description": "My great signalk plugin-app",
"keywords": [
"signalk-node-server-plugin",
"signalk-webapp",
"signalk-category-ais"
],
"signalk-plugin-enabled-by-default": true,
"signalk": {
"appIcon": "./assets/icons/icon-72x72.png",
"displayName": "My Great WebApp"
},
"main": "plugin/index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
The Signal K AppStore installs plugins using npm install --ignore-scripts for security reasons. This means any preinstall, install, or postinstall scripts in your plugin's package.json will not run when users install your plugin through the AppStore.
Ensure your npm package is ready to use without requiring install-time scripts. If you need build steps, use prepublishOnly instead - this runs before publishing to npm, so your package already contains everything it needs.
Once you have developed and tested your Plugin / WebApp you can publish it to make it visible in the AppStore.
To do this, in a terminal session from within the folder containing package.json:
npm publish