Flixor---Backend

Flixor---Backend

Docker app from grtgbln's Repository

Overview

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. This is the backend component.

Contributors Forks Stargazers Issues License

Flixor

A beautiful, Netflix-style client for your Plex library

Available on Web, macOS, iOS, Android, and tvOS


About

Flixor is a modern, cross-platform Plex client that brings a Netflix-like experience to your media library. Browse beautiful rows, see rich metadata with ratings from multiple sources, and enjoy powerful playback on any device.

Supported Platforms

Platform Status Player
Web Available HLS.js / DASH.js
macOS Available MPV (HDR, Dolby Vision)
iOS Available KSPlayer
Android Available MPV
tvOS In Development -

Features

Core Experience

  • Netflix-style UI - Continue Watching, Trending, Collections, Watchlist, and more
  • Rich metadata - Trailers, cast info, tech badges (4K/HDR/Atmos/DTS-X)
  • Smart search - Search across Plex and TMDB with intelligent filtering
  • Ultra-fast grids - Optimized for libraries with thousands of items
  • Cross-platform sync - Watch progress syncs across all your devices

Playback

  • Web: Built-in DASH/HLS player with Picture-in-Picture and subtitle support
  • macOS: MPV-powered with HDR, Dolby Vision, and advanced audio passthrough
  • Mobile: Native players with background playback and streaming quality options

Integrations

Service Description
TMDB Movie/TV metadata, posters, backdrops, trailers
Trakt Watch history sync, scrobbling, ratings, watchlists
MDBList Aggregated ratings from IMDb, RT, Letterboxd, Metacritic
Overseerr Request movies and shows directly from the app

Mobile-Specific Features

  • OTA (Over-the-Air) updates without app store
  • Configurable bottom navigation tabs
  • Optional TMDB search integration
  • Landscape continue watching cards with progress indicators

Screenshots

Click to view screenshots

Home Details Library

Installation

Web App (Docker)

Using the 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:latest

Using Docker Compose:

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:
docker compose up -d

Open http://localhost:8080 and sign in with Plex.

macOS

  1. Download the latest .dmg from Releases
  2. Drag Flixor to your Applications folder
  3. Open and sign in with Plex

Requirements: macOS 13.0 (Ventura) or later

iOS / Android

Download from the Releases page or join the TestFlight/beta program.

The mobile apps support OTA updates - you'll receive update notifications within the app.

Development

Prerequisites

  • Node.js 18+
  • npm or yarn

Web Frontend

cd web_frontend
npm install
npm run dev

Mobile App

cd apps/mobile
npm install
npx expo start

macOS App

Open apps/macos/FlixorMac.xcodeproj in Xcode and build.

Full Stack (Web + Backend)

npm install
npm run dev:all

The dev server runs on http://localhost:5173 and is accessible on your local network.

Configuration

Environment Variables

Variable Description Default
SESSION_SECRET Secret for session encryption Required
VITE_PROXY_TARGET Backend URL for dev proxy http://localhost:3000

App Settings

Settings are available in-app under Settings:

  • Catalogs - Choose which Plex libraries appear
  • Home Screen - Configure hero and row visibility
  • Integrations - Set up TMDB, Trakt, MDBList, Overseerr
  • Playback - Video player preferences
  • Appearance - Episode layout, backdrop options

OTA Updates (Mobile)

The mobile app supports self-hosted OTA updates. To publish an update:

export FLIXOR_OTA_UPLOAD_KEY=your-upload-key
./scripts/publish-ota-update.sh

Users will receive update notifications on app launch.

Community

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting a PR.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

Distributed under the GPL-3.0 License. See LICENSE for more information.

Star History

Star History Chart


Made with care for the Plex community

Media gallery

1 / 10

Install Flixor---Backend on Unraid in a few clicks.

Find Flixor---Backend in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Flixor---Backend Review the template variables and paths Click Install

Requirements


        Requires a separate Flixor - Frontend container or Flixor app.
    

Download Statistics

11,786
Total Downloads
245
This Month
157
Avg / Month

Total Downloads Over Time

Loading chart...

Details

Repository
flixorui/flixor_backend:latest
Last Updated2025-10-13
First Seen2025-10-13

Runtime arguments

Network
bridge
Privileged
false

Template configuration

API PortPorttcp

Container Port: 3001

Target
3001
Default
3001
Value
3001
Config PathPath

Path to the config files

Target
/app/config
Default
/mnt/user/appdata/flixor_backend/config
Value
/mnt/user/appdata/flixor_backend/config
Cache PathPath

Path to the cache files

Target
/app/cache
Default
/mnt/user/appdata/flixor_backend/cache
Value
/mnt/user/appdata/flixor_backend/cache
Frontend URLVariable

The URL where the frontend is hosted (e.g., http://localhost:8080). Required if using the frontend app.

Target
FRONTEND_URL
Session SecretVariable

A long, random string used to sign session cookies.

Target
SESSION_SECRET
Node EnvironmentVariable

Not recommended to change.

Target
NODE_ENV
Default
production
Value
production
Internal API PortVariable

Internal API port. Not recommended to change.

Target
PORT
Default
3001
Value
3001
Internal HostVariable

Internal host. Not recommended to change.

Target
HOST
Default
0.0.0.0
Value
0.0.0.0
Internal Config PathVariable

Internal path to the config files. Not recommended to change.

Target
CONFIG_DIRECTORY
Default
/app/config
Value
/app/config
Internal Database PathVariable

Internal path to the database file. Not recommended to change.

Target
DATABASE_PATH
Default
/app/config/db/app.sqlite
Value
/app/config/db/app.sqlite
Internal Image Cache PathVariable

Internal path to the image cache. Not recommended to change.

Target
IMAGE_CACHE_DIR
Default
/app/cache/images
Value
/app/cache/images