- Web UI: - Added secure Authentication system (Login, 2 Roles: Admin/Viewer) - Added System Monitoring Dashboard (Health, Services, Power Mgmt) - Added User Management Interface (Create, Delete, Enable/Disable) - Added Device Mapping view in iSCSI tab (lsscsi output) - Backend: - Implemented secure session management (auth.php) - Added power management APIs (restart/shutdown appliance) - Added device mapping API - CLI: - Created global 'vtl' management tool - Added scripts for reliable startup (vtllibrary fix) - Installer: - Updated install.sh with new dependencies (tgt, sudoers, permissions) - Included all new components in build-installer.sh - Docs: - Consolidated documentation into docs/ folder
mhvtl Configuration Web UI
Web-based configuration manager for mhvtl (Virtual Tape Library).
Features
- 📚 Library configuration
- 💾 Drive management (add/remove/configure)
- 📼 Tape generation settings
- 📤 Export configuration files
- 🎨 Modern UI with Adastra theme
Usage
Local Development
Simply open index.html in your web browser:
cd web-ui
python3 -m http.server 8080
# or
php -S localhost:8080
Then open http://localhost:8080 in your browser.
Deploy to VTL System
Copy the web-ui directory to your VTL system:
scp -r web-ui/ root@vtl-server:/var/www/html/mhvtl-config/
Or include it in the ISO build by adding to the build script.
Configuration Workflow
- Library Tab: Configure library settings (ID, vendor, serial, etc.)
- Drives Tab: Add/remove drives and configure each drive
- Tapes Tab: Set tape generation parameters
- Export Tab:
- Generate configuration preview
- Download
device.conffile - Copy mktape command for tape generation
Generated Files
device.conf- Main mhvtl configuration file (goes to/etc/mhvtl/)mktapecommand - Run this to generate virtual tapes
Integration with Build
To include this in the ISO build, add to build/build-iso.sh:
# Copy web UI
mkdir -p "$WORK_DIR/chroot/var/www/html"
cp -r web-ui "$WORK_DIR/chroot/var/www/html/mhvtl-config"
Customization
Edit style.css to customize colors and theme. Current theme matches adastra.id branding.