Getting started

Last updated applies to v1.12.2

Requirements, Docker install, first login and the setup wizard that connects your Plex server and builds each user's first personalized rows.

Requirements

Optional extras

Shortlist works fully without any of these.

Release channels

The commands below install the current release, using the :latest image tag. This is the default for a new installation.

The :dev tag follows the development branch and can include changes that are not released yet. To choose it deliberately, replace :latest with :dev in your image configuration and recreate the container. Back up /config before changing channels; do not downgrade a migrated database in place.

Install (Docker)

docker-compose.yml
services:
  shortlist:
    image: ghcr.io/stevezau/shortlist:latest
    ports: ["5959:5959"]
    volumes: ["./config:/config"]
    environment:
      - TZ=Etc/UTC
      - PUID=1000
      - PGID=1000
    restart: unless-stopped

Save it as docker-compose.yml, run docker compose up -d, then open http://your-host:5959.

Add SHORTLIST_DRY_RUN=1 under environment: to see every change it would make while writing nothing to Plex (see Trying it safely).

Other ways to install

With one docker run command instead of a compose file:

docker run -d --name shortlist -p 5959:5959 \
  -e TZ=Etc/UTC -e PUID=1000 -e PGID=1000 \
  -v /path/to/shortlist/config:/config \
  --restart unless-stopped \
  ghcr.io/stevezau/shortlist:latest

Change /path/to/shortlist/config to a folder on the host, then open http://your-host:5959.

From Docker Hub. The identical image, with the same tags, is on Docker Hub as stevezzau/shortlist. The doubled z is deliberate: that is the project’s Docker Hub account, even though the source lives at github.com/stevezau/shortlist with one. Don’t “correct” it or the pull fails. GHCR is the default here because it has no anonymous pull limits.

With the optional seeds. The repository’s docker-compose.example.yml is a longer version of the same file, with the optional one-time settings (Plex URL and token, Tautulli, TMDB key) written in as comments. Every one of them can be entered in the wizard instead.

The setup wizard

Open http://your-host:5959. A fresh install goes straight into the wizard. There is nothing to sign in to yet. Step 1 connects your Plex account (that’s the sign-in, and it’s what claims the instance for you); from then on Shortlist only opens for that account.

The Shortlist setup wizard on its Welcome step, with a seven-segment progress bar and a Get started button
The wizard's Welcome step.

Every screenshot on this page is of a throwaway test server, so no real account, address or library appears in one.

Set Shortlist up on your own network first. Until you sign in with Plex and link a server, anyone who can open the page could claim it as theirs, so don’t put it on the public internet until you’ve finished the wizard. Once you’ve claimed it, it’s yours.

The wizard has 7 steps:

  1. Welcome — a short intro screen. Read it and continue.
  2. Connect Plex — sign in with a PIN, then pick your server. Shortlist checks your Plex version, Plex Pass, and libraries, and tells you in plain English whether each one is OK.

    The Connect Plex step after running checks: the discovered server with its reachable and unreachable addresses, and a checklist confirming the Plex version, Plex Pass and two libraries

    Every address Plex advertises for your server is tried from where Shortlist actually runs, and the one that answered is preselected. You can always type a different one under Advanced.

  3. Add a free TMDB key. Three short steps walk you through getting the key, then Test key unlocks Next. Watch history comes straight from Plex with no setup. Tautulli sits in a closed optional section, and only improves the names people are shown by.
  4. Choose your AI provider — Claude / GPT / Gemini / a local server / None (preselected). Keys stay yours: stored encrypted, and hidden again once saved. Picking None is a perfectly good choice.
  5. Pick your users — everyone you share with, with a reason under anyone switched off.
  6. Make it yours — choose the row’s name, how many titles it holds and its refresh cadence. Each row keeps its own schedule. A live title preview shows the name as you type, and Save & continue saves the name and size before moving on.

    The name can be plain text, or use a placeholder that fills itself in per person, such as {library_name}, {user} or {top_seed}. See Naming a row for what each one becomes.

  7. First run — watch it build, person by person. Reloading resumes the same run. Results distinguish built, skipped and failed users. You can finish setup while the run continues, or skip building until later.

Trying it safely

Shortlist changes real Plex sharing settings, so you may well want to watch it work before you trust it. Two ways to do that:

The first real run is the slowest: it builds every enabled user’s rows and merges every account’s share filter. Later runs are much faster. Most rows are unchanged and skipped.

Every row is hidden from every other account before it is ever put on a home screen, so nobody finds a row that was built for someone else. (You are the exception: Plex cannot hide anything from the server owner — see below.) Your share filters are copied before the first change, so Uninstall (Settings → System → Danger zone) restores that saved copy and reports any accounts it cannot restore. The hiding relies on Plex Media Server 1.43.2.10687 or newer — older builds ignore it, which is why the wizard surfaces your version before you begin.

One thing you should know

You’re in the user list too, so you can give yourself a row like anyone else. On a one-person server that’s the whole point.

What Plex cannot do is hide collections from the server owner. Your own Home screen is fine — Shortlist puts each person’s row only on their side — but the library’s Collections tab shows you everyone’s, and so does the Recommended shelf if you leave that on for a row. If that bothers you, take the rows off the Recommended shelf, or watch on a Plex Home user and keep the admin account for administration.

You’re set up. What now?

Everyone has a row and it will refresh on its own. Worth doing next:

If a row doesn’t turn up, Troubleshooting lists what usually causes it.

Edit this page on GitHub