A fast, Netflix‑style web app, Android, iOS, and MacOS for your Plex library. Browse beautiful rows, see rich details (IMDb/Rotten Tomatoes), and play instantly in your browser with built‑in DASH/HLS playback. Works on any modern desktop or mobile browser.
- Netflix‑style home: Continue Watching, Trending, Collections, and more
- Built‑in player: DASH/HLS, fullscreen, Picture‑in‑Picture, subtitles
- Rich details: trailers/extras, cast, badges (4K/HDR/Atmos), IMDb/RT ratings
- Smart search and filters; ultra‑fast grids optimized for large libraries
- Recommendations from TMDB/Trakt plus Plex On Deck
- Smooth, responsive UI with image optimization and caching
Using published image:
docker run -d \
--name flixor \
-p 8080:80 \
-e SESSION_SECRET=your-secure-secret-here \
-v flixor-config:/app/config \
-v flixor-cache:/app/cache \
--restart unless-stopped \
ghcr.io/flixorui/flixor:latestOr with Docker Compose, create a docker-compose.yml:
services:
flixor:
image: ghcr.io/flixorui/flixor:latest
container_name: flixor
environment:
- SESSION_SECRET=your-secure-secret-here
ports:
- "8080:80"
volumes:
- flixor-config:/app/config
- flixor-cache:/app/cache
restart: unless-stopped
volumes:
flixor-config:
flixor-cache:Then run:
docker compose up -dOpen http://localhost:8080 and sign in with Plex.
Build from source:
git clone https://github.com/flixorui/flixor.git
cd flixor
SESSION_SECRET=your-secret docker compose -f docker-compose.prod.yml up -d- Install Node.js 18+ and npm
- Run:
npm installthennpm run dev:all - Open
http://localhost:5173and sign in with Plex
- The app calls the backend via relative
/apiso it works from any device on your network. - Vite dev server is reachable on your LAN. Visit
http://YOUR_COMPUTER_IP:5173on your phone/another PC. - If you need to point dev proxy to a different backend, set
VITE_PROXY_TARGETin.env(see.env.example).
That’s it—no extra setup needed. The app uses the bundled backend by default; the database is created and migrations run automatically on first start.









