I Cancelled Every Streaming Subscription. This 10-Year-Old i5 Replaced Them All.
The breaking point was a Friday night.
I Cancelled Every Streaming Subscription. This 10-Year-Old i5 Replaced Them All.
The breaking point was a Friday night.
I sat on my couch, remote in hand, scrolling through four different streaming apps. I was looking for one specific movie.
- App 1: “Not available in your region.”
- App 2: “Available for rent (₹150).”
- App 3: “Leaving the platform in 2 days.”
- App 4: “Only available with the ‘Premium 4K’ tier.”
I looked at my bank statement. Between Netflix, Prime, Disney+, and a few others, I was paying nearly ₹2,000 every single month. I was paying a “Streaming Tax” for the privilege of searching for content I couldn’t actually watch.
The “E-Waste” Solution
I walked over to my closet and pulled out a dusty Intel i5–3317U Mini Pc. It was from 2013. It had 4GB of RAM and a battery that lasted exactly twelve minutes. Most people would have dropped it off at an e-waste center years ago.

I saw a high-performance, 24/7 automation beast.
I didn’t need a ₹1,00,000 rack-mounted server. I didn’t need a “Pro” subscription to another cloud service. I just needed a 1TB hard drive, a handful of Docker containers, and a weekend to architect my own “Invisible Netflix.”
🛠️ Step-by-Step: Building Your 1TB Automated Media Empire
Prerequisites
- OS: Ubuntu 20.04+ installed.
- Hardware: Any old PC (I used an i5 with 4GB RAM).
- Docker: Installed and running (
sudo apt install docker-compose). - Domain: A domain managed by Cloudflare (e.g.,
yourdomain.com).
Step 1: Structure Your File System
For the “Arr” stack to work without errors, your folder structure is everything. We use a “Atomic Move” structure to enable Hardlinks.
# Create the root media directory on your 1TB drive
mkdir -p /mnt/1tb_hdd/media/{downloads,movies,tv}
# Create the config directory for Docker
mkdir -p ~/media-stack
cd ~/media-stack
Step 2: The Master Docker-Compose
Create a file named docker-compose.yml. This configuration is optimized for low-RAM systems.
services:
# Search & Indexing
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: prowlarr
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Kolkata
volumes:
- ./config/prowlarr:/config
ports:
- 9696:9696
restart: unless-stopped
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
ports:
- 8191:8191
restart: unless-stopped
# Content Management
radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: radarr
volumes:
- ./config/radarr:/config
- /mnt/1tb_hdd/media:/media
ports:
- 7878:7878
restart: unless-stopped
sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: sonarr
volumes:
- ./config/sonarr:/config
- /mnt/1tb_hdd/media:/media
ports:
- 8989:8989
restart: unless-stopped
# The Player & Requests
jellyfin:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
volumes:
- ./config/jellyfin:/config
- /mnt/1tb_hdd/media/movies:/data/movies
- /mnt/1tb_hdd/media/tv:/data/tv
ports:
- 8096:8096
restart: unless-stopped
jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: jellyseerr
ports:
- 5055:5055
restart: unless-stopped
Run it: docker-compose up -d
Step 3: Connect the Brains (Prowlarr)
- Open
[http://your-ip:9696.](http://your-ip:9696.) - Go to Settings > Indexers. Add FlareSolverr as a proxy using
[http://flaresolverr:8191.](http://flaresolverr:8191.) - Add your favorite trackers (1337x, RuTracker).
- Go to Settings > Apps and add Radarr and Sonarr. Use their API keys found in their respective “Settings > General” tabs.
Step 4: Solving the “Download” Port Conflict
Since we use Filebrowser on 8080, we must shift qBittorrent.
- Open your qBittorrent container settings.
- Change the WebUI port to 8090.
- Crucial: In Radarr/Sonarr, go to Settings > Download Clients and add qBittorrent using port 8090 and the username
admin(password found in your logs).
Step 5: Secure Remote Access (Cloudflare Tunnel)
This is how you request movies from your phone in Bhubaneswar without exposing your IP.
- Install
cloudflaredon your server. - Run
cloudflared tunnel login. - Create a tunnel:
cloudflared tunnel create media-tunnel. - Map your domain in the Cloudflare Dashboard:
request.yourdomain.com->http://localhost:5055(Jellyseerr)watch.yourdomain.com->http://localhost:8096(Jellyfin)
Step 6: Enable the “Digital Bouncer”
To ensure no one else can request movies on your server:
- Go to Cloudflare Zero Trust > Access > Applications.
- Create a “Self-Hosted” application for
request.yourdomain.com. - Set a policy to only allow Your Email.
- Now, you’ll receive an OTP (One-Time Password) via email every time you want to add a movie.

Jellyfin
🏁 The Final Result
Open your browser, go to your new “Request” URL, search for a movie, and hit Request. Within minutes, Radarr will find it, qBittorrent will download it, and it will appear in your Jellyfin library — all while you are away from home.
Self-hosted. Automated. Secure.
메타데이터
- post_id
- e7e7dee77248
- slug
- i-cancelled-every-streaming-subscription-this-10-year-old-i5-replaced-them-all-e7e7dee77248
- url
- https://medium.com/@sidharthkumarsamal/i-cancelled-every-streaming-subscription-this-10-year-old-i5-replaced-them-all-e7e7dee77248
- canonical_url
- https://medium.com/@sidharthkumarsamal/i-cancelled-every-streaming-subscription-this-10-year-old-i5-replaced-them-all-e7e7dee77248
- author_url
- https://medium.com/@sidharthkumarsamal
- status
- ok
- fetched_at
- 2026-08-18 11:45:58