Running Plex Media Server on a Raspberry Pi 5 gives you a low-power, always-on media hub that can serve movies, TV shows, and music to every screen in your home – without paying for cloud storage or subscription services. The Pi 5 brings enough processing muscle to handle transcoding tasks that earlier models struggled with, making it the best single-board computer yet for this kind of setup.

What You Need Before You Start
The hardware list is short. You need a Raspberry Pi 5 (8GB RAM is the better choice if you plan to run multiple streams), a microSD card of at least 32GB for the operating system, a reliable power supply rated at 5V/5A, and a USB hard drive or NAS share where your media files actually live. Storing media on the microSD card itself is technically possible but a bad idea – cards wear out fast under constant read/write activity, and you will almost certainly outgrow the space within weeks.
On the software side, start with Raspberry Pi OS Lite (64-bit). The desktop environment adds overhead without any real benefit for a headless server. Flash the image to your SD card using Raspberry Pi Imager, and before you write it, use the advanced settings panel to pre-configure your hostname, username, password, and SSH access. This saves you the hassle of connecting a monitor and keyboard to the Pi just to run basic setup commands.
Once the Pi boots and you can SSH into it, run a full system update before touching anything else. The command is straightforward: sudo apt update && sudo apt upgrade -y. This ensures all packages are current and reduces the chance of dependency conflicts when installing Plex later. Give it a few minutes – the Pi 5 is faster than its predecessors, but a full upgrade on a fresh OS image still takes time.
With the OS updated, you have one more decision to make before installation: how your external storage connects. A USB 3.0 drive plugged directly into one of the Pi 5’s USB 3.0 ports is the simplest option. If you are mounting a network share instead, you will need to configure /etc/fstab to mount it automatically at boot, and you will want the cifs-utils package installed for SMB shares. Either way, know your mount path before you start the Plex install – you will need it during the initial library setup.

Installing and Configuring Plex Media Server
Plex does not sit in the default Raspberry Pi OS repositories, so you add it manually. Start by grabbing the latest ARM64 .deb package from the Plex Media Server download page. Always pull the download link from Plex’s official site rather than using a cached URL from a tutorial, because Plex updates frequently and older packages sometimes cause installation errors on current OS versions.
Download the package directly to the Pi using wget followed by the URL you copied. Once it downloads, install it with sudo dpkg -i plexmediaserver_*.deb. If you see dependency errors, run sudo apt –fix-broken install and then retry. After a clean install, enable and start the service with these two commands: sudo systemctl enable plexmediaserver and sudo systemctl start plexmediaserver. The first command ensures Plex launches automatically after a reboot. The second starts it immediately without requiring a restart.
Before opening the web interface, check one important thing: file permissions. Plex runs under a system user called plex, and if that user cannot read your media directory, the library scan will return zero results. The clean fix is to add the plex user to your user group, or alternatively set the media folder permissions to allow read access for all users. Run ls -la on your mount point to check the current ownership, and use sudo chown -R plex:plex /path/to/your/media if you need to transfer ownership entirely to the Plex user.
Now open a browser on a computer that is on the same local network as the Pi. Navigate to http://[your-pi-ip-address]:32400/web. You will be prompted to sign in with or create a free Plex account. This is required for the initial setup even if you never plan to use Plex’s remote access features. Once signed in, the setup wizard walks you through naming your server and adding media libraries. Point each library at the correct folder on your attached drive – Plex will scan the contents and automatically pull metadata, artwork, and descriptions from its online database.
The library scan can take anywhere from a few minutes to over an hour depending on how much media you have. Let it run to completion before testing playback. While it runs, take a few minutes to explore the server settings. Under Settings > Transcoder, you will find options to control how aggressively Plex transcodes. The Pi 5 can handle some transcoding workloads, but direct play is always preferable – it puts zero extra load on the processor. If your client devices support the file formats in your library natively, set the streaming quality to “Make my local quality the maximum” and let direct play handle everything it can. For anyone also running Sonarr and Radarr on the same Pi to automate downloads into the Plex library, pay attention to where those apps deposit files – the paths need to match exactly what Plex is watching.
Keeping It Stable Over Time

A Plex server on a Pi 5 can run for months without intervention, but a few habits keep it clean. Schedule regular Plex database maintenance through the server’s scheduled tasks settings – this runs automatically by default at 3am, and leaving it enabled prevents the internal database from growing sluggish over time. Also set up a cron job or a simple shell script to periodically check whether the plexmediaserver service is running, and restart it if not. The Pi 5 is stable hardware, but power fluctuations and OS-level events can occasionally knock a service offline.
Storage is where most long-running setups eventually run into trouble. Plex caches thumbnails, metadata, and video preview thumbnails on the OS drive by default, and on a 32GB microSD card that cache can fill available space faster than expected. Move the Plex data directory to your external drive by updating the PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_PATH variable in /etc/default/plexmediaserver before the library grows large. Doing this after the fact requires stopping the service, moving the data folder manually, and updating the path – doable, but easier to configure correctly from the start.





