SparkBox / Guides / Plex setup

How to set up Plex on your SparkBox

Plex shipped in SparkBox v1.6.113 alongside Jellyfin and Emby — you can run all three on the same machine off the same /data/media folder if you want. Here's how to enable it, claim it, and stream your first library.

Status: first-launch guide based on the module spec. If you spot any gotchas in your own install, post in d/sparkbox and we'll patch this in the next release.

1. Enable the Plex module

Plex is opt-in. From the SparkBox dashboard:

  1. Open Apps → Profiles
  2. Find Plex, click it, accept the "enable Plex?" prompt
  3. The container pulls (~200 MB) and starts. Reachable at http://<your-NAS-IP>:32400/web

If you prefer the CLI: sudo sparkbox enable plex && sudo sparkbox up.

2. Claim your server

Plex requires a free account at plex.tv and a one-time server claim. The claim token expires after 4 minutes — generate it right before you need it.

Easiest path (web claim):

  1. Open http://<your-NAS-IP>:32400/web in a browser that is logged into your Plex account. Plex's web app detects the unclaimed server on your LAN automatically.
  2. Walk through the onboarding wizard. Server name, region, library setup.
  3. Done. The server's now tied to your Plex account.

If the web app doesn't auto-detect (different subnet, VPN, weird firewall), fall back to the env-var claim:

  1. Browse to https://plex.tv/claim while logged in. Copy the claim-xxxxxxxx token.
  2. Within 4 minutes: SSH to the NAS and add PLEX_CLAIM=claim-xxxxxxxx to /opt/sparkbox/.env
  3. sudo sparkbox restart plex
  4. The container picks up the env var, claims itself on boot, then ignores the var on subsequent restarts

Seeing the generic Plex app instead of your server?

A common first-launch snag: you open Plex and get the generic "set up Plex / Get Plex" landing page (or someone else's server) instead of your SparkBox server. That just means your server isn't claimed yet — it's running fine, it's simply not linked to your Plex account.

Easiest fix (no SSH): in the SparkBox dashboard, click the Plex app — you'll get a "Claim your Plex server" popup. Grab a claim-xxxxxxxx code from plex.tv/claim (while signed in to the account you want to own the server), paste it into the popup, and hit Claim. SparkBox writes it and restarts Plex for you (~30 seconds) — no editing files, no racing the timer over SSH. The code expires after about 4 minutes, so generate it right before you paste.

Prefer the manual route, or not a SparkBox supporter dashboard user? Use the env-var steps above (PLEX_CLAIM in /opt/sparkbox/.env + sudo sparkbox restart plex).

3. Create your first library

Inside the container, your media folder is mounted at /data. So when Plex's library wizard asks for a folder path, use:

/data/Movies     # for the SparkBox standard movies folder
/data/TV         # for TV shows
/data/Music      # for music

These map to /opt/sparkbox/data/media/Movies etc. on the host. If you've been using the *arr stack (Radarr/Sonarr), they already drop files into these same paths — Plex picks them up automatically once it finishes scanning.

First scan can take a while on big libraries (Plex pulls poster art, metadata, subtitles, etc. from its cloud). Watch Settings → Manage → Library → Scan progress in the Plex web UI.

4. Hardware transcoding (Plex Pass)

SparkBox ships Plex with /dev/dri bind-mounted, which exposes the Intel Quick Sync iGPU on UGREEN N100 / i3 boxes. But Plex's licensing gates hardware transcoding behind Plex Pass — a paid subscription (~$5/month or ~$120 one-time lifetime).

If you have Plex Pass:

  1. Plex web UI → Settings → Transcoder
  2. Enable Use hardware acceleration when available
  3. Enable Use hardware-accelerated video encoding

If you don't have Plex Pass, your NAS will still transcode — just on the CPU, which works fine for 1-2 streams on an N100 but chokes on 4K HDR. Jellyfin (free, no subscription) ships hardware transcoding by default if you want that path instead.

5. Coexisting with Jellyfin and Emby

SparkBox is unusual among self-hosted distros in that it ships three media servers side by side — Jellyfin (free + open), Emby (closed, freemium), and Plex (closed, freemium). They use different ports and you can enable any combination:

All three read the same /opt/sparkbox/data/media folder, so if you ingest a movie via the *arr stack, it shows up in all three libraries after their respective scans. Practical use: try them all for a week, pick whichever interface clicks, then disable the others.

6. Where your data lives

Two paths matter:

The modules/plex/transcode/ directory is scratch space for live transcodes — safe to ignore for backups, Plex regenerates it on demand.

Next steps

That's Plex running on SparkBox.

If your install hits something this guide doesn't cover, post in d/sparkbox. Plex was added v1.6.113 by community request — every report gets patched.

Get SparkBox → More guides →

About this guide: Written from the module spec at SparkBox v1.6.113 launch (Plex was a top community request). Will be rewritten with lived-experience gotchas once first community installs come in. If yours differs, tell us in d/sparkbox.