🖕 Cloud Exodus Notice: All No iLLusion services are migrating off cloud platforms to a home-grown, fully encrypted server within 6-12 months. Protected by a 100-character password scattered across 10 sticky notes in different languages. Just eat one note and the whole thing goes dark.
No real names, no tracking, no overlords.

Anonymous Streaming Guide

Build your own private media streaming empire with self-hosted open source solutions

Self-Hosted Media Stack 2025

Modern media automation stack with Jellyfin, Sonarr, Radarr, and Prowlarr provides Netflix-like experience with complete privacy control. Enhanced with AI-powered recommendations and VPN integration for anonymous content acquisition.

Why Self-Hosted Streaming?

Self-hosting gives you complete control over your media library without the restrictions, tracking, or subscription fees of commercial platforms. Own your content, protect your privacy, and access everything from anywhere.

Complete Privacy

No tracking, no data collection

Total Control

Your content, your rules

Cost Effective

One-time setup, lifetime access

Essential Media Stack Components

Jellyfin Media Server

Free and open-source media server for organizing and streaming content

Features and setup will cover:

  • • Installation and initial configuration
  • • Library organization and metadata management
  • • User management and access controls
  • • Remote access and mobile apps
  • • Hardware transcoding optimization

Sonarr (TV Shows)

Automated TV show downloading and management system

Configuration and automation will cover:

  • • Installation and basic configuration
  • • Series monitoring and season management
  • • Quality profiles and release preferences
  • • Integration with download clients
  • • Automated episode organization

Radarr (Movies)

Automated movie downloading and collection management

Setup and optimization will cover:

  • • Installation and initial setup
  • • Movie discovery and wishlist management
  • • Quality profiles and format preferences
  • • Custom formats and scoring
  • • Collection and franchise organization

Infrastructure & Hardware Setup

1Hardware Requirements & Recommendations

Basic Setup (1-2 Users)

  • CPU: Intel i3 or AMD Ryzen 3
  • RAM: 8GB DDR4
  • Storage: 500GB SSD + 2TB HDD
  • Network: Gigabit Ethernet
  • Power: ~50W idle consumption

Recommended (5-10 Users)

  • CPU: Intel i5 or AMD Ryzen 5
  • RAM: 16GB DDR4
  • Storage: 1TB SSD + 8TB HDD
  • GPU: Intel Quick Sync or Nvidia
  • Power: ~100W under load

Enthusiast (10+ Users)

  • CPU: Intel i7/i9 or AMD Ryzen 7/9
  • RAM: 32GB+ DDR4
  • Storage: 2TB NVMe + 20TB HDD array
  • GPU: Dedicated transcoding card
  • Power: ~200W+ under load

Storage Planning:

SSD (Fast Storage):

  • • Operating system and applications
  • • Docker containers and databases
  • • Temporary download processing
  • • Recently accessed media cache

HDD (Bulk Storage):

  • • Media library (movies, TV shows)
  • • Completed downloads archive
  • • System backups and snapshots
  • • Long-term media storage

2Operating System Selection

Recommended: Ubuntu Server 24.04 LTS

  • • Long-term support until 2029
  • • Excellent Docker support
  • • Large community and documentation
  • • Regular security updates
  • • Hardware compatibility

Alternative: Debian 12

  • • Rock-solid stability
  • • Minimal resource usage
  • • Excellent for headless servers
  • • Strong security focus

Screenshot Placeholder:
Ubuntu Server Installation Screen

3Initial Server Configuration

Essential Setup Commands:

# Update system packages
sudo apt update && sudo apt upgrade -y
# Install essential packages
sudo apt install curl wget git htop tree unzip -y
# Configure timezone
sudo timedatectl set-timezone America/New_York
# Set up firewall
sudo ufw enable && sudo ufw default deny incoming
User Management:
  • • Create dedicated user for media services
  • • Configure SSH key authentication
  • • Disable root login via SSH
  • • Set up sudo access properly
Security Hardening:
  • • Change default SSH port
  • • Install fail2ban for intrusion prevention
  • • Configure automatic security updates
  • • Set up log monitoring

4Storage & Network Configuration

Directory Structure Setup:

# Create media directories
sudo mkdir -p /data/media/{movies,tv,music}
sudo mkdir -p /data/downloads/{complete,incomplete}
sudo mkdir -p /data/config
# Set permissions
sudo chown -R $USER:$USER /data
sudo chmod -R 775 /data
Network Configuration:
  • • Configure static IP address
  • • Open required ports (8096, 8989, 7878)
  • • Set up port forwarding if needed
  • • Configure DNS settings
Mount External Drives:
  • • Format drives with ext4 filesystem
  • • Add to /etc/fstab for auto-mounting
  • • Set up RAID arrays if using multiple drives
  • • Configure regular filesystem checks

Docker Container Deployment

1Docker & Docker Compose Installation

Installation Commands:

# Remove old Docker versions
sudo apt-get remove docker docker-engine docker.io containerd runc
# Install Docker from official repository
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Add user to docker group
sudo usermod -aG docker $USER
# Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Verify Installation:
docker --version
docker-compose --version
Test Docker:
sudo docker run hello-world

Should download and run successfully

2Project Directory Setup

Create Directory Structure:

# Create main project directory
mkdir -p /opt/mediaserver
cd /opt/mediaserver
# Create subdirectories
mkdir -p config/{jellyfin,sonarr,radarr,prowlarr,qbittorrent}
mkdir -p downloads/{complete,incomplete}
mkdir -p media/{movies,tv,music}
# Set permissions
sudo chown -R $USER:$USER /opt/mediaserver
chmod -R 755 /opt/mediaserver
Directory Structure:
/opt/mediaserver/
├── docker-compose.yml
├── .env
├── config/
│ ├── jellyfin/
│ ├── sonarr/
│ ├── radarr/
│ ├── prowlarr/
│ └── qbittorrent/
├── downloads/
│ ├── complete/
│ └── incomplete/
└── media/
├── movies/
├── tv/
└── music/

3Environment Variables Configuration

Create .env File:

# Create environment file
nano /opt/mediaserver/.env

Environment Variables:

# User Configuration
PUID=1000
PGID=1000
TZ=America/New_York
# Base Paths
CONFIG_ROOT=/opt/mediaserver/config
DATA_ROOT=/opt/mediaserver
DOWNLOADS_ROOT=/opt/mediaserver/downloads
MEDIA_ROOT=/opt/mediaserver/media
# Network Configuration
DOCKER_NETWORK=mediaserver
# Security (Generate strong passwords)
QBITTORRENT_USER=admin
QBITTORRENT_PASS=strongpassword123

4Complete Docker Compose Configuration

Create docker-compose.yml:

version: "3.8"
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
user: ${PUID}:${PGID}
restart: unless-stopped
ports:
- "8096:8096"
volumes:
- ${CONFIG_ROOT}/jellyfin:/config
- ${MEDIA_ROOT}:/media
environment:
- JELLYFIN_PublishedServerUrl=http://localhost:8096
sonarr:
image: linuxserver/sonarr:latest
container_name: sonarr
restart: unless-stopped
ports:
- "8989:8989"
volumes:
- ${CONFIG_ROOT}/sonarr:/config
- ${MEDIA_ROOT}:/media
- ${DOWNLOADS_ROOT}:/downloads
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
Deploy Stack:
cd /opt/mediaserver
docker-compose up -d
Monitor Services:
docker-compose logs -f
docker-compose ps

Download Client Configuration

1qBittorrent Installation & Basic Setup

Add to Docker Compose:

qbittorrent:
image: linuxserver/qbittorrent:latest
container_name: qbittorrent
restart: unless-stopped
ports:
- "8080:8080"
- "6881:6881"
- "6881:6881/udp"
volumes:
- ${CONFIG_ROOT}/qbittorrent:/config
- ${DOWNLOADS_ROOT}:/downloads
environment:
- PUID=${PUID}
- PGID=${PGID}
- TZ=${TZ}
- WEBUI_PORT=8080
Access qBittorrent:
• URL: http://localhost:8080
• Default user: admin
• Password: check container logs
docker logs qbittorrent
Initial Configuration:
• Change default password
• Set download directories
• Configure connection limits
• Enable Web UI authentication

2Download Categories & Path Management

Set Up Categories in qBittorrent:

Category Setup:
# Categories to create:
movies → /downloads/complete/movies
tv → /downloads/complete/tv
music → /downloads/complete/music
software → /downloads/complete/software
Path Configuration:
Default save path: /downloads/incomplete
Completed path: /downloads/complete
Move completed: Enable
Append category: Enable

Automatic Management:

Torrent Management Mode: Manual
When Category Save Path Changed: Relocate torrent
When Default Save Path Changed: Relocate affected torrents
Watch Folder: /downloads/watch (optional)

3Performance & Security Configuration

Connection Settings:

Listening Port: 6881 (or random)
Use UPnP/NAT-PMP: Disabled
Global Max Connections: 200
Max Connections per Torrent: 50
Max Uploads per Torrent: 4

Speed Limits:

Global Download: 0 (unlimited)
Global Upload: 1000 KB/s (adjust as needed)
Alternative Speed Limits: Enable
Schedule: Weekdays 9 AM - 5 PM
Alt Download: 500 KB/s

Security & Privacy:

Anonymous Mode: Enable
Enable DHT: Disable (for privacy)
Enable PeX: Disable
Enable LSD: Disable
Encryption: Require encryption
Allow Legacy Peers: Disable
Enable IP Filtering: Enable
Filter Path: Use blocklist URL

4VPN Integration & Kill Switch

Network Interface Binding:

# Check available network interfaces
ip route show
# Common VPN interfaces:
tun0 # OpenVPN
wg0 # WireGuard
ppp+ # Some providers
qBittorrent Settings:
Network Interface: Select VPN interface
Bind to Interface: Enable
Use Different Port: Enable
IP Address to Report: Leave empty
Kill Switch Test:
1. Start a download
2. Disconnect VPN
3. Check that downloads stop
4. Reconnect VPN
5. Downloads should resume

⚠️ Important VPN Considerations:

Port Forwarding: Some VPN providers offer port forwarding for better speeds
DNS Leaks: Configure DNS to use VPN's DNS servers
IPv6: Disable IPv6 to prevent leaks if VPN doesn't support it
Auto-Connect: Set VPN to connect on boot
Split Tunneling: Only route torrent traffic through VPN if supported

Indexer & Prowlarr Configuration

Content Discovery Management

Centralized indexer management for finding content across multiple sources

This section will cover:

  • • Prowlarr installation and setup
  • • Public and private indexer configuration
  • • Sync settings with Sonarr and Radarr
  • • Flaresolverr for cloudflare bypass
  • • Indexer testing and troubleshooting

Request Management System

Jellyseerr Request Portal

User-friendly interface for requesting movies and TV shows

This section will cover:

  • • Jellyseerr installation and configuration
  • • User management and request permissions
  • • Integration with Sonarr and Radarr
  • • Request approval workflows
  • • Notification system setup

VPN Integration & Privacy

Anonymous Download Protection

Securing your media acquisition with VPN containers and kill switches

This section will cover:

  • • Gluetun VPN container setup
  • • Multiple VPN provider configurations
  • • Kill switch and DNS leak protection
  • • Port forwarding for better speeds
  • • Monitoring and health checks

Remote Access & Security

Secure External Access

Setting up secure remote access without compromising privacy

This section will cover:

  • • Reverse proxy configuration with Nginx/Traefik
  • • SSL certificate management with Let's Encrypt
  • • WireGuard VPN for secure remote access
  • • Domain and DNS configuration
  • • Fail2ban and intrusion detection

Mobile Apps & Clients

Multi-Platform Access

Setting up mobile and TV apps for seamless streaming experience

This section will cover:

  • • Jellyfin mobile apps for iOS and Android
  • • Smart TV and streaming device setup
  • • Desktop client configuration
  • • Offline downloading and sync
  • • Chromecast and AirPlay integration

Monitoring & Maintenance

System Health & Updates

Keeping your media server running smoothly with monitoring and automation

This section will cover:

  • • Monitoring with Grafana and Prometheus
  • • Automated backups and disaster recovery
  • • Log management and troubleshooting
  • • Update management and security patches
  • • Performance optimization and scaling

Self-Hosted vs Commercial Streaming

Self-Hosted Advantages

  • No monthly subscription fees
  • Complete content control and ownership
  • No tracking or data collection
  • Unlimited storage and quality

Considerations

  • Initial setup complexity
  • Hardware and electricity costs
  • Maintenance and updates required
  • Technical knowledge needed

Resources & Project Links