Overview
Plugins are TypeScript/JavaScript modules that:- Hook into server lifecycle events
- Add custom UI components to the panel
- Register API routes
- Execute operations on servers (install mods, configure files, etc.)
- Integrate with external services (Discord, monitoring, backups)
Plugin SDK
The@stellarstack/plugin-sdk provides:
- Base
StellarPluginclass - Type definitions for hooks and events
- APIs for server/file operations
- UI component interfaces
Creating a Plugin
Project Setup
Create a new directory:Plugin Structure
Manifest File
Createstellar-plugin.json:
Plugin Class
Createsrc/index.ts:
Hook System
Available Hooks
Server Lifecycle
| Hook | Triggered When |
|---|---|
server:beforeStart | Before server container starts |
server:afterStart | After server is running |
server:beforeStop | Before server stops |
server:afterStop | After server is stopped |
server:beforeRestart | Before server restarts |
server:afterRestart | After server restarts |
server:beforeInstall | Before installation runs |
server:afterInstall | After installation completes |
server:statusChange | When server status changes |
server:created | When a new server is created |
server:deleted | When a server is deleted |
Console & Output
| Hook | Triggered When |
|---|---|
server:console | When console output is received |
File Operations
| Hook | Triggered When |
|---|---|
server:file:beforeWrite | Before a file is written |
server:file:afterWrite | After a file is written |
server:file:beforeDelete | Before a file is deleted |
server:file:afterDelete | After a file is deleted |
Backups & Schedules
| Hook | Triggered When |
|---|---|
server:backup:beforeCreate | Before backup starts |
server:backup:afterCreate | After backup completes |
server:backup:beforeRestore | Before restore starts |
server:backup:afterRestore | After restore completes |
server:schedule:beforeExecute | Before scheduled task runs |
server:schedule:afterExecute | After scheduled task completes |
User Actions
| Hook | Triggered When |
|---|---|
user:login | When a user logs in |
user:created | When a new user is created |
Hook Context
Every hook receives aHookContext:
Hook Priority
Control execution order:criticalhighnormal(default)low
Plugin API
Server Operations
File Operations
Storage (Key-Value)
Plugins get a private key-value store:HTTP Client
Make external API calls:Logging
Extension Actions
Actions are pre-defined operations that users can trigger from the UI.Example: Install Plugin Action
Instellar-plugin.json:
Operation Types
| Operation | Description |
|---|---|
download-to-server | Download file from URL to server |
write-file | Write content to a file |
delete-file | Delete a file or directory |
send-command | Send console command |
restart-server | Restart the server |
stop-server | Stop the server |
start-server | Start the server |
create-backup | Create a backup |
UI Extensions
Add custom UI to the panel.Server Tabs
Add a tab to the server management page:Dashboard Widgets
Add widgets to the server overview:small (1x1), medium (2x1), large (2x2)
Installing Plugins
Via Panel UI
- Navigate to Admin → Plugins
- Click Install Plugin
- Upload plugin
.zipfile or provide GitHub URL - Click Enable
Manual Installation
Place plugin directory in:Configuration
Plugins can define settings:Example Plugins
Discord Notifications
Auto Restart on Crash
Best Practices
Error Handling
Performance
- Use
storageAPI instead of frequent database queries - Debounce frequent events (e.g., console output)
- Avoid synchronous operations in hooks
Next Steps
Plugin SDK Reference
Full API documentation
Example Plugins
Community plugin repository