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:
- Open Apps → Profiles
- Find Plex, click it, accept the "enable Plex?" prompt
- 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):
- Open
http://<your-NAS-IP>:32400/webin a browser that is logged into your Plex account. Plex's web app detects the unclaimed server on your LAN automatically. - Walk through the onboarding wizard. Server name, region, library setup.
- 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:
- Browse to https://plex.tv/claim while logged in. Copy the
claim-xxxxxxxxtoken. - Within 4 minutes: SSH to the NAS and add
PLEX_CLAIM=claim-xxxxxxxxto/opt/sparkbox/.env sudo sparkbox restart plex- 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:
- Plex web UI → Settings → Transcoder
- Enable Use hardware acceleration when available
- 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:
- Jellyfin: 8096 / 8097 (depending on bundle)
- Emby: 8092
- Plex: 32400
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:
- Media originals:
/opt/sparkbox/data/media/— shared across all media servers. Backed up by the SparkBox Backup tile. - Plex's metadata + DB:
/opt/sparkbox/modules/plex/config/— posters, watched-state, libraries, account claim. Also backed up by default.
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.