Serverboards is expanded via plugins. These can have many components with each component of a given type. There are many types listed below, which expand serverboards in diferent dimensions. Normally all components in a given plugin have some defined goal, but they can be just support components.
Plugins only require the
manifest.yaml file. Other elements are optional as:
|Active component||Some executable that will communicate via JSON-RPC on stdio.|
|Static data||Some static data that can be accessed by the Web UI, as new screens or icons.|
|Postinst script||A script that checks if the plugin is properly installed and may install required software.|
The plugin components are defined in a YAML file named
|Auth||Allow to add new authentication schemes to Serverboards|
|Command||Runs external executable sthat will communicate via JSON-RPC|
|Service type||Defines new services types|
|Actions||Define actions over services|
|System config||Add new global settings|
|Notification Channel||Define methods to send notifications to users|
|Trigger||Status watchers that trigger an event when the status changes|
|Rule templates||Predefined common rules|
|Screens||Full sections inside serverboards|
|Widgets||Widgets at the dashboard|
|Cron||Periodic action running from the component|
|External URL||Open an external URL related to a service|
|Internationalization||Marks that this plugin has translations available|
The UI may need some static data. It can be placed into a
static subdirectory and
the UI can access it at
At plugin installation Serverboards executes the executable as indicated in the
postinst variable. It may be written in any programming language and does not
communicate with serverboards.
It can print anything to stdout/stderr and this will be collected as plugin installation log.
If exit status is not 0, the plugin will be marked as broken and will not be activated.
This script has the normal envvars as normal plugins, and can write to its local directory for example to install required software there, but it can not install system wide software.