📁 Self-hosted, secure, and fully automated streaming system ⚙️ Powered by: Sonarr + Radarr + Prowlarr + Transmission + Jellyfin + Uptime Kuma 🔐 Privacy-first via Tailscale VPN 🏡 Dashboard with Homepage to monitor all Services
| Tool | Role |
|---|---|
| 🧠 Jellyfin | Media server — organize & stream content |
| 📺 Sonarr | Auto-download & manage TV shows |
| 🎬 Radarr | Auto-download & manage Movies |
| 🔍 Prowlarr | Unified indexer manager for Sonarr & Radarr |
| ⬇️ Transmission | Torrent client for actual downloads |
| 🔒 Tailscale | Secure remote access without open ports |
| 📊 Uptime Kuma | Service health monitoring and alerting |
| 🏡 Homepage | Dashboard for Service Management and Monitoring |
| ⏰ Cron | Automates Maintenance & Activity Scripts on a Schedule |
/Users/rajin/Media/
├── Downloads/
│ ├── Incomplete/ # Used by Transmission (in-progress)
│ └── Completed/ # Final download location for Sonarr/Radarr import
├── TV Shows/ # Final destination for shows (Sonarr)
├── Movies/ # Final destination for movies (Radarr)
- Add a TV show (Sonarr) or movie (Radarr)
- Prowlarr searches public indexers
- Sends magnet/torrent to Transmission
- Transmission downloads to
/Downloads/Incomplete, then moves toCompleted - Sonarr/Radarr detect the finished download, rename + organize it into the correct folder
- Jellyfin scans the folders and displays new content
- Uptime Kuma continuously monitors all service endpoints and alerts via email if anything goes down
- Homepage dashboard shows real-time status and control for all services (remember to start the shell script for homepage as it builds from source)
- Cron Jobs run in the background to automate routine tasks like cleaning up old downloads, or other changes to push to your remote repos on GitHub.
- Tailscale is used to access everything securely across devices
- No port forwarding or public exposure required
- Remote streaming via Swiftfin (iOS Jellyfin app) is fully supported
- Uptime Kuma can be accessed remotely through Tailscale as well at
http://100.x.x.x:3001
- Downloads to:
/Users/rajin/Media/Downloads/Incomplete - Moves completed files to:
/Users/rajin/Media/Downloads/Completed
All public and login-free:
| Indexer | Type | Purpose |
|---|---|---|
nyaa.si |
Anime | TV/movies |
TPB |
General | TV, films |
rarbg |
General | High-quality content |
torrentdownloads |
General | Archives, misc |
yts |
Movies | High-quality film releases |
torrentsome |
Korean-focused | K-dramas, films |
torrenttip |
Korean-focused | Alt. Korean sources |
→ Synced with Sonarr & Radarr via Prowlarr Applications tab
Use direct API URLs with apikey in the query string (no headers required):
| Service | Monitor URL Example |
|---|---|
| Sonarr | http://localhost:8989/api/v3/system/status?apikey=YOUR_SONARR_API_KEY |
| Radarr | http://localhost:7878/api/v3/system/status?apikey=YOUR_RADARR_API_KEY |
| Prowlarr | http://localhost:9696/api/v1/system/status?apikey=YOUR_PROWLARR_API_KEY |
| Jellyfin | http://localhost:8096 |
| Transmission | http://localhost:9091 |
| Homepage | http://localhost:3000 |
| App | URL | Port |
|---|---|---|
| Homepage (once started with the script) | http://localhost:3000 |
3000 |
| Jellyfin | http://localhost:8096 |
8096 |
| Sonarr | http://localhost:8989 |
8989 |
| Radarr | http://localhost:7878 |
7878 |
| Prowlarr | http://localhost:9696 |
9696 |
| Transmission | http://localhost:9091 |
9091 |
| Uptime Kuma | http://localhost:3001 |
3001 |
| Service | Username | Password |
|---|---|---|
| Jellyfin | rajinkhan |
__________ |
| Sonarr | rajinkhan |
__________ |
| Radarr | rajinkhan |
__________ |
| Prowlarr | rajinkhan |
__________ |
| Transmission | rajinkhan |
__________ |
| Uptime Kuma | rajinkhan |
__________ |
This setup is configured strictly for personal and legal use. ✅ Ideal for:
- Public domain content
- Self-created media
- Openly licensed content
❌ Avoid copyrighted material unless legally permitted.
- 🧹 Clear
/Downloads/Completedregularly - 🔄 Sync indexers in Prowlarr as needed
- 🔁 Back up configs from
~/Library/Application Support/... - 🎨 Customize Jellyfin UI via custom CSS (e.g., Finimalism theme)
- 📄 Monitor service logs using
./homepage.sh logsfor the dashboard - 📊 Regularly check Uptime Kuma status for early detection of downtime
- 🤖 Automate tasks like cleanup and automatic repo updates with cron jobs (see
CronJobAutomation.md).
- 📄 Bazarr → Auto-download subtitles
- 🧭 Dashy → Dashboard for all services
- ☁️ Nextcloud → Private file syncing and cloud storage
- 🛑 Pi-hole → Network-wide ad blocker