[{"data":1,"prerenderedAt":203},["ShallowReactive",2],{"seo-verification":3,"blog-jellyfin-vs-plex-which-self-hosted-media-server-ma-en":6,"promo-bar-likely":202},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-jellyfin-vs-plex-which-self-hosted-media-server-ma-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":140,"ctaBody":141,"ctaButton":142,"ctaUrl":143,"relatedPosts":144},98,"jellyfin-vs-plex-which-self-hosted-media-server",{"fr":12,"en":10,"ar":13,"es":14},"jellyfin-vs-plex","jellyfin-مقابل-plex-أي-خادم-وسائط-مستضاف-ذاتيا","jellyfin-vs-plex-que-servidor-multimedia-autoalojado","Jellyfin vs Plex: Which Self-Hosted Media Server?","Jellyfin vs Plex: complete comparison to choose your self-hosted media server on a VPS — Docker deployment, troubleshooting, and Jellyfin 12 migration.",9,1,false,"2026-03-14T00:00:00+00:00","2026-11-08T01:13:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},5,"Comparison","comparatif","bg-info\u002F10 text-info",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fjellyfin-vs-plex-poster.svg","Streaming subscriptions pile up and you lose control of your media library. Hosting Jellyfin or Plex on a VPS costs a fraction of those subscriptions and makes you the owner of every file. This guide compares both servers on every criterion that matters, walks you through deployment step by step, and covers the most common errors — including migration to Jellyfin 12, released in September 2026, which introduces breaking changes incompatible with earlier versions.",[34,38,49,52,80,83,134,137],{"type":35,"title":36,"body":37},"h2","Why Host Your Media Server on a VPS","A self-hosted media server on a VPS makes you the owner of your catalog: movies, TV shows, music, and photos stay accessible over HTTPS from a browser, a Smart TV, or a smartphone, with no imposed quota and no analysis of your habits.\n\nUnlike a home machine, a VPS has the stable upload bandwidth essential for remote streaming, a fixed IP to set up a domain, and 24\u002F7 availability with no added electricity cost. Your media library no longer depends on your home connection or hardware.\n\nJellyfin is entirely free (GPL license) with no paid features whatsoever; Plex offers a more polished client experience but reserves hardware transcoding for Plex Pass and, since April 29, 2025, remote playback of your personal videos for Plex Pass or Remote Watch Pass. The choice therefore comes down to total freedom versus preconfigured convenience.",{"type":39,"title":40,"items":41},"ul","What You Gain by Hosting It Yourself",[42,43,44,45,46,47,48],"Remote access over HTTPS without going through an external relay or exposing your content to a third party","No limit on accounts, simultaneous streams, or library size","On-the-fly transcoding driven by your own VPS resources (CPU or GPU)","Subtitles, metadata, and cover art fetched automatically and stored on your own server","With Jellyfin: zero paid features, no telemetry, auditable source code","Trivial backup and migration: everything fits in a Docker volume and a media folder","DLNA support (through Jellyfin's official plugin) to stream to TVs and network players without a dedicated client",{"type":35,"title":50,"body":51},"Prerequisites for a VPS Media Server","For direct streaming (remux without re-encoding), a VPS with 2 vCPUs and 2 GB of RAM is enough. As soon as you enable software transcoding of a 1080p stream, count on 4 vCPUs and 4 GB; for several simultaneous 4K streams, aim for 6 to 8 vCPUs. Hardware transcoding (QSV, NVENC) remains rare on shared VPSes: favor files already compatible with your clients to stay in Direct Play.\n\nOn the storage side, plan for a generous volume and ideally a fast disk for metadata. You'll need Docker and Docker Compose installed, a subdomain (e.g. `media.your-domain.com`) pointing to the VPS IP, and a reverse proxy for TLS.",{"type":53,"title":54,"steps":55},"steps","Deploy Jellyfin (or Plex) with Docker and a Reverse Proxy",[56,59,62,65,68,71,74,77],{"title":57,"body":58},"Prepare the Directory Tree and Volumes","On the VPS, create `mkdir -p \u002Fsrv\u002Fjellyfin\u002F{config,cache}` and a media folder `\u002Fsrv\u002Fmedia\u002F{films,series,musique}`. These paths will be mounted as volumes to persist the configuration and cleanly separate content from the database.",{"title":60,"body":61},"Write the docker-compose.yml","Declare the `jellyfin\u002Fjellyfin` service (or `plexinc\u002Fpms-docker`), mount `.\u002Fconfig`, `.\u002Fcache`, and `\u002Fsrv\u002Fmedia` read-only, and expose port `8096` (Jellyfin) or `32400` (Plex) locally only: `127.0.0.1:8096:8096`. The reverse proxy will handle public exposure.",{"title":63,"body":64},"Start the Container","Run `docker compose up -d`, then follow `docker compose logs -f`. Reach the setup wizard through an SSH tunnel `ssh -L 8096:127.0.0.1:8096 user@vps` to create the admin account before any public exposure.",{"title":66,"body":67},"Configure Transcoding","In the Jellyfin interface, under Dashboard → Playback → Transcoding, keep the default transcoding path (`\u002Fcache\u002Ftranscodes` in the official image): these temporary files don't belong in `.\u002Fconfig`, which you back up. If your VPS is CPU-limited, favor **Direct Play** and, in each user's profile (Dashboard → Users), remove the permission to play video that requires transcoding: incompatible files will fail instead of saturating the server. For Plex, the equivalent option, \"Disable video stream transcoding\", is under Settings → Server → Transcoder.",{"title":69,"body":70},"Set Up the Reverse Proxy and SSL","Configure Caddy or Nginx to proxy `media.your-domain.com` to `127.0.0.1:8096`. With Caddy, two lines are enough and the Let's Encrypt certificate is automatic; remember to forward the WebSocket headers for real-time playback. **Note for Jellyfin 12**: the legacy `\u002Femby\u002F` and `\u002Fmediabrowser\u002F` prefixes have been removed — if you configured your reverse proxy on those paths, update it to point to the root `\u002F`.",{"title":72,"body":73},"Secure Access with Jellyfin Authentication","Jellyfin natively handles authentication: enforce long passwords and, in each user's profile (Dashboard → Users), set the maximum number of failed login attempts before lockout. For Plex behind a reverse proxy, declare the public URL under Settings → Server → Network (\"Custom server access URLs\"); remote playback of your videos also requires a Plex Pass on the server admin account, or a Remote Watch Pass on each viewer's account. Never open port `8096` or `32400` directly on the firewall: only ports 80\u002F443 should be accessible.",{"title":75,"body":76},"Index Your Libraries","In the interface, add the `\u002Fmedia\u002Ffilms` and `\u002Fmedia\u002Fseries` folders, choose the metadata agent, and start the scan. Verify that a file plays in Direct Play from an external client to confirm that the proxy and codecs are correct.",{"title":78,"body":79},"Back Up the Configuration","Backing up Jellyfin comes down to two elements: the `.\u002Fconfig` folder (database, plugins, preferences) and your media files. Automate a daily `tar -czf jellyfin-config-$(date +%Y%m%d).tar.gz .\u002Fconfig` and sync to remote storage. For Plex, the `Plex Media Server\u002F` folder is the equivalent. Test the restore procedure on a test environment before you need it.",{"type":35,"title":81,"body":82},"Jellyfin 12: What Changes and How to Migrate","Jellyfin 12.0 was released on September 7, 2026; the branch is now at 12.4, published in October 2026. The jump from 10.11.x to 12 comes from a numbering change: the project dropped the leading \"10.\", and 12.0 is the release that would have been called 10.12.0. It still introduces breaking changes.\n\n**Removal of legacy API prefixes.** The `\u002Femby\u002F` and `\u002Fmediabrowser\u002F` routes have been permanently removed: old third-party clients and scripts that relied on them stop working until they call the routes at the root `\u002F`. Legacy authorization is also disabled by default, including on migrated installs. Check each client application before migrating.\n\n**Irreversible database migration.** Jellyfin 12 stays on SQLite but restructures its database: playlists and collections become relational (new `LinkedChildren` table) and cleanup routines run automatically on first startup. These changes **prevent any rollback without a full restore**. Back up the entire `config\u002F` folder — especially `data\u002Fjellyfin.db` — before pulling the updated container image. Rolling back means restoring that backup together with the previous version's Docker image. After the upgrade, run a full library scan: it is required to restore alternate versions of your media.\n\n**10.11 plugin incompatibility.** The server now targets .NET 10: plugins must be rebuilt for Jellyfin 12. The release notes recommend removing plugins installed from a repository (anything not built-in) before migrating, then reinstalling them from the official stable repository once compatible versions are published.\n\n**Direct migration supported.** Upgrades from 10.10.7 and 10.11.x to 12 are supported — no need to reinstall from scratch or go through an intermediate version; below 10.10.7, upgrade to 10.10.7 first. Then pull the new Docker image, after backing up.",{"type":84,"title":5,"headers":85,"rows":89},"comparison",[86,87,88],"Criterion","Jellyfin","Plex",[90,94,98,102,106,110,114,118,122,126,130],[91,92,93],"License \u002F cost","Free (GPL), 100% free","Freemium, paid Plex Pass for key features",[95,96,97],"Hardware transcoding","Included and free","Reserved for Plex Pass subscribers",[99,100,101],"Remote access","Direct via your reverse proxy","Direct or via the Plex Relay (bandwidth-limited); remote video playback requires Plex Pass or Remote Watch Pass",[103,104,105],"Privacy","No telemetry, everything stays on your server","Centralized Plex account and metadata",[107,108,109],"Client quality (TV, mobile)","Good, steadily improving","Very polished and stable",[111,112,113],"DLNA support","Through the official DLNA plugin (host networking required in Docker)","Present, less configurable",[115,116,117],"Plugins and extensions","Rich community catalog, actively evolving","More closed, built-in features",[119,120,121],"Mobile apps","Free (Android, iOS)","Free, Plex Pass required for downloads",[123,124,125],"Community","Very active, open source, forums and Matrix","Active, official forum, less open",[127,128,129],"Chromecast","Supported via mobile app","Natively supported",[131,132,133],"Initial setup","A few manual settings","Very guided wizard",{"type":35,"title":135,"body":136},"Troubleshooting: The Most Common Errors","**Transcoding that fails silently.** The player shows a generic error or the video won't start. First check: in Dashboard → Logs, filter on `Transcod`. If the log reports FFmpeg as missing or a permission error on the transcoding folder, the container can't find the binary or can't write to that folder (`\u002Fcache\u002Ftranscodes` by default). Verify the volume is mounted with write permissions and that the Docker image is `jellyfin\u002Fjellyfin` (not an unmaintained fork).\n\n**Hardware acceleration failure.** On a VPS without a dedicated GPU, hardware acceleration (VAAPI, QSV, NVENC) is not available: transcoding fails if you enabled a hardware option the server cannot honor. Under Dashboard → Playback → Transcoding, disable hardware acceleration to fall back to software transcoding, or force Direct Play. On a machine with a GPU, the container needs access to it: map the render device (`devices: - \u002Fdev\u002Fdri\u002FrenderD128:\u002Fdev\u002Fdri\u002FrenderD128`, with `group_add` set to the host's `render` group) for VAAPI or QSV, or install the NVIDIA driver and the NVIDIA Container Toolkit on the host for NVENC.\n\n**Remote access blocked behind a reverse proxy (path prefix).** If you serve Jellyfin under a subpath like `your-domain.com\u002Fmedia\u002F`, static resources and the API won't load correctly. A dedicated subdomain (`media.your-domain.com`) avoids these pitfalls; the documentation also notes that a Base URL breaks the DLNA plugin, HDHomeRun, Sonarr and Radarr, among others. If a subpath is unavoidable, fill in the Base URL field under Dashboard → Networking (stored in `network.xml`, restart required) and ensure your reverse proxy forwards the full path without rewriting it.\n\n**Metadata sync that loops.** The library scan runs indefinitely without progressing. Common causes: insufficient permissions on the media folder (Jellyfin must be able to read the files), filenames not conforming to the `Title (Year).mkv` standard, or connectivity issues to remote metadata agents. Check the scheduled task logs in Dashboard → Scheduled Tasks to identify which step is blocking.",{"type":138,"title":5,"body":139},"tip","To avoid saturating your VPS CPU, standardize your library in H.264\u002FAAC inside an MP4 or MKV container. A simple `ffmpeg` remux script (no re-encoding, `-c copy` flag) repackages your files in a few seconds and relieves the server for good, especially on a VPS without a GPU. This operation doesn't touch video quality: it only changes the wrapper, not the content.","Deploy Your Media Server in Minutes","Launch a ServOrbit Cloud VPS with a preconfigured Docker template and run Jellyfin or Plex with a reverse proxy and automatic SSL, without ever leaving your dashboard.","Start My Cloud VPS","\u002Fvps-cloud",[145,165,182],{"id":146,"slug":147,"slugs":148,"title":152,"excerpt":153,"readTime":154,"views":155,"isPinned":19,"noindex":19,"publishedAt":156,"updatedAt":157,"category":158,"categories":159,"featuredImage":29,"bgImage":30,"posterImage":161,"relatedSolution":162},4,"coolify-vs-dokploy-which-tool-to-deploy-on-a-vps",{"fr":149,"en":147,"ar":150,"es":151},"coolify-vs-dokploy","coolify-مقابل-dokploy-أي-أداة-للنشر-على-vps","coolify-vs-dokploy-que-herramienta-elegir-para-su-vps","Coolify vs Dokploy: which tool to deploy on a VPS?","Coolify or Dokploy for your VPS? A binary comparison on idle RAM, license, templates and multi-node support to make the right choice once and for all.",7,3,"2026-06-07T00:00:00+00:00","2026-09-18T02:05:20+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[160],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fcoolify-vs-dokploy-poster.svg",{"categorySlug":163,"appSlug":164},"application-deployment-devops","coolify",{"id":166,"slug":167,"slugs":168,"title":172,"excerpt":173,"readTime":17,"views":155,"isPinned":19,"noindex":19,"publishedAt":174,"updatedAt":21,"category":175,"categories":176,"featuredImage":29,"bgImage":30,"posterImage":178,"relatedSolution":179},93,"n8n-vs-node-red-which-self-hosted-automation-tool-to-choose",{"fr":169,"en":167,"ar":170,"es":171},"n8n-vs-node-red","n8n-مقابل-node-red-أي-أداة-أتمتة-مستضافة-ذاتيا-تختار","n8n-vs-node-red-que-automatizacion-self-hosted-elegir","n8n vs Node-RED: which self-hosted automation tool to choose?","n8n or Node-RED for your VPS workflows? Complete technical comparison: license, server resources, IoT vs SaaS use cases, migration steps, and Docker deployment.","2026-03-19T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[177],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fn8n-vs-node-red-poster.svg",{"categorySlug":180,"appSlug":181},"automation-workflows","n8n",{"id":183,"slug":184,"slugs":185,"title":189,"excerpt":190,"readTime":191,"views":192,"isPinned":19,"noindex":19,"publishedAt":193,"updatedAt":194,"category":195,"categories":196,"featuredImage":29,"bgImage":30,"posterImage":198,"relatedSolution":199},94,"supabase-vs-appwrite-which-self-hosted-backend-for-your-vps",{"fr":186,"en":184,"ar":187,"es":188},"supabase-vs-appwrite","supabase-مقابل-appwrite-أي-خلفية-مستضافة-ذاتيا-لـ-vps","supabase-vs-appwrite-que-backend-self-hosted-para-vps","Supabase vs Appwrite: Choosing Your Open-Source BaaS on a VPS","Full comparison of Supabase vs Appwrite: Docker deployment, RAM requirements, auth, serverless functions, realtime, and a decision guide for your VPS.",14,0,"2026-03-18T00:00:00+00:00","2026-11-08T01:13:16+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[197],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fsupabase-vs-appwrite-poster.svg",{"categorySlug":200,"appSlug":201},"databases","supabase",true,1794270437967]