initial comment

This commit is contained in:
2026-01-24 17:43:28 -05:00
commit fe40adfd38
72 changed files with 19614 additions and 0 deletions

509
DASHBOARD-GUIDE.md Normal file
View File

@@ -0,0 +1,509 @@
# Enhanced Dashboard with Configuration UI - Complete Guide
## 🎉 What's New
The dashboard now includes **full configuration management**:
### ✨ New Features
1. **Configuration Editor**
- Edit directory paths (movies, archive, work)
- Adjust parallel processing settings
- Toggle processing options
- Real-time validation
2. **Profile Management**
- Create custom encoding profiles
- Edit existing profiles
- Set default profile
- Delete unused profiles
3. **Enhanced Job Control**
- **Dry Run Mode** - Test without encoding
- Profile selection per job
- Visual status indicators
4. **Three-Tab Interface**
- **Dashboard** - Monitoring and control
- **Configuration** - System settings
- **Profiles** - Encoding presets
## 🚀 Quick Start
```bash
# Start dashboard
docker-compose up -d dashboard
# Access at
http://YOUR-SERVER:5000
```
## 📋 Dashboard Tab (Monitoring & Control)
### Job Control Panel
- **Profile Selector**: Choose encoding profile for this run
- **Dry Run Checkbox**: Enable to scan only (no encoding)
- **Start Button**: Begin processing with selected options
- **Stop Button**: Gracefully stop current jobs
- **Refresh Button**: Manual data refresh
- **Status Badge**: Shows Idle or Processing
### Statistics Cards
- **Pending**: Files waiting to process
- **Processing**: Currently encoding
- **Completed**: Successfully processed
- **Failed**: Encoding errors
- **Skipped**: Files without subtitles
### Progress Overview
- Visual progress bar
- Original vs encoded sizes
- Space saved with percentage
- Average encoding FPS
### System Monitoring
- GPU utilization, memory, temperature
- CPU load average
- Real-time updates every 5 seconds
### Recent Activity
- Last 10 processed files
- Success/failure indicators
- Encoder used and FPS
### Live Logs
- Streaming log output
- Color-coded messages
- Auto-scrolls to latest
## ⚙️ Configuration Tab
### Directory Settings
**Movies Directory**
```
/mnt/user/movies
```
- Source directory containing your movie library
- Must exist and be readable
**Archive Directory**
```
/mnt/user/archive/movies
```
- Where original files are stored after re-encoding
- Will be created if doesn't exist
**Work Directory**
```
/mnt/user/temp/encoderpro-work
```
- Temporary encoding directory
- Should be on fast storage (SSD preferred)
- Needs space for largest movie file
### Parallel Processing Settings
**Max Workers** (1-10)
- Number of concurrent encoding jobs
- Recommended: 1-2 for GPU, 2-4 for CPU
**GPU Slots** (0-5)
- How many jobs can use GPU simultaneously
- Recommended: 1 for single GPU, 2 for high-end GPUs
**CPU Slots** (1-32)
- CPU threads available per job
- Recommended: Half of physical cores
### Processing Options
**✓ Skip files without subtitles**
- Automatically skip files that don't have subtitle streams
- Saves time by not processing unnecessary files
**✓ Cleanup stale work files**
- Remove abandoned work files on startup
- Keeps work directory clean
**✓ Prefer GPU encoders**
- Use GPU encoding when available
- Much faster than CPU
**✓ Fallback to CPU**
- Use CPU encoding if GPU fails
- Ensures processing continues
### Configuration Actions
**✓ Validate**
- Check configuration for errors
- Shows warnings and suggestions
- **Always validate before saving**
**💾 Save**
- Write configuration to file
- Creates backup of existing config
- Takes effect immediately
**🔄 Reload**
- Discard changes and reload from file
- Useful to undo modifications
## 🎯 Profiles Tab
### What are Profiles?
Profiles define encoding settings:
- **Encoder**: Hardware (NVENC, QSV) or software (CPU)
- **Preset**: Speed vs quality trade-off
- **Quality**: CRF/CQ value (lower = better)
- **Audio**: Copy or re-encode
### Built-in Profiles
| Profile | Encoder | Use Case |
|---------|---------|----------|
| balanced_gpu | NVENC H.265 | Best for most users |
| fast_gpu | NVENC H.264 | Quick processing |
| quality_gpu | NVENC H.265 | Archival quality |
| balanced_cpu | CPU H.265 | No GPU available |
### Managing Profiles
**Add Profile**
1. Click " Add" button
2. Enter profile name (e.g., "my_profile")
3. Select encoder type
4. Set preset (p1-p7 for NVENC, ultrafast-veryslow for CPU)
5. Set quality (18-28 recommended)
6. Choose audio codec
7. Click "💾 Save"
**Edit Profile**
1. Click "✏️ Edit" on existing profile
2. Modify settings
3. Click "💾 Save"
**Delete Profile**
1. Click "🗑️ Delete"
2. Confirm deletion
**Set Default Profile**
1. Select profile from "Default Profile" dropdown
2. Click "💾 Save All Profiles"
### Encoder Options
**NVIDIA NVENC**
- `nvidia_nvenc_h265` - H.265 (recommended)
- `nvidia_nvenc_h264` - H.264 (faster, larger)
- Presets: p1 (fastest) to p7 (slowest)
- Quality: 20-25 recommended
**CPU Encoders**
- `cpu_x265` - H.265 (best compression)
- `cpu_x264` - H.264 (faster)
- Presets: ultrafast, fast, medium, slow, veryslow
- Quality: 18-24 recommended
**Intel QSV**
- `intel_qsv_h265` - H.265
- `intel_qsv_h264` - H.264
- Presets: fast, medium, slow
**AMD VAAPI**
- `amd_vaapi_h265` - H.265
- `amd_vaapi_h264` - H.264
## 🎮 Using Dry Run Mode
### What is Dry Run?
Dry run scans your library without encoding:
- Detects subtitle streams
- Updates database
- Shows what would be processed
- **No files are modified**
### When to Use Dry Run
1. **Initial Setup**
- Test configuration before processing
- See how many files need processing
- Verify directory paths
2. **After Adding Movies**
- Scan for new files
- Update database
- Plan processing time
3. **Testing Settings**
- Check if subtitles detected correctly
- Verify file extensions recognized
### How to Use
1. Go to **Dashboard** tab
2. Check **"Dry Run (Scan Only)"**
3. Select profile (optional)
4. Click **"▶ Start"**
5. Watch statistics update
6. Review results in activity log
### After Dry Run
- Check **Pending** count - files that will be processed
- Check **Skipped** count - files without subtitles
- Review **Statistics** to plan processing time
- Uncheck "Dry Run" and run for real
## 🔧 Common Workflows
### First-Time Setup
```
1. Open http://YOUR-SERVER:5000
2. Go to Configuration tab
3. Set directory paths
4. Click "✓ Validate"
5. Fix any errors shown
6. Click "💾 Save"
7. Go to Profiles tab
8. Review default profiles
9. Go to Dashboard tab
10. Enable "Dry Run"
11. Click "▶ Start"
12. Review results
13. Disable "Dry Run"
14. Click "▶ Start" to process
```
### Adding Custom Profile
```
1. Go to Profiles tab
2. Click " Add"
3. Name: "my_quality"
4. Encoder: nvidia_nvenc_h265
5. Preset: p6
6. Quality: 20
7. Audio: copy
8. Click "💾 Save"
9. Set as default if desired
10. Click "💾 Save All Profiles"
```
### Processing with Custom Settings
```
1. Go to Dashboard tab
2. Select profile from dropdown
3. Optionally enable "Dry Run" first
4. Click "▶ Start"
5. Monitor progress in real-time
6. Click "⏹ Stop" if needed
```
### Changing Parallel Workers
```
1. Go to Configuration tab
2. Adjust "Max Workers" (try 1 first)
3. Adjust "GPU Slots" (1 for most GPUs)
4. Click "✓ Validate"
5. Click "💾 Save"
6. Restart dashboard container if needed
```
## 📊 Configuration Examples
### Conservative (Safe for all systems)
```yaml
Max Workers: 1
GPU Slots: 1
CPU Slots: 4
Profile: balanced_gpu
```
### Balanced (Recommended)
```yaml
Max Workers: 2
GPU Slots: 1
CPU Slots: 4
Profile: balanced_gpu
```
### High Throughput (Powerful systems)
```yaml
Max Workers: 3
GPU Slots: 2
CPU Slots: 8
Profile: fast_gpu
```
### CPU Only (No GPU)
```yaml
Max Workers: 2
GPU Slots: 0
CPU Slots: 4
Profile: balanced_cpu
```
## 🔍 Validation Messages
### ✓ Success
```
Configuration is valid!
```
All settings are correct, safe to save.
### ⚠️ Warnings
```
Warning: Movies directory does not exist
Warning: max_workers=5 is very high
```
Not critical but should be reviewed.
### ✗ Errors
```
Error: Missing required field: movies_dir
Error: max_workers must be at least 1
```
Must be fixed before saving.
## 🎨 UI Tips
### Color Coding
- **Green** - Completed, success, active
- **Blue** - Processing, info
- **Yellow** - Pending, warnings
- **Red** - Failed, errors
- **Gray** - Skipped, idle
### Keyboard Shortcuts
- **Ctrl+R** - Refresh page
- **Tab** - Navigate between fields
- **Enter** - Submit forms (in modals)
- **Esc** - Close modals
### Mobile Access
- Dashboard is fully responsive
- Works on tablets and phones
- All features available
- Touch-friendly buttons
## 🐛 Troubleshooting
### Configuration Won't Save
**Check:**
- All required fields filled
- Paths exist or can be created
- No validation errors
- Dashboard has write permissions
### Profiles Not Appearing
**Solution:**
1. Go to Profiles tab
2. Check if profiles list is empty
3. Click "🔄 Reload" in Configuration
4. Profiles may be in config file but not loaded
### Dry Run Doesn't Update Stats
**Wait:**
- Dry run takes time to scan
- Refresh happens every 5 seconds
- Check logs for progress
- May take minutes for large libraries
### GPU Not Available in Profiles
**Check:**
1. Go to browser console (F12)
2. Check for encoder detection errors
3. Verify nvidia-smi works in container
4. May need to restart dashboard
### Changes Not Taking Effect
**Solution:**
1. Save configuration
2. Stop any active processing
3. Restart dashboard container:
```bash
docker-compose restart dashboard
```
## 📱 API Access
The dashboard provides REST API for automation:
### Get Configuration
```bash
curl http://localhost:5000/api/config
```
### Save Configuration
```bash
curl -X POST http://localhost:5000/api/config \
-H "Content-Type: application/json" \
-d @config.json
```
### Start with Dry Run
```bash
curl -X POST http://localhost:5000/api/jobs/start \
-H "Content-Type: application/json" \
-d '{"profile": "balanced_gpu", "dry_run": true}'
```
### Get Profiles
```bash
curl http://localhost:5000/api/profiles
```
### Validate Config
```bash
curl -X POST http://localhost:5000/api/config/validate \
-H "Content-Type: application/json" \
-d @config.json
```
## 🎓 Best Practices
1. **Always validate before saving**
2. **Use dry run for new configurations**
3. **Start with max_workers=1**
4. **Create custom profiles for different quality needs**
5. **Monitor first few files closely**
6. **Keep original config as backup**
7. **Test profile on one file before batch**
8. **Check logs for errors regularly**
## 🚀 Next Steps
1. ✓ Configure directories
2. ✓ Validate configuration
3. ✓ Test with dry run
4. ✓ Create custom profiles if needed
5. ✓ Process a few test files
6. ✓ Review quality and speed
7. ✓ Adjust settings as needed
8. ✓ Set up scheduled processing
9. ✓ Bookmark dashboard URL
10. ✓ Enjoy automated encoding!
## 📚 Summary
You now have a **complete web-based management system** for your media encoding:
- ✅ Real-time monitoring
- ✅ Configuration editor
- ✅ Profile management
- ✅ Dry run mode
- ✅ Job control
- ✅ Live system stats
- ✅ Activity tracking
- ✅ Log streaming
**Access:** `http://YOUR-SERVER:5000`
**No more editing YAML files manually!**