reely is a self-hosted movie night picker for a Plex server. Everyone joins a room and swipes through the same shuffled list of your movies, right to like and left to pass. The moment two or more people like the same title, it is a match. It exists so that choosing a film stops taking longer than watching one.
It is a community continuation of MovieMatch by Luke Channings, picking up from its last release, in 2021, after which upstream development stopped.
What it does
- no accounts
- Join with a name and a room name. Anyone who enters the same room name swipes with you, and rooms expire six hours after the last swipe.
- token stays home
- All Plex traffic happens server-side. The token never reaches a browser and is redacted from every log line.
- room filters
- Genre, year, decade, rating and more. Anyone can apply a shortlist and the whole room swipes the same deck.
- phone and desktop
- An installable PWA with swipe gestures on mobile, and a two-pane layout with a live match sidebar on desktop.
- local by default
- No telemetry and no third-party services beyond a webfont request to Google Fonts on first load, which the service worker then caches for offline use.
Running
On a phone
Install
# minimum viable: point it at Plex and open port 8000 docker run -d \ -e PLEX_URL=http://your-plex:32400 \ -e PLEX_TOKEN=your-plex-token \ -p 8000:8000 \ cajunflavoredbob/reely:latest
A docker-compose.yml in the repository reads the token
from a Docker secret instead of the environment, which keeps it out
of process listings and docker inspect. Configuration
can also come from a config.yaml.
Joining a room is claiming a name, so there is no gate against strangers by default. If the port is reachable from outside your household, turn on basic auth or keep it behind a VPN.
Specification
| Version | 1.1.9 |
|---|---|
| License | Apache 2.0 |
| Language | TypeScript, Node 26 |
| Artifact | Container image, amd64 and arm64 |
| Requires | A Plex Media Server with at least one movie library |
| Listens on | Port 8000, HTTP and WebSocket on the same origin |
| External calls | Your own Plex server, plus Google Fonts on first load |
| Source | github.com/cajunflavoredbob/reely |