{"id":134303,"date":"2026-08-03T09:01:36","date_gmt":"2026-08-03T09:01:36","guid":{"rendered":"\/uk\/tutorials\/how-to-set-up-plex-server"},"modified":"2026-08-03T09:01:36","modified_gmt":"2026-08-03T09:01:36","slug":"how-to-set-up-plex-server","status":"publish","type":"post","link":"\/uk\/tutorials\/how-to-set-up-plex-server\/","title":{"rendered":"How to set up a Plex server on a VPS"},"content":{"rendered":"<p class=\"wp-block-paragraph\">To set up a Plex server on a virtual private server (VPS), install Plex Media Server, give it access to your media, connect it to your Plex account, and allow remote playback. This creates an always-on personal streaming library without leaving a computer running at home.<\/p><p class=\"wp-block-paragraph\">Setting up Plex manually on Ubuntu 24.04 gives you control over the installation, media folders, permissions, and firewall rules. A preconfigured Plex template gets you to the setup screen faster because Plex is already installed. You&rsquo;ll still need to upload your media, create libraries, and configure remote access, though.<\/p><p class=\"wp-block-paragraph\">Before you start streaming, check that the VPS has enough storage, monthly data transfer, and processing power for your needs. You&rsquo;ll also organize your files, test playback, secure the server, monitor its resources, and fix common service, permission, storage, and connection failures.<\/p><h2 class=\"wp-block-heading\" id=\"h-what-do-you-need-before-setting-up-a-plex-server\">What do you need before setting up a Plex server?<\/h2><p class=\"wp-block-paragraph\">You need a ready-to-use Ubuntu VPS, Secure Shell (SSH) access, a Plex account, media files, and enough server resources to store and stream them.<\/p><p class=\"wp-block-paragraph\">Start by<a href=\"\/gb\/tutorials\/how-to-set-up-vps\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a href=\"\/gb\/tutorials\/how-to-set-up-vps\" data-wpel-link=\"internal\" rel=\"follow\">setting up your VPS<\/a>. Note the server&rsquo;s public Internet Protocol (IP) address, then sign in via SSH to confirm you can reach the server.<\/p><p class=\"wp-block-paragraph\"><code>ssh username@your_server_ip<\/code><\/p><p class=\"wp-block-paragraph\">Replace <code><strong>username<\/strong><\/code><strong> <\/strong>and <code><strong>your_server_ip<\/strong><\/code> with your own server details.<\/p><p class=\"wp-block-paragraph\">SSH gives you an encrypted command-line connection from your computer to the VPS. You&rsquo;ll use it to install Plex and manage the server. Your account also needs permission to run <code>sudo<\/code> commands, since those commands change system-wide settings.<\/p><p class=\"wp-block-paragraph\">Once you can connect successfully, check that the server meets the remaining requirements:<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td colspan=\"1\" rowspan=\"1\"><p><strong>Requirement<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>What to check<\/strong><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Operating system<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>The server is running 64-bit Ubuntu 24.04<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Random access memory (RAM)<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>At least 4 GB is available &ndash; more if you&rsquo;ll run other software alongside Plex<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Central processing unit (CPU)<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Enough processing power for any video conversion Plex performs<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Storage<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Enough free space for media files, Plex library data, artwork, logs, and temporary files<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Network<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Outbound speed and monthly data transfer cover your expected streams<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Plex account<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>You have an account to connect and manage the server<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Media files<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>You hold the rights to the movies, shows, music, or photos you plan to store and stream<\/span><\/p><\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">Once you can connect to the VPS, check its processor power, network capacity, and storage. These resources set the practical limits on how much media you can store, how many streams the server can handle, and whether playback runs without buffering.<\/p><p class=\"wp-block-paragraph\">Processor use depends on whether Plex can play the original file. With <strong>Direct Play<\/strong>, Plex sends the file unconverted, so the server does very little processing. <\/p><p class=\"wp-block-paragraph\">If the viewing device doesn&rsquo;t support the file or the connection can&rsquo;t handle its original quality, Plex might <strong>transcode<\/strong> it by converting the video, audio, or resolution during playback. Transcoding uses much more CPU power and temporary disk space.<\/p><p class=\"wp-block-paragraph\">Don&rsquo;t assume that a standard VPS includes compatible graphics hardware for faster transcoding. Hardware-accelerated streaming requires supported hardware and an active Plex Pass. Without it, the CPU handles the conversion.<\/p><p class=\"wp-block-paragraph\">The network matters just as much. Outbound speed determines whether each stream can play without buffering, while the plan&rsquo;s monthly data allowance determines how much media the VPS can send in total. Storage must also leave room for Plex&rsquo;s database, artwork, logs, and temporary transcoding files, not just your movies and shows.<\/p><p class=\"wp-block-paragraph\">Before choosing a VPS provider, check that it allows this type of use and supports the network access Plex needs. Plex licenses its server software for personal use, expects it to run on a home network, and notes that it might not work with every online hosting provider.<\/p><p class=\"wp-block-paragraph\"><strong><div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Important!<\/strong> <\/strong>A VPS isn&rsquo;t on the same local network as your viewing devices, so Plex treats video playback from it as remote. Remote personal video playback requires Plex Pass on the server administrator&rsquo;s account, Plex Pass on the viewer&rsquo;s account, or Remote Watch Pass on the viewer&rsquo;s account. Music through Plexamp and photos through Plex Photos aren&rsquo;t covered by this restriction.<strong> \n            <\/p><\/div><\/strong><\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-set-up-a-plex-server-manually-on-ubuntu\">How to set up a Plex server manually on Ubuntu<\/h2><p class=\"wp-block-paragraph\">Set up Plex manually on Ubuntu 24.04 by installing Plex Media Server, creating media folders it can access, connecting your Plex account, and allowing remote connections.<\/p><h3 class=\"wp-block-heading\">1. Update the Ubuntu server<\/h3><p class=\"wp-block-paragraph\">Start by<a href=\"\/gb\/tutorials\/how-to-update-ubuntu\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a href=\"\/gb\/tutorials\/how-to-update-ubuntu\" data-wpel-link=\"internal\" rel=\"follow\">updating your Ubuntu server<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update\n\nsudo apt upgrade -y<\/pre><p class=\"wp-block-paragraph\">The first command refreshes Ubuntu&rsquo;s list of available packages. The second installs the latest versions.<\/p><p class=\"wp-block-paragraph\">Ubuntu might install a new Linux kernel during the upgrade. If it does, restart the VPS:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo reboot<\/pre><p class=\"wp-block-paragraph\">The restart will close your SSH connection. Wait for the server to come back online, then reconnect before continuing.<\/p><h3 class=\"wp-block-heading\">2. Add the Plex repository and install Plex Media Server<\/h3><p class=\"wp-block-paragraph\">Ubuntu needs to know where to download Plex and how to confirm that the package came from Plex.<\/p><p class=\"wp-block-paragraph\">A <strong>software repository<\/strong> is an online source that Ubuntu can pull packages from and verify using a signing key. Adding Plex&rsquo;s repository also lets later public Plex releases arrive through Ubuntu&rsquo;s normal package manager.<\/p><p class=\"wp-block-paragraph\">Install the tools needed to add the repository:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install -y curl gnupg2\n\nsudo install -d -m 0755 \/etc\/apt\/keyrings<\/pre><p class=\"wp-block-paragraph\">Download the Plex signing key:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl -L https:\/\/downloads.plex.tv\/plex-keys\/PlexSign.v2.key \n\n  | sudo gpg --yes --dearmor \n\n-o \/etc\/apt\/keyrings\/plexmediaserver.v2.gpg<\/pre><p class=\"wp-block-paragraph\">The signing key lets Ubuntu verify that Plex published the package and that it hasn&rsquo;t been changed after release.<\/p><p class=\"wp-block-paragraph\">Add the official Plex repository:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">echo \"deb [signed-by=\/etc\/apt\/keyrings\/plexmediaserver.v2.gpg] https:\/\/repo.plex.tv\/deb\/ public main\" \n\n  | sudo tee \/etc\/apt\/sources.list.d\/plex.list<\/pre><p class=\"wp-block-paragraph\">Refresh the package list again and install Plex Media Server:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update\n\nsudo apt install -y plexmediaserver<\/pre><p class=\"wp-block-paragraph\">Once the installation finishes, Ubuntu can install future public Plex releases through its usual package update process.<\/p><h3 class=\"wp-block-heading\">3. Start Plex and check that it&rsquo;s running<\/h3><p class=\"wp-block-paragraph\">Plex runs in the background as a Linux <strong>service<\/strong>. A service is a program that keeps running after you close your SSH session. Ubuntu uses <code>systemctl<\/code> to<a href=\"\/gb\/tutorials\/manage-and-list-services-in-linux\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a href=\"\/gb\/tutorials\/manage-and-list-services-in-linux\" data-wpel-link=\"internal\" rel=\"follow\">manage Linux services<\/a>, including starting, stopping, and checking their status.<\/p><p class=\"wp-block-paragraph\">Enable Plex and start it immediately:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl enable --now plexmediaserver<\/pre><p class=\"wp-block-paragraph\">The <code>enable<\/code> part tells Ubuntu to start Plex whenever the VPS boots. The &ndash;now part starts it without waiting for the next restart.<\/p><p class=\"wp-block-paragraph\">Check whether the service is active:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl is-active plexmediaserver<\/pre><p class=\"wp-block-paragraph\">A working installation returns:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">active<\/pre><p class=\"wp-block-paragraph\">You&rsquo;re ready to continue when you see that result.<\/p><p class=\"wp-block-paragraph\">If the command returns <code>inactive<\/code> or <code>failed<\/code>, inspect the service status and recent log messages:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl status plexmediaserver\n\nsudo journalctl -u plexmediaserver -n 50 --no-pager<\/pre><p class=\"wp-block-paragraph\">Look near the bottom of the output. A missing file, permission failure, or port conflict will usually appear there.<\/p><h3 class=\"wp-block-heading\">4. Create folders Plex can access<\/h3><p class=\"wp-block-paragraph\">Plex runs under its own Linux account, named <code>plex<\/code>. Your SSH account uploads the files, while the <code>plex<\/code> account reads them during library scans and playback.<\/p><p class=\"wp-block-paragraph\">Both accounts need access to the same media folders. Placing them in a shared Linux group gives them that access without making the files writable by every account on the server.<\/p><p class=\"wp-block-paragraph\">Create a group named <code>media<\/code>, then add Plex and your current login account:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo groupadd --force media\n\nsudo usermod -aG media plex\n\nsudo usermod -aG media \"$USER\"<\/pre><p class=\"wp-block-paragraph\">Create a separate folder for each media type:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo mkdir -p \n\n  \/srv\/plexmedia\/Movies \n\n  \"\/srv\/plexmedia\/TV Shows\" \n\n\/srv\/plexmedia\/Music<\/pre><p class=\"wp-block-paragraph\">Set your current user as the owner and <code>media<\/code> as the shared group:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chown -R \"$USER\":media \/srv\/plexmedia<\/pre><p class=\"wp-block-paragraph\"><a data-wpel-link=\"internal\" href=\"\/gb\/tutorials\/how-to-change-linux-permissions-and-owners\" rel=\"follow\">Adjust the folder and file permissions<\/a> for Plex:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo find \/srv\/plexmedia -type d -exec chmod 2775 {} ;\n\nsudo find \/srv\/plexmedia -type f -exec chmod 664 {} ;<\/pre><p class=\"wp-block-paragraph\">These settings let your account upload and organize files while giving Plex access to the library. The leading <code>2<\/code> in <code>2775<\/code> also makes new subfolders inherit the <code>media<\/code> group, so Plex is less likely to lose access as the library grows.<\/p><p class=\"wp-block-paragraph\">Restart Plex after changing its group membership:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl restart plexmediaserver<\/pre><p class=\"wp-block-paragraph\">Disconnect and reconnect your SSH or file-transfer session as well. Linux applies your own new group membership when you sign in again.<\/p><p class=\"wp-block-paragraph\">Check the <a href=\"https:\/\/support.plex.tv\/articles\/200288596-linux-permissions-guide\" data-wpel-link=\"external\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Plex Support<\/a> page for more guidance regarding Linux file and directory permissions.<\/p><p class=\"wp-block-paragraph\">Test the TV folder through the same account Plex uses:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo -u plex ls \"\/srv\/plexmedia\/TV Shows\"<\/pre><p class=\"wp-block-paragraph\">No output is fine if the folder is empty. A <code>Permission denied<\/code> message means Plex still can&rsquo;t access the path.<\/p><h3 class=\"wp-block-heading\">5. Upload and organize your media<\/h3><p class=\"wp-block-paragraph\">Use <a href=\"\/gb\/tutorials\/how-to-use-sftp-to-safely-transfer-files\" data-wpel-link=\"internal\" rel=\"follow\">Secure File Transfer Protocol (SFTP)<\/a> to transfer your media files securely.<\/p><p class=\"wp-block-paragraph\">SFTP sends files through the same encrypted connection as SSH. Upload each media type to its matching folder:<\/p><ul class=\"wp-block-list\">\n<li>Movies: <code>\/srv\/plexmedia\/Movies<\/code><\/li>\n\n\n\n<li>TV shows: <code>\/srv\/plexmedia\/TV Shows<\/code><\/li>\n\n\n\n<li>Music: <code>\/srv\/plexmedia\/Music<\/code><\/li>\n<\/ul><p class=\"wp-block-paragraph\">Plex uses folder and file names to work out what each item is. Clear naming helps it find the correct title, poster, summary, cast, and episode information.<\/p><p class=\"wp-block-paragraph\">Give each movie its own folder and include the release year:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/srv\/plexmedia\/Movies\/\n\n&#9492;&#9472;&#9472; Arrival (2016)\/\n\n&#9492;&#9472;&#9472; Arrival (2016).mkv<\/pre><p class=\"wp-block-paragraph\">For a TV series, use a show folder, season folder, and sXXeXX episode number:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/srv\/plexmedia\/TV Shows\/\n\n&#9492;&#9472;&#9472; Severance (2022)\/\n\n    &#9492;&#9472;&#9472; Season 01\/\n\n&#9492;&#9472;&#9472; Severance (2022) - s01e01.mkv<\/pre><p class=\"wp-block-paragraph\">In <code>s01e01<\/code>, <code>s01<\/code> means season 1 and <code>e01<\/code> means episode 1.<\/p><p class=\"wp-block-paragraph\">Don&rsquo;t mix movies and TV shows in the same library folder. Plex scans each media type differently, so mixing them can cause incorrect matches or make files disappear from the library scan.<\/p><p class=\"wp-block-paragraph\">After uploading a large batch,<a href=\"\/gb\/tutorials\/how-to-check-disk-space-in-linux\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a href=\"\/gb\/tutorials\/how-to-check-disk-space-in-linux\" data-wpel-link=\"internal\" rel=\"follow\">check how much disk space remains<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">df -h \/srv\/plexmedia<\/pre><p class=\"wp-block-paragraph\">Check the <code>Avail<\/code> column to see how much space remains.<\/p><p class=\"wp-block-paragraph\">Don&rsquo;t fill the disk completely. Plex also needs space for its library database, downloaded artwork, logs, and temporary files created during transcoding. By default, Plex keeps its transcoding files on the operating system disk.<\/p><h3 class=\"wp-block-heading\">6. Open Plex through an SSH tunnel<\/h3><p class=\"wp-block-paragraph\">Plex expects its first setup connection to come from the server itself or the same local network.<\/p><p class=\"wp-block-paragraph\">Your VPS is in a data center, so your computer isn&rsquo;t on that local network. An SSH tunnel solves this by securely forwarding a browser connection from your computer to Plex on the VPS.<\/p><p class=\"wp-block-paragraph\">Open a new terminal on your computer and run:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ssh -L 8888:127.0.0.1:32400 YOUR_USER@SERVER_IP<\/pre><p class=\"wp-block-paragraph\">Replace:<\/p><ul class=\"wp-block-list\">\n<li><code>YOUR_USER<\/code> with your VPS username<\/li>\n\n\n\n<li><code>SERVER_IP<\/code> with your VPS IP address<\/li>\n<\/ul><p class=\"wp-block-paragraph\">The two port numbers have different jobs:<\/p><ul class=\"wp-block-list\">\n<li><code>8888<\/code> is a temporary port on your computer.<\/li>\n\n\n\n<li><code>32400<\/code> is the port Plex uses on the VPS.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Keep the terminal open. Closing it also closes the tunnel.<\/p><p class=\"wp-block-paragraph\">Now enter this address in your browser:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">http:\/\/127.0.0.1:8888\/web<\/pre><p class=\"wp-block-paragraph\">Your browser connects to port <code>8888<\/code> on your computer. SSH then carries that traffic securely to port <code>32400<\/code> on the VPS.<\/p><p class=\"wp-block-paragraph\">Plex only requires this tunnel during the initial setup. Once the server is connected to your account, you can access it through the regular Plex Web App.<\/p><p class=\"wp-block-paragraph\">Sign in to your Plex account and follow the setup screen.<\/p><p class=\"wp-block-paragraph\">Connecting the server to your account is also called <strong>claiming the server<\/strong>. Claiming tells Plex which account owns the server and has permission to change its settings.<\/p><h3 class=\"wp-block-heading\">7. Add your media libraries<\/h3><p class=\"wp-block-paragraph\">A Plex library is a collection for one type of media, such as movies, TV shows, or music.<\/p><p class=\"wp-block-paragraph\">During the setup screen, give the server a distinctive name &ndash; this is what shows up in the Plex app&rsquo;s server list. Then, select <strong>Add Library<\/strong> &rarr; <strong>Movies<\/strong>, <strong>TV Shows<\/strong>, or <strong>Music<\/strong>. Browse to the matching server folder. Then repeat the process for the other media types.<\/p><p class=\"wp-block-paragraph\">Use these paths:<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td colspan=\"1\" rowspan=\"1\"><p><strong>Plex library<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Server folder<\/strong><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Movies<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span><code>\/srv\/plexmedia\/Movies<\/code><\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>TV shows<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span><code>\/srv\/plexmedia\/TV Shows<\/code><\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Music<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span><code>\/srv\/plexmedia\/Music<\/code><\/span><\/p><\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">Don&rsquo;t select <code>\/srv\/plexmedia<\/code> as one combined library. Plex needs to know which scanning rules to use for each folder.<\/p><p class=\"wp-block-paragraph\">After you add a library, Plex scans its files and downloads <strong>metadata<\/strong>. Metadata is the extra information shown around a file, including its poster, title, summary, cast, and episode details.<\/p><p class=\"wp-block-paragraph\">Check several items after the scan finishes. If Plex selects the wrong movie or show, check the file name and release year first. Plex relies on properly separated and named media folders to match files correctly. <\/p><h3 class=\"wp-block-heading\">8. Allow remote connections<\/h3><p class=\"wp-block-paragraph\">Plex uses Transmission Control Protocol (TCP) port <code>32400<\/code> for its main server connection. Opening only this port lets Plex apps reach the server without exposing anything else running on it.<\/p><p class=\"wp-block-paragraph\">Ubuntu uses a firewall tool called Uncomplicated Firewall (UFW). It comes pre-installed on most Ubuntu 24.04 images but is disabled by default &ndash; install it if your provider&rsquo;s image doesn&rsquo;t include it:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt install -y ufw<\/pre><p class=\"wp-block-paragraph\">Allow SSH before enabling the firewall. Otherwise, you could block the connection you use to manage the VPS:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo ufw allow OpenSSH\n\nsudo ufw allow 32400\/tcp\n\nsudo ufw enable\n\nsudo ufw status<\/pre><p class=\"wp-block-paragraph\">Type <code>y<\/code> when Ubuntu asks whether to enable UFW.<\/p><p class=\"wp-block-paragraph\">The output should list both SSH and <code>32400\/tcp<\/code> as allowed.<\/p><p class=\"wp-block-paragraph\">If you changed the default SSH port, allow that custom port before enabling UFW instead of relying only on the <code>OpenSSH<\/code> rule.<\/p><p class=\"wp-block-paragraph\">These rules<a href=\"\/gb\/tutorials\/how-to-configure-firewall-on-ubuntu-using-ufw\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a href=\"\/gb\/tutorials\/how-to-configure-firewall-on-ubuntu-using-ufw\" data-wpel-link=\"internal\" rel=\"follow\">configure your Ubuntu firewall<\/a> to accept Plex traffic while leaving its optional local-network ports closed. Plex recommends opening only TCP port <code>32400<\/code> when the server has a public IP address.<\/p><p class=\"wp-block-paragraph\">Your hosting provider might also have a network firewall outside Ubuntu. UFW controls traffic after it reaches the VPS, while the provider firewall controls whether that traffic reaches the VPS at all.<\/p><p class=\"wp-block-paragraph\">If your provider blocks incoming connections by default, add an inbound TCP rule for port <code>32400<\/code> there as well.<\/p><p class=\"wp-block-paragraph\">Enable remote access in Plex:<\/p><ol class=\"wp-block-list\">\n<li>Open <strong>Settings<\/strong> in the Plex Web App.<\/li>\n\n\n\n<li>Select <strong>Remote Access<\/strong> under the server settings.<\/li>\n\n\n\n<li>Click <strong>Enable Remote Access<\/strong>.<\/li>\n\n\n\n<li>Wait for Plex to test the connection.<\/li>\n<\/ol><p class=\"wp-block-paragraph\">If the test fails, enable <strong>Manually specify public port<\/strong>, enter <code>32400<\/code>, and try again.<\/p><p class=\"wp-block-paragraph\">A successful test shows <strong>Fully accessible outside your network<\/strong>.<\/p><p class=\"wp-block-paragraph\">Test the server from a phone or another device that isn&rsquo;t connected to your current network.<\/p><p class=\"wp-block-paragraph\">While a video plays, open the Plex dashboard and check the playback type:<\/p><ul class=\"wp-block-list\">\n<li><strong>Direct Play<\/strong> means Plex sends the original file unchanged.<\/li>\n\n\n\n<li><strong>Direct Stream<\/strong> means Plex repackages the file but doesn&rsquo;t convert the video.<\/li>\n\n\n\n<li><strong>Transcode<\/strong> means Plex converts part or all of the file during playback.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Plex chooses the mode based on the original file and the formats supported by the receiving device. <\/p><p class=\"wp-block-paragraph\">If playback buffers and the dashboard show transcoding, check the VPS CPU use. A server that stays near full CPU might need more processing power, lower playback quality, or files that the receiving device can Direct Play.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-set-up-plex-faster-with-a-vps-template\">How to set up Plex faster with a VPS template<\/h2><p class=\"wp-block-paragraph\">You can set up Plex faster with Hostinger&rsquo;s <a href=\"\/gb\/vps\/vps-hosting-for-plex\" data-wpel-link=\"internal\" rel=\"follow\">Plex VPS template<\/a>, which installs Ubuntu 24.04 and Plex Media Server for you.<\/p><p class=\"wp-block-paragraph\">Available with our Plex VPS hosting plans, the template skips the repository setup, package installation, and service configuration required by the manual method.<\/p><div class=\"wp-block-image wp-block-image aligncenter size-large\"><figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6a7085683bf5d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a7085683bf5d\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/08\/1785745682338-0.png\/public\" alt=\"Hostinger VPS hosting landing page\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Follow the<a href=\"\/support\/8122780-how-to-use-the-plex-vps-template-at-hostinger\/\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a href=\"\/support\/8122780-how-to-use-the-plex-vps-template-at-hostinger\/\" data-wpel-link=\"internal\" rel=\"follow\">Plex VPS template setup instructions<\/a> to select it in hPanel, connect to Plex through an SSH tunnel, and complete the initial setup.<\/p><p class=\"wp-block-paragraph\">The template also creates <code>\/home\/plexlibrary\/<\/code> for your media. Upload your files there through Secure File Transfer Protocol (SFTP), then add the corresponding folders as Plex libraries.<\/p><p class=\"wp-block-paragraph\">Plex comes preinstalled, but you still need to connect your account, organize your media, configure remote access, and keep the VPS updated.<\/p><p class=\"wp-block-paragraph\"><strong><div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                <strong>Important!<\/strong> <\/strong>Applying the template to an existing VPS reinstalls its operating system and deletes the data stored on it. <a href=\"\/support\/1583232-how-to-back-up-or-restore-a-vps-at-hostinger\/\" data-wpel-link=\"internal\" rel=\"follow\">Back up your VPS files<\/a> you need before switching the OS.<strong> \n            <\/p><\/div><\/strong> <\/p><figure class=\"wp-block-image size-large\"><a href=\"\/uk\/vps-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner.png\/w=1024,h=1024,fit=scale-down\" alt=\"\" class=\"wp-image-77934\" srcset=\"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-content\/uploads\/sites\/51\/2023\/02\/VPS-hosting-banner.png 1024w, https:\/\/www.hostinger.com\/uk\/tutorials\/wp-content\/uploads\/sites\/51\/2023\/02\/VPS-hosting-banner-300x88.png 300w, https:\/\/www.hostinger.com\/uk\/tutorials\/wp-content\/uploads\/sites\/51\/2023\/02\/VPS-hosting-banner-150x44.png 150w, https:\/\/www.hostinger.com\/uk\/tutorials\/wp-content\/uploads\/sites\/51\/2023\/02\/VPS-hosting-banner-768x225.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-what-are-the-benefits-of-running-plex-on-a-vps\">What are the benefits of running Plex on a VPS?<\/h2><p class=\"wp-block-paragraph\">A VPS keeps your Plex library available without requiring a home computer to stay powered on.<\/p><ul class=\"wp-block-list\">\n<li><strong>The server stays online independently.<\/strong> Restarting or turning off your personal computer won&rsquo;t take Plex offline.<\/li>\n\n\n\n<li><strong>You don&rsquo;t need to configure a home router.<\/strong> The VPS already has a public IP address, although you still need to allow Plex through its firewalls.<\/li>\n\n\n\n<li><strong>Your home upload speed isn&rsquo;t involved.<\/strong> Media leaves the data center where the VPS runs rather than passing through your home internet connection.<\/li>\n\n\n\n<li><strong>You can choose the server location.<\/strong> Placing the VPS closer to its regular viewers reduces the distance each stream has to travel.<\/li>\n\n\n\n<li><strong>You can increase resources later.<\/strong> A larger library or more simultaneous viewers might require more storage, CPU power, RAM, or monthly data transfer.<\/li>\n\n\n\n<li><strong>Your media stays in one library.<\/strong> Plex organizes movies, shows, music, and photos in one place, available through supported apps connected to your account.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">However, a VPS isn&rsquo;t the right fit for every Plex library.<\/p><p class=\"wp-block-paragraph\">Large media collections can make hosted storage expensive, and several high-quality streams add up in monthly data transfer fast.<\/p><p class=\"wp-block-paragraph\">Don&rsquo;t assume that a VPS includes a compatible graphics processing unit (GPU) for hardware-assisted transcoding. Hardware-accelerated streaming requires an active Plex Pass. <\/p><p class=\"wp-block-paragraph\">A standard VPS works best when most viewing devices can use Direct Play and the library fits within the plan&rsquo;s storage and data-transfer limits.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-do-you-keep-a-plex-server-secure-and-responsive\">How do you keep a Plex server secure and responsive?<\/h2><p class=\"wp-block-paragraph\">Keep your Plex server secure and responsive by limiting access, installing updates, monitoring resources, and backing up its data.<\/p><ul class=\"wp-block-list\">\n<li><strong><a href=\"\/gb\/tutorials\/vps-security\" data-wpel-link=\"internal\" rel=\"follow\">Secure the VPS<\/a><\/strong><strong> itself.<\/strong> Use SSH keys, disable root login, remove unused services, configure a firewall, and monitor server logs.<\/li>\n\n\n\n<li><strong>Protect your Plex account.<\/strong> Use a unique password and enable two-factor authentication, so a stolen password isn&rsquo;t enough to sign in.<\/li>\n\n\n\n<li><strong>Install updates regularly.<\/strong> Because you added the Plex repository, Ubuntu can update Plex along with the other installed packages:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update\n\nsudo apt upgrade -y<\/pre><ul class=\"wp-block-list\">\n<li><strong>Keep the firewall narrow.<\/strong> Allow your SSH port and TCP port <code>32400<\/code>. Don&rsquo;t expose Plex&rsquo;s optional discovery ports on a public VPS.<\/li>\n\n\n\n<li><strong>Watch the server during playback.<\/strong><a href=\"\/gb\/tutorials\/how-to-monitor-vps-performance\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a href=\"\/gb\/tutorials\/how-to-monitor-vps-performance\" data-wpel-link=\"internal\" rel=\"follow\">Monitor your server&rsquo;s performance<\/a> while one or more videos play. High CPU use during a stream usually means Plex is transcoding.<\/li>\n\n\n\n<li><strong>Leave free disk space.<\/strong> A full disk can interrupt scans, updates, logging, and transcoding. Converting media for multiple viewers at once often uses several gigabytes of temporary space.<\/li>\n\n\n\n<li><strong>Back up the Plex data directory.<\/strong> On Ubuntu, Plex stores its database, settings, artwork, and viewing information here:<\/li>\n<\/ul><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/var\/lib\/plexmediaserver\/Library\/Application Support\/Plex Media Server\/<\/pre><p class=\"wp-block-paragraph\">This directory doesn&rsquo;t contain the movie or music files themselves. It contains the information Plex uses to organize them. Back it up separately from your media so you don&rsquo;t have to rebuild every library match and setting after a server failure.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-do-you-fix-common-plex-server-setup-problems\">How do you fix common Plex server setup problems?<\/h2><p class=\"wp-block-paragraph\">Start troubleshooting with the Plex service, folder permissions, port <code>32400<\/code>, and current server resource use.<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td colspan=\"1\" rowspan=\"1\"><p><strong>Symptom<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>What to check<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>What to do<\/strong><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>The setup page won&rsquo;t open<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Plex service and SSH tunnel<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Run <code>systemctl is-active plexmediaserver<\/code>, recreate the tunnel, and keep its terminal open<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Plex shows an empty library<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Folder path and permissions<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Confirm the path and run <code>sudo -u plex ls \/path\/to\/library<\/code><\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Plex identifies the wrong title<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Folder and file names<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Add the movie&rsquo;s release year or use <code>sXXeXX<\/code>&nbsp;episode numbering<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Remote access remains unavailable<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>UFW and the provider firewall<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Allow TCP port <code>32400<\/code>&nbsp;in both places, then retry the Plex test<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Remote video won&rsquo;t play<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Plex account requirements<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Confirm that the server administrator or viewer has the required Plex subscription<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Playback buffers<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>CPU use, network speed, and playback type<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Check whether Plex is transcoding, then lower the quality or use a Direct Play format<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>New files don&rsquo;t appear<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Library scan and permissions<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Scan the library again and confirm that the <code>plex<\/code>&nbsp;user can read the files<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Plex stops after an update<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Service logs<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Run <code>sudo journalctl -u plexmediaserver -n 50 --no-pager<\/code>&nbsp;and check the newest error<\/span><\/p><\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">If the setup page won&rsquo;t load, check that the Plex service is active before changing firewall rules. An open port won&rsquo;t help when the application behind it isn&rsquo;t running.<\/p><p class=\"wp-block-paragraph\">If Plex can&rsquo;t see your files, test the folder as the <code>plex<\/code> user. This tells you whether the failure is due to Linux permissions or an incorrect library path.<\/p><p class=\"wp-block-paragraph\">If remote access fails, check both firewall layers. Opening the port in Ubuntu won&rsquo;t help if your hosting provider&rsquo;s network firewall still blocks it.<\/p><p class=\"wp-block-paragraph\">If playback stutters, open the Plex dashboard before upgrading the VPS. Direct Play with low CPU use points toward a network limit. Sustained high CPU during transcoding points toward a processing limit.<\/p><p class=\"wp-block-paragraph\">Manual installation gives you the most control over packages, folders, and permissions. The preconfigured template gets Plex running faster. Both methods still need enough storage, readable media folders, restricted network access, and server resources that match your expected streams.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To set up a Plex server on a virtual private server (VPS), install Plex Media Server, give it access to your media, connect it to your Plex account, and allow remote playback. This creates an always-on personal streaming library without leaving a computer running at home. Setting up Plex manually on Ubuntu 24.04 gives you [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/uk\/tutorials\/how-to-set-up-plex-server\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":624,"featured_media":134304,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to set up a Plex server on a VPS","rank_math_description":"Learn how to set up a Plex server on an Ubuntu VPS, organize your media, enable remote access, and install Plex faster with a preconfigured template.","rank_math_focus_keyword":"how to set up a plex server","footnotes":""},"categories":[22640],"tags":[],"class_list":["post-134303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-set-up-plex-server","default":1},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-set-up-plex-server","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-set-up-plex-server","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-set-up-plex-server","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-set-up-plex-server","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-set-up-plex-server","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-set-up-plex-server","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-set-up-plex-server","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/posts\/134303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/users\/624"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/comments?post=134303"}],"version-history":[{"count":0,"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/posts\/134303\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/media\/134304"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/media?parent=134303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/categories?post=134303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/uk\/tutorials\/wp-json\/wp\/v2\/tags?post=134303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}