Jump to content

Plugin system documentation

4 posts in this topic Last Reply

Recommended Posts

Is there documentation for the unRAID plugin system?


Unfortunately, the docs on plugin development aren't organized, or in one place.  It is scattered around, and no one person is maintaining it.  Here's what I found:

- How does the plugin system work? Documentation Added  (old, and some parts are obsolete, but provides a basic foundation)

- Plugin Authors: Changes for 6.1 release - discusses compatibility changes

- Important unRAID 6.1 Plugin System Changes - discusses compatibility changes too

- New!  Version 6.3.0-rc9 Release Notes - important plugin changes for 6.3

- Community Applications plugin - the app store for all plugins; read the note at the bottom of first post

- Plugin Templates for CA / Appstore - guidelines for full Community Applications compatibility

- Application Template Categorizer plugin - for plugin or Docker template authors - use it!

- Programming board  (there is a little more info scattered throughout this board for devs)

- Per this post, "study existing code and plugins.  Also look at scripts in /usr/local/sbin.  For example 'emhttp_event' has info on events".

- Most new plugin authors start by taking apart a few selected plugins, and copying the basic structures.

- Note to prospective plugin developers: always ask yourself first, is this something better suited as a Docker container?  Because of better program isolation and fewer dependency issues, developers are strongly encouraged to choose Docker container development over creating another plugin.


Support topics for all plugins are found in the Plugin Support board.

Share this post

Link to post

List of emhttp events


See this file: /usr/local/sbin/emhttp_event

Share this post

Link to post

Plugins dependent upon other plugins.  (Mainly notes for myself so I know what CA is doing)


Plugins at boot time are installed in order of the ASCII sort (not natural) of the filename including the .plg extension


CA when doing multiple previous app installations installs them in order of an ASCII sort excluding the .plg extension.  This handles the special circumstance where UD+ looks for UD to be queued for install at boot prior to installing but it actually winds up installing first at boot time.


If you make a plugin that is dependent upon another plugin being installed and it errors out if the other plugin is not installed, you must ensure that you can handle both very slightly differing sort orders.

Share this post

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.