Complete documentation refactoring with 57 service docs
- Refactored README.md, getting-started.md, quick-reference.md - Enhanced setup-homelab.sh with 9-step automated process - Created services-overview.md with all stacks - Added comprehensive documentation for 57 services in docs/service-docs/ - All services include: overview, configuration, resources, educational content - Coverage: Core, Infrastructure, Dashboards, Media, Media-Extended, Home Assistant, Productivity, Utilities, Monitoring, Development stacks - Educational focus with links to tutorials, videos, and guides
This commit is contained in:
338
docs/service-docs/unmanic.md
Normal file
338
docs/service-docs/unmanic.md
Normal file
@@ -0,0 +1,338 @@
|
||||
# Unmanic - Library Optimization
|
||||
|
||||
## Table of Contents
|
||||
- [Overview](#overview)
|
||||
- [What is Unmanic?](#what-is-unmanic)
|
||||
- [Why Use Unmanic?](#why-use-unmanic)
|
||||
- [How It Works](#how-it-works)
|
||||
- [Configuration in AI-Homelab](#configuration-in-ai-homelab)
|
||||
- [Official Resources](#official-resources)
|
||||
- [Educational Resources](#educational-resources)
|
||||
- [Docker Configuration](#docker-configuration)
|
||||
- [Initial Setup](#initial-setup)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
|
||||
## Overview
|
||||
|
||||
**Category:** Media Optimization
|
||||
**Docker Image:** [josh5/unmanic](https://hub.docker.com/r/josh5/unmanic)
|
||||
**Default Stack:** `media-extended.yml`
|
||||
**Web UI:** `https://unmanic.${DOMAIN}` or `http://SERVER_IP:8888`
|
||||
**Authentication:** Optional
|
||||
**Ports:** 8888
|
||||
|
||||
## What is Unmanic?
|
||||
|
||||
Unmanic is a library optimizer designed to automate file management and transcoding tasks. Unlike Tdarr (which processes entire libraries), Unmanic focuses on continuous optimization - it watches your media library and processes new files as they arrive. It's perfect for maintaining consistent quality and format standards automatically.
|
||||
|
||||
### Key Features
|
||||
- **File Watcher:** Automatic processing of new files
|
||||
- **Plugin System:** Extensible workflows
|
||||
- **Hardware Acceleration:** GPU transcoding support
|
||||
- **Container Conversion:** Automatic remuxing
|
||||
- **Audio/Subtitle Management:** Track manipulation
|
||||
- **Queue Management:** Priority handling
|
||||
- **Statistics Dashboard:** Processing metrics
|
||||
- **Multiple Libraries:** Independent configurations
|
||||
- **Remote Workers:** Distributed processing
|
||||
- **Pause/Resume:** Flexible scheduling
|
||||
|
||||
## Why Use Unmanic?
|
||||
|
||||
1. **Automatic Processing:** New files handled immediately
|
||||
2. **Consistent Quality:** Enforce library standards
|
||||
3. **Space Optimization:** Convert to efficient codecs
|
||||
4. **Format Standardization:** All files same container
|
||||
5. **Hardware Acceleration:** Fast GPU transcoding
|
||||
6. **Plugin Ecosystem:** Pre-built workflows
|
||||
7. **Simple Setup:** Easier than Tdarr for basic tasks
|
||||
8. **Free & Open Source:** No cost
|
||||
9. **Active Development:** Regular updates
|
||||
10. **Docker Ready:** Easy deployment
|
||||
|
||||
## How It Works
|
||||
|
||||
```
|
||||
New File Added to Library
|
||||
↓
|
||||
Unmanic Detects File (File Watcher)
|
||||
↓
|
||||
Applies Configured Plugins
|
||||
↓
|
||||
Queues for Processing
|
||||
↓
|
||||
Worker Processes File
|
||||
↓
|
||||
Output File Created
|
||||
↓
|
||||
Replaces Original
|
||||
↓
|
||||
Library Optimized
|
||||
```
|
||||
|
||||
## Configuration in AI-Homelab
|
||||
|
||||
### Directory Structure
|
||||
|
||||
```
|
||||
/opt/stacks/media-extended/unmanic/config/ # Configuration
|
||||
/mnt/media/movies/ # Movie library
|
||||
/mnt/media/tv/ # TV library
|
||||
/tmp/unmanic/ # Temp files
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
|
||||
```bash
|
||||
# User permissions
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
|
||||
# Timezone
|
||||
TZ=America/New_York
|
||||
```
|
||||
|
||||
## Official Resources
|
||||
|
||||
- **Website:** https://unmanic.app
|
||||
- **Documentation:** https://docs.unmanic.app
|
||||
- **GitHub:** https://github.com/Unmanic/unmanic
|
||||
- **Discord:** https://discord.gg/wpShMzf
|
||||
- **Forum:** https://forum.unmanic.app
|
||||
|
||||
## Educational Resources
|
||||
|
||||
### Videos
|
||||
- [Unmanic Setup Guide](https://www.youtube.com/results?search_query=unmanic+setup)
|
||||
- [Unmanic vs Tdarr](https://www.youtube.com/results?search_query=unmanic+vs+tdarr)
|
||||
|
||||
### Articles & Guides
|
||||
- [Official Docs](https://docs.unmanic.app)
|
||||
- [Plugin Library](https://unmanic.app/plugins)
|
||||
|
||||
### Concepts to Learn
|
||||
- **File Watching:** Real-time monitoring
|
||||
- **Plugin Workflows:** Sequential processing
|
||||
- **Hardware Transcoding:** GPU acceleration
|
||||
- **Container Remuxing:** Format conversion without re-encoding
|
||||
- **Worker Pools:** Parallel processing
|
||||
|
||||
## Docker Configuration
|
||||
|
||||
### Complete Service Definition
|
||||
|
||||
```yaml
|
||||
unmanic:
|
||||
image: josh5/unmanic:latest
|
||||
container_name: unmanic
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- traefik-network
|
||||
ports:
|
||||
- "8888:8888"
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=America/New_York
|
||||
volumes:
|
||||
- /opt/stacks/media-extended/unmanic/config:/config
|
||||
- /mnt/media:/library
|
||||
- /tmp/unmanic:/tmp/unmanic
|
||||
devices:
|
||||
- /dev/dri:/dev/dri # Intel QuickSync
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.unmanic.rule=Host(`unmanic.${DOMAIN}`)"
|
||||
- "traefik.http.routers.unmanic.entrypoints=websecure"
|
||||
- "traefik.http.routers.unmanic.tls.certresolver=letsencrypt"
|
||||
- "traefik.http.routers.unmanic.middlewares=authelia@docker"
|
||||
- "traefik.http.services.unmanic.loadbalancer.server.port=8888"
|
||||
```
|
||||
|
||||
### With NVIDIA GPU
|
||||
|
||||
```yaml
|
||||
unmanic:
|
||||
image: josh5/unmanic:latest
|
||||
container_name: unmanic
|
||||
runtime: nvidia
|
||||
environment:
|
||||
- NVIDIA_VISIBLE_DEVICES=all
|
||||
- NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
|
||||
# ... rest of config
|
||||
```
|
||||
|
||||
## Initial Setup
|
||||
|
||||
### First Access
|
||||
|
||||
1. **Start Container:**
|
||||
```bash
|
||||
docker compose up -d unmanic
|
||||
```
|
||||
|
||||
2. **Access Web UI:**
|
||||
- Local: `http://SERVER_IP:8888`
|
||||
- Domain: `https://unmanic.yourdomain.com`
|
||||
|
||||
3. **Add Library:**
|
||||
- Settings → Libraries → Add Library
|
||||
- Path: `/library/movies`
|
||||
- Enable file watcher
|
||||
|
||||
4. **Install Plugins:**
|
||||
- Plugins → Install desired plugins
|
||||
- Configure plugin settings
|
||||
|
||||
5. **Configure Workers:**
|
||||
- Settings → Workers
|
||||
- Set worker count based on resources
|
||||
|
||||
### Popular Plugins
|
||||
|
||||
**Essential Plugins:**
|
||||
|
||||
1. **Video Encoder H265/HEVC**
|
||||
- Convert to H.265
|
||||
- Space savings
|
||||
|
||||
2. **Normalize Audio Levels**
|
||||
- Consistent volume
|
||||
- Prevents loud/quiet issues
|
||||
|
||||
3. **Remove Subtitle Streams**
|
||||
- Clean unwanted subtitles
|
||||
|
||||
4. **Container Conversion to MKV**
|
||||
- Standardize on MKV
|
||||
|
||||
5. **Video Resolution Limiter**
|
||||
- Downscale 4K to 1080p if needed
|
||||
|
||||
**Install:**
|
||||
- Plugins → Search → Install
|
||||
- Configure in Library settings
|
||||
|
||||
### Library Configuration
|
||||
|
||||
**Settings → Libraries → Select Library:**
|
||||
|
||||
**General:**
|
||||
- Enable file watcher: ✓
|
||||
- Enable inotify: ✓ (real-time)
|
||||
- Scan interval: 30 minutes (backup to file watcher)
|
||||
|
||||
**Plugins:**
|
||||
- Add plugins in desired order
|
||||
- Each plugin processes sequentially
|
||||
|
||||
**Example Flow:**
|
||||
1. Container Conversion to MKV
|
||||
2. Video Encoder H265
|
||||
3. Normalize Audio
|
||||
4. Remove Subtitle Streams
|
||||
|
||||
### Worker Configuration
|
||||
|
||||
**Settings → Workers:**
|
||||
|
||||
**Worker Count:**
|
||||
- 1-2 for GPU encoding
|
||||
- 2-4 for CPU encoding
|
||||
- Don't overload system
|
||||
|
||||
**Worker Settings:**
|
||||
- Enable hardware acceleration
|
||||
- Set temp directory
|
||||
- Configure logging
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Unmanic Not Processing Files
|
||||
|
||||
```bash
|
||||
# Check file watcher
|
||||
# Settings → Libraries → Check "Enable file watcher"
|
||||
|
||||
# Check logs
|
||||
docker logs unmanic | tail -50
|
||||
|
||||
# Manual trigger
|
||||
# Dashboard → Rescan Library
|
||||
|
||||
# Check queue
|
||||
# Dashboard → Should show pending tasks
|
||||
|
||||
# Verify permissions
|
||||
docker exec unmanic ls -la /library/movies/
|
||||
```
|
||||
|
||||
### Transcoding Fails
|
||||
|
||||
```bash
|
||||
# Check worker logs
|
||||
# Dashboard → Workers → View logs
|
||||
|
||||
# Check temp space
|
||||
df -h /tmp/unmanic/
|
||||
|
||||
# Check FFmpeg
|
||||
docker exec unmanic ffmpeg -version
|
||||
|
||||
# Check GPU access
|
||||
docker exec unmanic ls /dev/dri/
|
||||
|
||||
# Common issues:
|
||||
# - Insufficient temp space
|
||||
# - GPU not available
|
||||
# - File format unsupported
|
||||
```
|
||||
|
||||
### High Resource Usage
|
||||
|
||||
```bash
|
||||
# Reduce worker count
|
||||
# Settings → Workers → Decrease count
|
||||
|
||||
# Check active workers
|
||||
docker stats unmanic
|
||||
|
||||
# Pause processing
|
||||
# Dashboard → Pause button
|
||||
|
||||
# Schedule processing
|
||||
# Process during off-hours only
|
||||
```
|
||||
|
||||
## Summary
|
||||
|
||||
Unmanic is the library optimizer offering:
|
||||
- Automatic file processing
|
||||
- Real-time file watching
|
||||
- Plugin-based workflows
|
||||
- Hardware acceleration
|
||||
- Simple setup
|
||||
- Free and open-source
|
||||
|
||||
**Perfect for:**
|
||||
- Continuous optimization
|
||||
- New file processing
|
||||
- Format standardization
|
||||
- Automated workflows
|
||||
- Simple transcoding needs
|
||||
|
||||
**Key Points:**
|
||||
- File watcher for automation
|
||||
- Plugin system for flexibility
|
||||
- Hardware acceleration support
|
||||
- Simpler than Tdarr for basic needs
|
||||
- Real-time processing
|
||||
|
||||
**Remember:**
|
||||
- Use fast temp directory
|
||||
- Monitor disk space
|
||||
- Test plugins before bulk use
|
||||
- Hardware acceleration recommended
|
||||
- Works great with Sonarr/Radarr
|
||||
|
||||
Unmanic keeps your library optimized automatically!
|
||||
Reference in New Issue
Block a user