68 lines
3.3 KiB
Markdown
68 lines
3.3 KiB
Markdown
|
|
[](https://openwebui.com/t/fujie/batch_install_plugins)
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
Batch Install Plugins from GitHub is a new tool for OpenWebUI that enables one-click installation of multiple plugins directly from GitHub repositories. This initial release includes comprehensive features for discovering, filtering, and installing plugins with user confirmation, extensive multi-language support, and robust debugging capabilities for container deployments.
|
||
|
|
|
||
|
|
**[📖 README](https://github.com/Fu-Jie/openwebui-extensions/blob/main/plugins/tools/batch-install-plugins/README.md)**
|
||
|
|
|
||
|
|
## Features
|
||
|
|
|
||
|
|
- **One-Click Installation**: Install all plugins from a repository with a single command
|
||
|
|
- **Smart Plugin Discovery**: Parse Python files to extract metadata and validate plugins automatically
|
||
|
|
- **Multi-Type Support**: Support Pipe, Action, Filter, and Tool plugins in a single operation
|
||
|
|
- **Confirmation Dialog**: Display plugin list before installation for user review and approval
|
||
|
|
- **Selective Installation**: Exclude specific plugins using keyword-based filtering
|
||
|
|
- **Smart Fallback**: Container deployments auto-retry with localhost:8080 if primary connection fails
|
||
|
|
- **Enhanced Debugging**: Rich frontend JavaScript and backend Python logs for troubleshooting
|
||
|
|
- **Extended Timeout**: 120-second confirmation window for thoughtful decision-making
|
||
|
|
- **Async Architecture**: Non-blocking I/O operations for better performance
|
||
|
|
- **Full Internationalization**: Complete support for 11 languages with proper fallback maps
|
||
|
|
- **Auto-Update**: Automatically updates previously installed plugins
|
||
|
|
- **Self-Exclusion**: Automatically excludes the tool itself from batch operations
|
||
|
|
|
||
|
|
## Technical Highlights
|
||
|
|
|
||
|
|
- **httpx Integration**: Modern async HTTP client for reliable, non-blocking requests
|
||
|
|
- **Event Emitter Support**: Proper handling of OpenWebUI event injection with fallbacks
|
||
|
|
- **Timeout Protection**: Wrapped frontend execution with timeout guards to prevent hanging
|
||
|
|
- **Filtered List Consistency**: Uses single source of truth for confirmation and installation
|
||
|
|
- **Error Localization**: All error messages are user-facing and properly localized across languages
|
||
|
|
- **Deployment Resilience**: Intelligent base URL resolution handles domain, localhost, and containerized environments
|
||
|
|
|
||
|
|
## Supported Repositories
|
||
|
|
|
||
|
|
- **Default**: Fu-Jie/openwebui-extensions (strict validation)
|
||
|
|
- **Custom**: Any GitHub repository with Python plugin files
|
||
|
|
|
||
|
|
## Testing
|
||
|
|
|
||
|
|
Comprehensive regression tests included:
|
||
|
|
- Filtered installation list consistency
|
||
|
|
- Missing event emitter handling
|
||
|
|
- Confirmation timeout verification
|
||
|
|
- Full failure scenarios
|
||
|
|
- Localization completeness
|
||
|
|
- Connection error debug logging and smart fallback
|
||
|
|
|
||
|
|
All 6 tests pass successfully.
|
||
|
|
|
||
|
|
## Documentation
|
||
|
|
|
||
|
|
- English README with flow diagrams and usage examples
|
||
|
|
- Chinese README (README_CN.md) with complete translations
|
||
|
|
- Mirrored documentation for official docs site
|
||
|
|
- Plugin index entries in both English and Chinese
|
||
|
|
|
||
|
|
## Compatibility
|
||
|
|
|
||
|
|
- OpenWebUI: 0.2.x - 0.8.x
|
||
|
|
- Python: 3.9+
|
||
|
|
- Dependencies: httpx (async HTTP client), pydantic (type validation)
|
||
|
|
|
||
|
|
## Release Notes
|
||
|
|
|
||
|
|
- This initial v1.0.0 release includes complete plugin infrastructure with smart deployment handling.
|
||
|
|
- The plugin is designed to handle diverse deployment scenarios (domain, localhost, containerized) with minimal configuration.
|
||
|
|
|