mirror of
https://github.com/StuffAnThings/qbit_manage.git
synced 2025-10-07 20:40:28 +08:00
Add new /security/status endpoint to retrieve security status without exposing sensitive data. Update UI to display API key in a modal upon generation and remove direct display for improved security. |
||
---|---|---|
.. | ||
css | ||
img | ||
js | ||
index.html | ||
README.md |
qBit Manage Web UI
Overview
The qBit Manage Web UI provides a modern interface for configuring and managing qBit Manage. It offers real-time editing of YAML configuration files through an intuitive visual interface, eliminating the need for manual file editing.
Project Structure
web-ui/
├── css/ # Stylesheets
│ ├── components/ # Component-specific styles
│ ├── main.css # Global styles
│ ├── responsive.css # Responsive layouts
│ └── themes.css # Theme definitions
├── img/ # Application images and icons
├── js/ # Application logic
│ ├── api.js # Backend communication
│ ├── app.js # Main application
│ ├── components/ # UI components
│ ├── config-schemas/ # Configuration schemas
│ └── utils/ # Helper functions
└── index.html # Application entry point
Key Features
- Visual Configuration Editor: Intuitive forms for editing YAML configurations
- Real-time Validation: Instant feedback on configuration errors
- Undo/Redo History: Track and revert changes with history management
- Theme Support: Light/dark mode with system preference detection
- Responsive Design: Works on desktop and mobile devices
- YAML Preview: Real-time preview of generated configuration
Configuration Sections
The UI organizes configuration into logical sections:
- Commands: Manage script execution workflows
- qBittorrent Connection: Configure qBittorrent API access
- Settings: Application preferences and behavior
- Directory Paths: Define important filesystem locations
- Categories: Torrent category management
- Category Changes: Bulk category modification rules
- Tracker Configuration: Per-tracker settings
- No Hard Links: Category-specific hardlink handling
- Share Limits: Ratio and seeding time rules
- Recycle Bin: Deleted torrent management
- Orphaned Files: Cleanup of unregistered files
- Notifications: Alert configuration
- Logs: View application logs
Technical Architecture
Frontend Components
- ConfigForm.js: Dynamic form generator based on JSON schemas
- CommandPanel.js: Interface for executing management commands
- LogViewer.js: Real-time log display component
- HistoryManager.js: Undo/Redo functionality implementation
API Integration
The UI communicates with the backend through a RESTful API:
sequenceDiagram
participant UI as Web UI
participant API as FastAPI Backend
participant QBM as qBit Manage
UI->>API: HTTP Request (GET/POST)
API->>QBM: Process Configuration
QBM-->>API: YAML Validation
API-->>UI: Response with Status
Key API endpoints:
GET /api/configs
: List available configurationsPUT /api/configs/{filename}
: Update configuration filePOST /api/run-command
: Execute management commandsGET /api/logs
: Stream application logs
Error handling includes:
- JWT authentication
- Automatic retry on network failures
- Websocket support for real-time updates
Usage Notes
- Ensure the qBit Manage backend is running
- Open
index.html
in a modern browser - Select a configuration file from the dropdown
- Navigate sections using the sidebar
- Use the preview button to see generated YAML
- Save changes when complete
Keyboard Shortcuts:
Ctrl+S
: Save current configurationCtrl+R
: Toggle Run Commands modalCtrl+Z
: Undo last changeCtrl+Y
: Redo last changeCtrl+/
: Toggle Help modalCtrl+P
orCmd+P
: Toggle YAML previewEscape
: Close modals/panels