Files
homelab/docker/stacks/media/README.md

4.9 KiB

Media Stack (*arr Suite)

A complete media automation solution that automatically downloads, organizes, and manages your TV shows and movies. This stack combines the popular *arr applications with a torrent client for a fully automated media center.

Services Overview

  • sonarr: TV series management and automation with PostgreSQL backend
  • radarr: Movie management and automation with PostgreSQL backend
  • prowlarr: Indexer manager for torrent and usenet sources
  • qbittorrent: BitTorrent client for downloading media
  • sonarr-db: Dedicated PostgreSQL database for Sonarr
  • radarr-db: Dedicated PostgreSQL database for Radarr

Key Features

  • Automated Downloads: Monitor RSS feeds and automatically download new episodes/movies
  • Quality Management: Configurable quality profiles and upgrade automation
  • Release Profiles: Advanced filtering and scoring of releases
  • Calendar Integration: Track upcoming releases and air dates
  • Metadata Management: Automatic metadata and artwork fetching
  • Notifications: Webhooks and notifications for downloads and imports
  • API Integration: Full REST APIs for external integrations
  • Multi-Profile: Support for different quality and language profiles

Application Details

Sonarr

  • TV Series Management: Monitors TV show RSS feeds and manages series libraries
  • Season Management: Handles season packs and individual episodes
  • Episode Renaming: Automatic file renaming with customizable patterns

Radarr

  • Movie Management: Monitors movie releases and manages movie libraries
  • Collection Support: Handle movie collections and franchises
  • Release Monitoring: Track theatrical, digital, and physical releases

Prowlarr

  • Indexer Management: Central management for all torrent/usenet indexers
  • Sync to Apps: Automatically syncs indexers to Sonarr and Radarr
  • Statistics: Download and indexer performance statistics

qBittorrent

  • Torrent Client: Handles all BitTorrent downloads for the media stack
  • Category Support: Automatic categorization for different media types
  • API Access: HTTP-protected API for *arr application integration

Sonarr

Radarr

Prowlarr

qBittorrent

nzb360

Configuration

Environment Variables

Copy stack.env to stack.env.real and configure:

  • PUID/PGID: User and group IDs for file permissions
  • TZ: Timezone
  • MEDIA_PATH: Root path for media storage
  • SERVICE_DATA_ROOT_PATH: Base path for application data
  • *_SERVICE_DOMAIN: Traefik domains for each service
  • *_BASIC_AUTH: HTTP basic authentication credentials
  • *_DB_*: PostgreSQL database credentials for Sonarr/Radarr

Network Access

  • Sonarr Web UI: Port 8989
  • Radarr Web UI: Port 7878
  • Prowlarr Web UI: Port 9696
  • qBittorrent Web UI: Port 8114 (also accessible via Traefik with authentication)

API Access

API endpoints are exposed through Traefik with HTTP basic authentication for secure external access. These APIs are configured for integration with nzb360, a mobile app for managing *arr applications and download clients remotely.

Media Organization

Directory Structure

/media/
├── downloads/          # qBittorrent download directory
├── tv/                 # TV shows library (Sonarr)
├── movies/             # Movies library (Radarr)
└── ...                 # Additional media directories

File Permissions

All services run with consistent PUID/PGID to ensure proper file access across the media path.

Database Backend

Both Sonarr and Radarr use dedicated PostgreSQL databases for improved performance and reliability compared to SQLite.

Dependencies

  • External Traefik reverse proxy network for secure API access
  • Shared media storage path accessible by all services
  • Network connectivity between services for API communication