{"id":31618040,"url":"https://github.com/sudharsanmaran/media-server","last_synced_at":"2026-04-18T12:03:43.732Z","repository":{"id":317579346,"uuid":"1067974702","full_name":"sudharsanmaran/media-server","owner":"sudharsanmaran","description":"🎬 Automated media server with Jellyfin, Radarr, Sonarr, and AllDebrid integration","archived":false,"fork":false,"pushed_at":"2025-10-05T08:46:41.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-10T05:36:41.580Z","etag":null,"topics":["alldebrid","docker","docker-compose","jellyfin","media-server","radarr","self-hosted","sonarr"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sudharsanmaran.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-01T16:59:35.000Z","updated_at":"2025-10-05T08:46:43.000Z","dependencies_parsed_at":"2025-10-01T20:35:26.726Z","dependency_job_id":"24f225c3-cf56-485e-825e-3e8dd4aefe2f","html_url":"https://github.com/sudharsanmaran/media-server","commit_stats":null,"previous_names":["sudharsanmaran/media-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sudharsanmaran/media-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudharsanmaran%2Fmedia-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudharsanmaran%2Fmedia-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudharsanmaran%2Fmedia-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudharsanmaran%2Fmedia-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sudharsanmaran","download_url":"https://codeload.github.com/sudharsanmaran/media-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sudharsanmaran%2Fmedia-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31967993,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alldebrid","docker","docker-compose","jellyfin","media-server","radarr","self-hosted","sonarr"],"created_at":"2025-10-06T13:45:09.402Z","updated_at":"2026-04-18T12:03:43.698Z","avatar_url":"https://github.com/sudharsanmaran.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎬 Automated Media Server Stack\n\nA complete, production-ready media server setup that automatically downloads and organizes your movies and TV shows using AllDebrid, with a beautiful streaming interface powered by Jellyfin.\n\n## 🚀 What This Does\n\nThis repository sets up a fully automated media server that:\n1. **Automatically finds** movies and TV shows you want to watch\n2. **Downloads them** using your AllDebrid account (no torrenting on your connection)\n3. **Organizes them** into a clean library structure\n4. **Streams them** to any device through a Netflix-like interface\n5. **Tracks what you watch** with analytics and recommendations\n\n## 📦 What's Included\n\n| Service | Purpose | Port | Auto-Login |\n|---------|---------|------|------------|\n| **Jellyfin** | Stream your media with a Netflix-like interface | 8096 | ❌ |\n| **RDTClient** | Downloads from AllDebrid to your server | 6500 | ✅ |\n| **Radarr** | Automatically manages movies | 7878 | ✅ |\n| **Sonarr** | Automatically manages TV shows | 8989 | ✅ |\n| **Prowlarr** | Finds torrents across multiple sites | 9696 | ✅ |\n| **Jellyseerr** | Request movies/shows with a nice UI | 5055 | ❌ |\n| **Jellystat** | Track watching statistics | 3000 | ❌ |\n\n## 🔄 How It Works\n\n```mermaid\ngraph LR\n    A[You request a movie] --\u003e B[Radarr/Sonarr searches]\n    B --\u003e C[Prowlarr finds torrent]\n    C --\u003e D[RDTClient sends to AllDebrid]\n    D --\u003e E[AllDebrid downloads]\n    E --\u003e F[RDTClient fetches file]\n    F --\u003e G[Organized in media folder]\n    G --\u003e H[Jellyfin streams to you]\n```\n\n1. **Request**: You add a movie/show to your watchlist\n2. **Search**: Radarr/Sonarr automatically searches for it\n3. **Download**: RDTClient uses AllDebrid to download (not using your IP)\n4. **Organize**: Files are renamed and organized properly\n5. **Stream**: Watch on any device through Jellyfin\n\n## ✅ Prerequisites\n\n- **Docker Desktop** installed (works on Windows, Mac, Linux)\n- **AllDebrid account** with active subscription\n- **Storage space**: At least 100GB free (more is better)\n- **RAM**: 4GB minimum, 8GB recommended\n- **Internet**: Stable connection for streaming\n\n## 🚀 Quick Start (10 minutes)\n\n### 1️⃣ Clone \u0026 Navigate\n```bash\ngit clone https://github.com/yourusername/media-server.git\ncd media-server\n```\n\n### 2️⃣ Configure Environment\nCopy the example environment file:\n```bash\ncp .env.example .env\n```\n\nEdit `.env` and add your AllDebrid API key:\n```env\n# REQUIRED: Your AllDebrid API key\nALLDEBRID_API_KEY=your_actual_api_key_here\n\n# Optional: Change default admin credentials\nADMIN_USERNAME=admin\nADMIN_PASSWORD=admin123\n```\n\n### 3️⃣ Create Folder Structure\n```bash\n# Run this command to create all required folders\nmkdir -p data/{downloads,media/{movies,tv}} \\\n         config jellyseerr \\\n         jellystat/{postgres,backup-data} \\\n         rdtclient/config \\\n         prowlarr radarr sonarr\n```\n\n### 4️⃣ Start Everything\n```bash\ndocker-compose up -d\n```\n\n### 5️⃣ Access Your Services\nWait 2-3 minutes for services to initialize, then:\n- **Jellyfin**: http://localhost:8096 (create admin account)\n- **RDTClient**: http://localhost:6500 (login: admin/admin123)\n- **Radarr**: http://localhost:7878 (no login needed)\n- **Sonarr**: http://localhost:8989 (no login needed)\n\n## 📁 Folder Structure\n\n```\nmedia_server/\n├── 📄 docker-compose.yml    # Main configuration\n├── 📄 .env                  # Your API keys and settings\n├── 📄 .env.example          # Template for .env\n├── 📁 data/\n│   ├── 📁 downloads/        # Temporary downloads from AllDebrid\n│   └── 📁 media/\n│       ├── 📁 movies/       # Your movie library\n│       └── 📁 tv/           # Your TV show library\n├── 📁 config/               # Jellyfin configuration\n├── 📁 rdtclient/            # RDTClient database\n├── 📁 radarr/               # Radarr configuration\n├── 📁 sonarr/               # Sonarr configuration\n├── 📁 prowlarr/             # Prowlarr configuration\n├── 📁 jellyseerr/           # Jellyseerr configuration\n└── 📁 jellystat/            # Statistics database\n```\n\n## ⚙️ Initial Configuration\n\n### Step 1: Configure RDTClient with AllDebrid\n1. Open http://localhost:6500\n2. Login with `admin` / `admin123`\n3. Go to Settings → Providers\n4. Select **AllDebrid** and enter your API key\n5. Set download path to `/data/downloads`\n6. Save settings\n\n### Step 2: Set Up Jellyfin\n1. Open http://localhost:8096\n2. Create admin account\n3. Add media libraries:\n   - Movies: `/data/media/movies`\n   - TV Shows: `/data/media/tv`\n4. Complete setup wizard\n\n### Step 3: Connect Everything\n1. **Prowlarr** (http://localhost:9696):\n   - Add indexers (1337x, RARBG, etc.)\n   - Add Radarr/Sonarr as apps\n   \n2. **Radarr** (http://localhost:7878):\n   - Settings → Download Clients → Add RDTClient\n   - Host: `rdtclient`, Port: `6500`\n   \n3. **Sonarr** (http://localhost:8989):\n   - Same as Radarr setup\n\n## 🎯 Features\n\n### ✨ Automated Everything\n- **Auto-search**: Finds the best quality version available\n- **Auto-download**: Uses AllDebrid (protects your privacy)\n- **Auto-organize**: Renames files properly (Movie.Name.2024.1080p.mkv)\n- **Auto-upgrade**: Replaces files when better quality is found\n- **Auto-subtitle**: Downloads subtitles automatically\n\n### 🔒 Privacy \u0026 Security\n- **No direct torrenting**: AllDebrid handles all torrent traffic\n- **Local authentication**: No login needed for local network\n- **Isolated services**: Each service runs in its own container\n- **Your data stays local**: Nothing leaves your server\n\n### 📱 Multi-Device Support\n- **Web browser**: Watch from any computer\n- **Mobile apps**: Jellyfin apps for iOS/Android\n- **TV apps**: Roku, Android TV, Apple TV, Fire TV\n- **Chromecast**: Cast to any TV\n- **DLNA**: Works with smart TVs\n\n## 🔧 Common Tasks\n\n### Adding a Movie/Show\n1. **Via Jellyseerr**: Search and request (user-friendly)\n2. **Via Radarr/Sonarr**: Add directly (more control)\n3. **Via Prowlarr**: Manual search and send to clients\n\n### Backup Your Setup\n```bash\n# Backup all configurations (not media files)\ntar -czf backup-$(date +%Y%m%d).tar.gz \\\n    .env compose.yml \\\n    config/ jellyseerr/ jellystat/ \\\n    prowlarr/ radarr/ rdtclient/ sonarr/\n```\n\n### Update All Services\n```bash\ndocker-compose pull\ndocker-compose up -d\n```\n\n### View Logs\n```bash\n# All services\ndocker-compose logs -f\n\n# Specific service\ndocker-compose logs -f radarr\n```\n\n## ❓ Troubleshooting\n\n| Problem | Solution |\n|---------|----------|\n| **Port already in use** | Change port in `compose.yml` or stop conflicting service |\n| **Can't access web UI** | Check firewall, ensure Docker is running |\n| **RDTClient not downloading** | Verify AllDebrid API key and account status |\n| **Media not showing in Jellyfin** | Scan library manually, check file permissions |\n| **Out of space** | Clean `/data/downloads/`, increase Docker disk space |\n| **Slow streaming** | Check internet speed, reduce quality in Jellyfin |\n\n## 🔐 Security Best Practices\n\n1. **Change default passwords** in `.env` file\n2. **Use HTTPS** with reverse proxy (Traefik/Caddy) for external access\n3. **Firewall rules**: Only expose Jellyfin (8096) to the internet\n4. **Regular updates**: Run `docker-compose pull` weekly\n5. **Backup regularly**: Automate with cron job\n\n## 💰 Cost Breakdown\n\n- **AllDebrid**: ~€3/month (required)\n- **Server/VPS**: €0 (your computer) or €5-20/month (cloud)\n- **Domain**: €10/year (optional, for remote access)\n- **Total**: ~€3-25/month for unlimited media\n\n## 🚫 Legal Disclaimer\n\nThis software is for educational purposes. You are responsible for:\n- Complying with your local laws\n- Respecting copyright and content ownership\n- Using legitimately obtained content only\n- Your AllDebrid account usage\n\n## 📚 Documentation\n\n- [Full AllDebrid Setup Guide](./ALLDEBRID_SETUP.md)\n- [WebDAV Configuration](./WEBDAV_SETUP.md)\n- [Service Documentation](#):\n  - [Jellyfin Docs](https://jellyfin.org/docs/)\n  - [Radarr Wiki](https://wiki.servarr.com/radarr)\n  - [Sonarr Wiki](https://wiki.servarr.com/sonarr)\n  - [RDTClient GitHub](https://github.com/rogerfar/rdt-client)\n\n## 🤝 Contributing\n\nContributions are welcome! Please:\n1. Fork the repository\n2. Create your feature branch\n3. Commit your changes\n4. Push to the branch\n5. Open a Pull Request\n\n## 📄 License\n\nMIT License - See [LICENSE](LICENSE) file for details\n\n## ⭐ Support\n\nIf this project helped you, please consider:\n- Giving it a ⭐ on GitHub\n- Sharing it with friends\n- Contributing improvements\n\n---\n\n**Made with ❤️ for the self-hosting community**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudharsanmaran%2Fmedia-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsudharsanmaran%2Fmedia-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsudharsanmaran%2Fmedia-server/lists"}