Plugin Management
Plugin management is the central place in the admin area where you can enable, disable and inspect detected plugins. Plugins that ship their own settings can be configured there as well.
On this page
Opening Plugin Management
Plugin management is only available to admins. You find it in the FediSuite sidebar under Admin area / Plugins.
Sidebar in FediSuite
In the admin area, a group called Plugin pages appears below the fixed entries when needed. It lists the admin pages that active plugins provide. Pages for all users are shown in a separate group called Plugin sections in the sidebar.
The Plugin List
Plugin management shows every plugin folder containing a plugin.json that FediSuite found in the mounted plugins folder at its last start, including broken ones. Each plugin appears as its own card with the key information at a glance. If the list is empty ("No plugin directories are currently detected"), the Installing Plugins page helps with troubleshooting.
Adds Bluesky as an additional platform with account connection, publishing, imports and stats refreshes.
Version: 1.0.0 · Author: FediSuite OSS
Each plugin card shows at a glance:
Name
The display name of the plugin, for example "Bluesky Provider". It comes from the plugin's language files and follows the language of the interface.
Status badge
Shows the current state: BOOTED, DISABLED or FAILED. More on this further down.
Description
A short explanation of what the plugin does and which features it adds.
Version & author
The plugin's version number and who it comes from.
Enabled / Disabled
The label shows the plugin's configured state. The button next to it triggers the opposite action: "Disable" for an active plugin, "Enable" for a switched-off plugin.
Arrow (▼ / ▲)
Clicking the plugin name with the arrow expands or collapses the detail view.
Enabling and Disabling Plugins
The button on the plugin card switches a plugin on or off. Newly detected plugins are switched off after installation.
Enable a plugin
A switched-off plugin shows an Enable button. One click starts the plugin right away in the running application and shows a confirmation.
Disable a plugin
An active plugin shows a Disable button. Before switching it off, FediSuite asks for confirmation ("Do you really want to disable plugin …?"), then the plugin is stopped without being deleted.
What happens when you enable or disable?
FediSuite loads the plugin's server side and registers its building blocks: pages, widgets, connectors, API routes and hooks. The features are available immediately. If the start fails, the plugin stays disabled, the status changes to FAILED and the error message appears in the details.
No restart needed for the web interface.FediSuite removes everything the plugin registered from the running application. The plugin files on the server and the stored plugin settings are kept. You can enable the plugin again at any time.
No restart needed for the web interface.app container. Every container reads the plugin state stored in the database at startup. After enabling or disabling, therefore also restart the workers (docker compose restart worker1 worker2) so that scheduled posts and statistics updates, for example, take the plugin into account as well. The state itself is kept across restarts.
plugins/ folder on the server are left untouched. To remove a plugin completely, delete its folder on the server and restart the containers, as described on the Installing Plugins page.
The "Refresh" Button
At the top right of the "Plugins" box there is a Refresh button. It fetches the plugin list and the details of the active plugins (menu entries, widgets) from the server again and updates the display. It does not re-read the plugins folder. That only happens when the containers start.
When does "Refresh" make sense?
git pull) or removed a plugin folder, the result only appears after the containers restart (docker compose restart app worker1 worker2). "Refresh" does not replace that restart.
Viewing Plugin Details
You can expand each plugin card by clicking the plugin name with the arrow (▼). The expanded view shows technical details about the plugin. It helps you check which version is loaded, where the plugin is located, which permissions it requests and, if applicable, why it does not start.
Adds Bluesky as an additional platform with account connection, publishing, imports and stats refreshes.
Version: 1.0.0 · Author: FediSuite OSS
1
Compatible
Loaded
No restart required
GPL-3.0-or-later
/app/plugins/fedisuite-plugin-bluesky
./server/index.js
./web/manifest.json
5/2/2026, 12:19:54 AM
5/2/2026, 12:19:54 AM
-
-
Capabilities
providerRequired permissions
Required environment variables
No required environment variables declared.
What do the individual fields mean?
General
Plugin API
The plugin API version the plugin was written for (the pluginApiVersion field in plugin.json). It has to match the version FediSuite expects, currently 1. With a different version, FediSuite rejects the plugin.
Compatibility
"Compatible" means FediSuite accepted the plugin.json. If a plugin is rejected, for example because of a different plugin API version or an unsuitable app version, this shows "Incompatible" with the error message below it. Update the plugin to a matching version in that case.
Runtime state
Shows whether the plugin is currently running in the server process. "Loaded" means active and started. "Inactive" means switched off or failed at startup.
Restart required
Normally this shows "No restart required". "Restart pending" is intended for changes that only take effect after a restart.
License
The software license according to plugin.json. The plugins in the official repository are licensed under GPL-3.0-or-later.
Paths & entry points
Install path
The path of the plugin folder inside the container. It consists of /app/plugins and the name of the plugin folder.
Server entry
The JavaScript file FediSuite loads on the server side at startup, relative to the plugin folder. Usually ./server/index.js.
Web entry
The manifest file for the browser-side plugin pages, relative to the plugin folder. Usually ./web/manifest.json. If the plugin has no web pages of its own, a dash is shown here.
Timestamps and links
Last updated
The time FediSuite last wrote the plugin's entry, that is, when it read the folder after a start or when the status changed. It says nothing about when files in the plugin folder were modified.
Last booted
The time the plugin's server side was last started, at container start or when enabling. For a plugin that is not running, a dash is shown.
Homepage, Repository
Optional links from plugin.json. They open in a new tab. If the manifest does not include them, a dash is shown.
Capabilities & permissions
Capabilities
The plugin's own statement of which kind of extension it provides. "provider", for example, means the plugin adds a new platform such as Bluesky as a connectable source. FediSuite displays them here.
Required permissions
The permissions the plugin declared in its plugin.json. FediSuite only lets a plugin register what it declared a permission for. "providers", for example, allows registering a provider, and "web.runtime" allows embedding its own web pages.
Required environment variables
If a plugin expects certain entries in the .env, it names them in its plugin.json and they are listed here. FediSuite does not check these variables itself. If none are listed, no additional configuration through the .env is needed.
Errors
Error message
If something went wrong while checking or starting the plugin, a red box with the cause appears in the details, for example a missing required field in plugin.json, a mismatching plugin API version or a missing permission.
Plugin Settings
A plugin can describe its own settings in its plugin.json. The Bluesky provider needs none, which is why its card above shows no settings area. For plugins with settings there are two places:
Global values (admin)
In plugin management, at the very bottom of the plugin's expanded details: the "Plugin settings" card with the plugin's fields and a "Save settings" button. These values apply to the whole instance and can only be changed by an admin. For this, the plugin must have declared the permissions settings.global.read and settings.global.write.
Values per user
Under Settings → Preferences, in the "Plugin settings" section. It lists the active plugins that offer per-user settings. For the respective person, they override the global values.
FediSuite checks every entered value against the plugin's rules (required field, number range, allowed choices) and shows errors right at the field. Password fields are not shown in plain text again after saving, the interface only indicates that a value is stored. When a plugin is disabled, its stored settings are kept.
What an Active Plugin Adds
What a plugin adds to the interface depends on what it registers. Only an active, started plugin shows up in these places.
Sidebar under Admin area, in the "Plugin pages" group (admins only).
Sidebar, in the "Plugin sections" group (for all signed-in users).
The "Plugin widgets" card on one of the tabs of the "Analytics" page. The plugin decides which tab.
The "Plugin extensions" card in the composer, with the plugin's fields.
The "Plugin connectors" area under Settings → Connected accounts, for connecting accounts of the additional platform.
On the sign-in page under "Or sign in with a plugin".
The plugin's hints flow into the tips FediSuite generates for an account.
Understanding Status Badges
Every plugin card carries a colored status badge that shows at a glance what state the plugin is in.
The plugin is enabled and started successfully. All features it registered are available.
The plugin was detected and its plugin.json is valid, but it is switched off. This is the state of a freshly installed plugin. You can enable it at any time.
An error occurred while checking or starting the plugin. Possible causes: an invalid plugin.json, an unsuitable plugin API or app version (the compatibility then reads "Incompatible"), a missing permission or an error in the plugin code. The cause is shown in the expanded details. For a folder whose plugin.json cannot be read at all, the card carries the folder name as its name.