Skip to content

Production-ready Docker stack for automated media management. Includes TV/movie/music/book managers, torrent client, media servers, and unified dashboard. One-command deployment.

Notifications You must be signed in to change notification settings

MihrimatriX/arr-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 Complete Media Automation Stack

A comprehensive Docker-based media automation stack that provides a complete solution for managing, downloading, organizing, and streaming your media collection. This stack combines the power of the *arr ecosystem with media servers and management tools to create a fully automated media center.

🌟 What This Stack Does

This stack automates the entire media lifecycle:

  • Discovery: Find and track movies, TV shows, music, and books
  • Download: Automatically download content based on your preferences
  • Organization: Sort and rename files according to your standards
  • Streaming: Serve media to all your devices
  • Management: Monitor, request, and maintain your collection

πŸ—οΈ Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Discovery     β”‚    β”‚   Download      β”‚    β”‚   Organization  β”‚
β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
β”‚ β€’ Overseerr     │───▢│ β€’ qBittorrent   │───▢│ β€’ *arr Apps     β”‚
β”‚ β€’ Prowlarr      β”‚    β”‚ β€’ Indexers      β”‚    β”‚ β€’ Bazarr        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚                       β”‚                       β”‚
         β–Ό                       β–Ό                       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Streaming     β”‚    β”‚   Management    β”‚    β”‚   Monitoring    β”‚
β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
β”‚ β€’ Jellyfin      β”‚    β”‚ β€’ Homarr        β”‚    β”‚ β€’ Tautulli      β”‚
β”‚ β€’ Plex          β”‚    β”‚ β€’ Portainer     β”‚    β”‚ β€’ Jellystat     β”‚
β”‚ β€’ Navidrome     β”‚    β”‚ β€’ Watchtower    β”‚    β”‚ β€’ Audiobookshelfβ”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Services Included

πŸ“Ί Content Management (*arr Ecosystem)

  • Sonarr - TV show collection manager
  • Radarr - Movie collection manager
  • Lidarr - Music collection manager
  • Readarr - Book and audiobook manager
  • Prowlarr - Indexer manager for all *arr apps
  • Bazarr - Subtitle manager

🎬 Media Servers

πŸ› οΈ Management & Automation

πŸ“Š Monitoring & Analytics

🎯 Key Features

  • πŸ”„ Fully Automated: Set it up once and let it manage your entire media collection
  • 🌐 Multi-Platform: Works on Windows, macOS, and Linux
  • πŸ“± Device Agnostic: Stream to any device with a web browser or app
  • πŸ”’ Self-Hosted: Complete control over your data and privacy
  • ⚑ High Performance: Optimized for speed and efficiency
  • πŸ›‘οΈ Secure: All services run in isolated containers
  • πŸ“ˆ Scalable: Easy to add more storage or services as needed

πŸš€ Quick Start

Prerequisites

  • Docker Desktop with WSL2 backend (Windows) or Docker Engine (Linux/macOS)
  • At least 4GB RAM and 20GB free disk space
  • Basic understanding of Docker and networking

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/arr-stack.git
    cd arr-stack
  2. Create environment file

    cp .env.example .env
    # Edit .env with your preferred settings
  3. Start the stack

    docker compose up -d
  4. Access services

πŸ“ Directory Structure

arr-stack/
β”œβ”€β”€ config/                 # Service configurations
β”‚   β”œβ”€β”€ homarr/            # Dashboard settings
β”‚   β”œβ”€β”€ sonarr/            # TV show manager
β”‚   β”œβ”€β”€ radarr/            # Movie manager
β”‚   β”œβ”€β”€ lidarr/            # Music manager
β”‚   β”œβ”€β”€ readarr/           # Book manager
β”‚   β”œβ”€β”€ prowlarr/          # Indexer manager
β”‚   β”œβ”€β”€ bazarr/            # Subtitle manager
β”‚   β”œβ”€β”€ jellyfin/          # Media server
β”‚   β”œβ”€β”€ plex/              # Alternative media server
β”‚   β”œβ”€β”€ qbittorrent/       # Torrent client
β”‚   β”œβ”€β”€ portainer/         # Container management
β”‚   └── ...
β”œβ”€β”€ downloads/             # Download directory
β”œβ”€β”€ media/                 # Organized media files
β”‚   β”œβ”€β”€ movies/           # Movie collection
β”‚   β”œβ”€β”€ tv/               # TV show collection
β”‚   β”œβ”€β”€ music/            # Music collection
β”‚   β”œβ”€β”€ books/            # Book collection
β”‚   └── audiobooks/       # Audiobook collection
β”œβ”€β”€ docker-compose.yml     # Service definitions
β”œβ”€β”€ .env                   # Environment variables
└── README.md             # This file

βš™οΈ Configuration

Environment Variables

Key variables in .env:

# User and Timezone
PUID=1000
PGID=1000
TZ=Europe/Istanbul

# Service Ports
HOMARR_PORT=7575
SONARR_PORT=8989
RADARR_PORT=7878
LIDARR_PORT=8686
READARR_PORT=8787
PROWLARR_PORT=9696
BAZARR_PORT=6767
QBITTORRENT_WEBUI_PORT=8080
JELLYFIN_HTTP_PORT=8096
PLEX_HTTP_PORT=32400

# Directory Paths
CONFIG_ROOT=./config
MEDIA_MOVIES_DIR=./media/movies
MEDIA_TV_DIR=./media/tv
MEDIA_MUSIC_DIR=./media/music
MEDIA_BOOKS_DIR=./media/books
DOWNLOADS_ROOT=./downloads

# Optional
PLEX_CLAIM=                    # Get from plex.tv/claim
WATCHTOWER_NOTIFICATIONS=      # Discord/Slack webhook URL

Initial Setup Workflow

  1. Configure qBittorrent

    • Change default password
    • Set download categories
    • Configure download paths
  2. Setup Indexers in Prowlarr

    • Add your preferred indexers
    • Configure API keys
    • Sync with *arr applications
  3. *Configure arr Applications

    • Add download clients (qBittorrent)
    • Set root folders for media
    • Configure quality profiles
    • Add indexers from Prowlarr
  4. Setup Media Servers

    • Create libraries pointing to media folders
    • Configure metadata agents
    • Set up user accounts
  5. Configure Dashboard

    • Add service widgets to Homarr
    • Set up API integrations
    • Customize layout and themes

πŸ”§ Advanced Configuration

Custom Quality Profiles

Use Recyclarr to maintain consistent quality profiles across all *arr applications:

# config/recyclarr/config.yml
sonarr:
  instance_name: sonarr
  base_url: http://sonarr:8989
  api_key: your_api_key
  quality_definition:
    type: series
    quality_profiles:
      - name: "HD-1080p"
        upgrade_until_quality: "Bluray-1080p"
        qualities:
          - "HDTV-1080p"
          - "Bluray-1080p"

Automated Updates

Watchtower automatically updates containers. Configure notifications:

WATCHTOWER_NOTIFICATIONS=discord://webhook_url

Backup Strategy

Regular backups of the config/ directory ensure you can restore your setup:

# Create backup
tar -czf arr-stack-backup-$(date +%Y%m%d).tar.gz config/

# Restore backup
tar -xzf arr-stack-backup-20240101.tar.gz

πŸ› οΈ Troubleshooting

Common Issues

Services won't start

  • Check Docker is running
  • Verify port conflicts
  • Check disk space

Downloads not working

  • Verify qBittorrent configuration
  • Check indexer connectivity
  • Review download client settings in *arr apps

Media not appearing

  • Check file permissions
  • Verify folder mappings
  • Review media server library settings

Performance issues

  • Monitor resource usage
  • Adjust quality profiles
  • Consider hardware transcoding

Logs and Debugging

# View all logs
docker compose logs -f

# View specific service logs
docker compose logs -f sonarr

# Check service status
docker compose ps

# Restart specific service
docker compose restart sonarr

πŸ”’ Security Considerations

  • Network Security: Services are exposed on localhost by default
  • Authentication: Set strong passwords for all services
  • Updates: Keep containers updated with Watchtower
  • Backups: Regular backups of configuration data
  • Access Control: Use reverse proxy for external access

πŸ“ˆ Performance Optimization

Hardware Requirements

  • Minimum: 4GB RAM, 2 CPU cores, 100GB storage
  • Recommended: 8GB RAM, 4 CPU cores, 1TB+ storage
  • Optimal: 16GB+ RAM, 8+ CPU cores, SSD storage

Optimization Tips

  • Use SSD storage for better I/O performance
  • Enable hardware transcoding if supported
  • Configure appropriate quality profiles
  • Monitor resource usage and scale accordingly

πŸ™ Acknowledgments

  • LinuxServer.io for excellent Docker images
  • Hotio for additional container images
  • All the developers of the amazing *arr ecosystem
  • The open-source community for continuous improvements

About

Production-ready Docker stack for automated media management. Includes TV/movie/music/book managers, torrent client, media servers, and unified dashboard. One-command deployment.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published