Unmanic
Library optimizer for video file conversion.
Overview
Unmanic is an open-source library optimizer designed to automate video file conversion and transcoding workflows. Developed by Josh Sunnex, Unmanic continuously monitors media libraries and applies configurable conversion rules to optimize video files for storage efficiency, streaming compatibility, or quality standardization. The application features a plugin-based architecture that supports various video encoders, audio processors, and subtitle handlers, making it adaptable to diverse media processing requirements.
This Docker deployment creates a self-contained transcoding environment where Unmanic operates as a background service, automatically discovering and processing media files based on user-defined criteria. The container includes a web-based management interface for configuring conversion profiles, monitoring job queues, and installing additional plugins. The system utilizes temporary storage for processing operations while maintaining organized library structures and preserving original files when configured to do so.
Media enthusiasts, content creators, and system administrators managing large video libraries will find this setup particularly valuable for automating repetitive transcoding tasks. The configuration supports hardware acceleration through GPU passthrough, enabling efficient processing of high-resolution content while reducing CPU load and processing times.
Key Features
- Plugin-based transcoding engine supporting multiple video codecs including H.264, H.265, VP9, and AV1
- Automatic library scanning with configurable file monitoring and detection rules
- Multi-worker processing queue with parallel transcoding job execution
- Hardware acceleration support for Intel Quick Sync, AMD VCE, and NVIDIA NVENC encoders
- Web-based management interface for real-time job monitoring and configuration
- Flexible conversion profiles with customizable quality settings and format targeting
- Post-processing hooks for file organization, notification systems, and metadata handling
- Statistics dashboard tracking processing times, file size reductions, and queue performance
Common Use Cases
- 1Plex and Jellyfin server optimization by converting media files to streaming-friendly formats
- 2Storage space reduction through automated compression of large video libraries
- 3Format standardization for mixed media collections with inconsistent codecs and containers
- 4Automated subtitle extraction and audio track management for multilingual content
- 5Batch processing of recorded TV content with commercial detection and removal plugins
- 6Content preparation for mobile devices requiring specific resolution and bitrate constraints
- 7Archive conversion from legacy formats to modern codecs for long-term preservation
Prerequisites
- Minimum 4GB RAM recommended for processing 1080p content, 8GB+ for 4K transcoding
- Sufficient temporary storage space equal to 2-3x the size of largest video files being processed
- GPU with hardware encoding support if utilizing hardware acceleration features
- Media library accessible via mounted volumes with read/write permissions
- Network connectivity for plugin downloads and optional notification integrations
- Basic understanding of video codecs, containers, and transcoding concepts
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 unmanic: 3 image: josh5/unmanic:latest4 container_name: unmanic5 restart: unless-stopped6 ports: 7 - "8888:8888"8 environment: 9 PUID: 100010 PGID: 100011 volumes: 12 - unmanic_config:/config13 - /path/to/library:/library14 - /tmp/unmanic:/tmp/unmanic1516volumes: 17 unmanic_config: .env Template
.env
1# Configure your library pathUsage Notes
- 1Docs: https://docs.unmanic.app/
- 2Access at http://localhost:8888 - setup wizard on first run
- 3Install plugins: Library > Plugins (video encoder, audio, subtitles)
- 4Library scanning monitors folder for new files automatically
- 5Worker queue processes files with configurable parallel workers
- 6Hardware transcoding: mount /dev/dri for Intel/AMD acceleration
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 unmanic:5 image: josh5/unmanic:latest6 container_name: unmanic7 restart: unless-stopped8 ports:9 - "8888:8888"10 environment:11 PUID: 100012 PGID: 100013 volumes:14 - unmanic_config:/config15 - /path/to/library:/library16 - /tmp/unmanic:/tmp/unmanic1718volumes:19 unmanic_config:20EOF2122# 2. Create the .env file23cat > .env << 'EOF'24# Configure your library path25EOF2627# 3. Start the services28docker compose up -d2930# 4. View logs31docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/unmanic/run | bashTroubleshooting
- FFmpeg not found or codec errors: Verify the container has access to required encoders and install additional codec plugins
- Permission denied accessing library files: Check PUID/PGID values match the host filesystem ownership and verify volume mount permissions
- Hardware acceleration not working: Ensure /dev/dri device is properly mounted and GPU drivers are compatible with container runtime
- Jobs failing with out of memory errors: Increase container memory limits or reduce parallel worker count in settings
- Web interface inaccessible: Verify port 8888 is not blocked by firewall and check container logs for binding errors
- Processing stuck or extremely slow: Monitor temp directory disk space and ensure adequate storage for temporary transcoding files
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download