Extensions
Extensions are the primary way to extend the functionality of the Panel. They allow you to add backend logic, frontend interfaces, database migrations, and deep system integrations in a structured and controlled way.
For a high-level architectural breakdown of how extensions work within the system, see the Technical Overview section.
Getting Started
If you are new to extensions, start here:
- Installing Extensions - Learn how to install
.c7s.zipextensions in the Panel - Development Environment - Set up a local environment for building extensions
- Extension File Structure - Learn how extensions are structured across frontend, backend, and database layers
Concepts
Extensions are built around several core systems:
- Events - React to system and user actions
- Settings - Define configurable extension options
- Routing - Add custom backend routes
- Permissions - Control access to extension features
- CLI Commands - Extend the Panel command line interface
- Background Tasks and Shutdown Handlers - Run async or lifecycle-based logic
- Update Checks and Extension Calls - Communicate between extensions and system services
- Frontend API Calls - Interact with backend APIs from the UI
- Activity Logging - Record extension-related actions
- Translations - Provide multi-language support
- Mounting UI - Inject UI elements into the Panel interface
Installation Methods
Extensions can be installed in multiple ways depending on your setup:
- Docker-based installation (requires
:heavyor:nightly-heavyimage) - Development environment installation
- Manual
.c7s.zipplacement into the extensions directory
See Installing Extensions for full instructions.
Structure Overview
Extensions follow a standardized multi-part structure consisting of:
- Frontend (React-based UI layer)
- Backend (Rust-based logic layer)
- Database migrations (optional)
This structure defines how extensions are loaded, initialized, and integrated into the Panel.
For a complete breakdown of directories, required files, package naming, and extension entrypoints, see Extension File Structure.