|
1 | 1 | The dynamic plugin system in RHDH enables you to add, remove, enable, and disable plugins without rebuilding the container. This provides incredible flexibility for testing different plugin combinations and developing custom plugins locally. |
2 | 2 |
|
| 3 | +## Managing Plugins from the UI |
| 4 | + |
| 5 | +By default, RHDH Local enables the built-in **Extensions** feature that lets you browse, install, and configure plugins directly from the RHDH web interface, without any need to manually edit YAML files for basic plugin management. |
| 6 | + |
| 7 | +!!! warning "Local Development Only" |
| 8 | + The UI-based plugin management feature is enabled by default with RHDH Local for development and testing purposes. **This functionality is not recommended in production environments.** In production, plugin management should be handled through proper configuration management and deployment pipelines. |
| 9 | + |
| 10 | +### Why a Restart is Required |
| 11 | + |
| 12 | +When you install or uninstall a plugin through the UI, you're changing which code RHDH needs to load. The restart ensures that: |
| 13 | + |
| 14 | +- New plugin code is downloaded and made available |
| 15 | +- The backend services can load the new functionality |
| 16 | +- Configuration changes are properly applied across all services |
| 17 | + |
| 18 | +Without a restart, your changes won't take effect because the running instance is still using the previous set of loaded plugins. |
| 19 | + |
| 20 | +### How to Restart RHDH Local |
| 21 | + |
| 22 | +After making plugin changes through the UI, restart your local instance with these commands: |
| 23 | + |
| 24 | +=== "Podman (Recommended)" |
| 25 | + ```bash |
| 26 | + # Reinstall plugins and restart RHDH |
| 27 | + podman compose run install-dynamic-plugins |
| 28 | + podman compose restart rhdh |
| 29 | + ``` |
| 30 | + |
| 31 | +=== "Docker" |
| 32 | + ```bash |
| 33 | + # Reinstall plugins and restart RHDH |
| 34 | + docker compose run install-dynamic-plugins |
| 35 | + docker compose restart rhdh |
| 36 | + ``` |
| 37 | + |
| 38 | +This process typically may take a few minutes. You can monitor the startup progress in the container logs: |
| 39 | + |
| 40 | +=== "Podman (Recommended)" |
| 41 | + ```bash |
| 42 | + podman compose logs -f rhdh |
| 43 | + ``` |
| 44 | + |
| 45 | +=== "Docker" |
| 46 | + ```bash |
| 47 | + docker compose logs -f rhdh |
| 48 | + ``` |
| 49 | + |
| 50 | +### Example: Installing the TODO Plugin |
| 51 | + |
| 52 | +Let's walk through installing a simple plugin to try out the UI-based management feature. |
| 53 | + |
| 54 | +**[TODO](https://github.com/backstage/community-plugins/tree/main/workspaces/todo)** is a plugin that scans your repository code and displays all TODO, FIXME, and similar comments in one place. It's a great plugin to test with because it requires minimal configuration and provides immediate, practical value. |
| 55 | + |
| 56 | +1. **Open the Extensions page**: Navigate to **Administration** → **Extensions** in the RHDH sidebar |
| 57 | +2. **Find the TODO plugin**: Use the search bar to find "TODO" or browse the available plugins |
| 58 | +3. **Install the plugin**: Click on the TODO plugin and follow the installation prompts. The UI will then warn that a backend restart is required, like so: |
| 59 | +  |
| 60 | +4. **Restart RHDH Local**: Run the restart commands shown above |
| 61 | +5. **Verify the installation**: After restart, navigate to a component entity page and you should see a new "TODO" section in the entity Overview that lists any TODO comments found in the related repository, if any. |
| 62 | + |
| 63 | +To uninstall, simply return to the Extensions page, find the installed plugin, and remove it; then restart again. |
| 64 | + |
3 | 65 | ## Configuration File Location |
4 | 66 |
|
5 | 67 | Plugin configuration is managed through `configs/dynamic-plugins/dynamic-plugins.override.yaml` or `configs/dynamic-plugins/dynamic-plugins.yaml` if the former does not exist. |
@@ -134,26 +196,41 @@ podman compose up -d |
134 | 196 |
|
135 | 197 | # Reinstall plugins without clearing other data |
136 | 198 | podman compose run install-dynamic-plugins |
137 | | -podman compose stop rhdh && podman compose start rhdh |
| 199 | +podman compose restart rhdh |
138 | 200 | ``` |
139 | 201 |
|
140 | 202 | ## Applying Plugin Changes |
141 | 203 |
|
142 | 204 | ### Standard Plugin Changes |
143 | 205 |
|
144 | | -After modifying the plugin configuration: |
| 206 | +After modifying the plugin configuration, for example after configuring plugins using the Extensions in the RHDH UI: |
145 | 207 |
|
146 | | -```bash |
147 | | -# Reinstall plugins and restart RHDH |
148 | | -podman compose run install-dynamic-plugins |
149 | | -podman compose stop rhdh && podman compose start rhdh |
150 | | -``` |
| 208 | +=== "Podman (Recommended)" |
| 209 | + ```bash |
| 210 | + # Reinstall plugins and restart RHDH |
| 211 | + podman compose run install-dynamic-plugins |
| 212 | + podman compose restart rhdh |
| 213 | + ``` |
| 214 | +
|
| 215 | +=== "Docker" |
| 216 | + ```bash |
| 217 | + # Reinstall plugins and restart RHDH |
| 218 | + docker compose run install-dynamic-plugins |
| 219 | + docker compose restart rhdh |
| 220 | + ``` |
151 | 221 |
|
152 | 222 | ### Quick Restart (No Plugin Changes) |
153 | 223 |
|
154 | 224 | For configuration-only changes: |
155 | 225 |
|
156 | | -```bash |
157 | | -# Just restart RHDH (if plugins haven't changed) |
158 | | -podman compose stop rhdh && podman compose start rhdh |
159 | | -``` |
| 226 | +=== "Podman (Recommended)" |
| 227 | + ```bash |
| 228 | + # Just restart RHDH (if plugins haven't changed) |
| 229 | + podman compose restart rhdh |
| 230 | + ``` |
| 231 | + |
| 232 | +=== "Docker" |
| 233 | + ```bash |
| 234 | + # Just restart RHDH (if plugins haven't changed) |
| 235 | + docker compose restart rhdh |
| 236 | + ``` |
0 commit comments