Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Plexarr V2.1

Remote Media Command Suite
Built for Linux Mint servers. Accessible from any device on your LAN.
Torrents, Usenet, auto-renaming, VPN, FFmpeg, Discord, and more.

Release Build Issues License

FeaturesArchitectureQuick StartClientDocsPacking


Features

Torrent Search Nyaa.si, YTS, EZTV, AnimeTosho, TorrentGalaxy, 1337x (with optional Cloudflare solver)
Usenet / NZB SABnzbd integration, NZBGeek search support
Auto Renamer guessit-powered parser, 100+ release tag stripping, Plex-compliant paths
FFmpeg Post-Process Default English audio/subtitle tracks, strip unwanted languages, detect naming variations like MediaHub-eng
LAN File Sharing Drag & drop upload from any device to Plex library folders, with auto-categorize WiFi upload endpoint
URL Downloader Direct HTTP downloads, Rapidgator (premium + free), batch queue
Batch Queue Select multiple torrents, queue up to 50 items, auto-process
Watch Folder Auto-Categorize Drop files into a folder and Plexarr auto-detects type (TV, movie, anime, music) and sorts to Plex paths
VPN Control Windscribe CLI integration — connect, disconnect, status from web UI
Remote View SocketIO JPEG screen stream, click-to-control mouse, keyboard input
Metadata TMDB (movies + TV), Jikan v4 (anime), TVDB (seasons), cover art + backdrops
Discord Webhook notifications, Doplarr-style bot with slash commands
Prometheus / Grafana Custom metrics endpoint, pre-built dashboard JSON
Tautulli / Overseerr Proxy status and activity endpoints
System Tray Minimize to tray, notifications, quick actions
Cross-Platform Server: Linux. Client: Windows, macOS, Linux. No Node.js or Electron.

Architecture

graph TD
    A[Phone / Tablet] -->|HTTP 8080| D[WiFi Router]
    B[Laptop / PC] -->|HTTP 8080| D
    C[Discord Bot] -->|REST API| D
    D -->|LAN| S[Linux Mint Server]
    S --> E[Plexarr Flask Server]
    E -->|SocketIO| F[Screen Stream]
    E -->|REST| G[qBittorrent]
    E -->|REST| H[SABnzbd]
    E -->|REST| I[TMDB / Jikan / TVDB]
    E -->|Webhook| J[Discord]
    E -->|Metrics| K[Prometheus]
    E -->|CLI| L[Windscribe VPN]
    E -->|Proxy| M[Cloudflare Solver]
    E -->|Download| N[Rapidgator / URLs]
    E -->|Post-Process| O[FFmpeg]
    G -->|Files| P[Plex Library Folders]
    H -->|Files| P
    O -->|Default Tracks| P
Loading

Quick Start

Server (Linux Mint)

git clone https://github.com/Compromisee/Plexarr.git
cd Plexarr/server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py

Server binds to 0.0.0.0:8080.

Client (Any Device)

Open a browser and go to http://your-server-ip:8080.

Or build the standalone desktop client:

cd Plexarr/client
pip install -r requirements.txt
python launcher.py --server auto --verbose

Client

The Plexarr Client is a standalone desktop app built with PyWebView and JetBrains Mono.

Features

  • System Tray — Minimize to tray, quick search, quick quit
  • Auto-Reconnect — Monitors server health, reconnects automatically
  • Server Discovery — Scans your LAN for Plexarr servers automatically
  • Debug Console — Built-in JS console for the webview (F12)
  • Keyboard Shortcuts — Ctrl+Shift+S (search), Ctrl+Shift+M (mini), Ctrl+Shift+P (toggle), F12 (debug)
  • Mini Mode — Floating window for monitoring torrents
  • Multi-Server Profiles — Switch between multiple Plexarr servers
  • Portable Mode — Store config next to the executable
  • Offline Cache — Browse cached results when offline
  • Screenshot — Capture the client window instantly
  • Auto-Updater — Check for new releases on startup
  • Theme Support — Dark, light, system themes
  • Import/Export Config — Move settings between machines
  • Notification Sounds — Audio alerts for download completions
  • Bandwidth Display — Live download/upload speed in tray tooltip
  • Quick Actions Panel — Keyboard-accessible command palette
  • Profile Switching — One-click server switching

Build Client

See Packing.md for detailed build instructions.

Windows

cd client
pyinstaller --onefile --windowed --name PlexarrClient --icon=assets/icon.ico main.py

macOS

cd client
pyinstaller --onefile --windowed --name PlexarrClient --icon=assets/icon.icns main.py

Linux

cd client
pyinstaller --onefile --windowed --name PlexarrClient --icon=assets/icon.png main.py

Or build an AppImage:

python -m nuitka --standalone --onefile --linux-icon=assets/icon.png main.py

Documentation

Full documentation is hosted on GitHub Pages:


Configuration

All server settings live in server/config.json. Key fields:

Key Default Description
server.host 0.0.0.0 Bind address
server.port 8080 HTTP port
server.verbose false Verbose logging
paths.tv /media/plex/TV Shows Plex TV library
paths.movies /media/plex/Movies Plex movie library
paths.anime /media/plex/Anime Plex anime library
qbittorrent.host http://localhost:8080 qBittorrent Web UI
sabnzbd.host http://localhost:8080 SABnzbd API URL
tmdb.api_key "" Free from TMDB
discord.webhook_url "" Discord server webhook
vpn.enabled false Enable Windscribe control
cloudflare_solver.enabled false Enable Cloudflare bypass
ffmpeg.enabled true Auto-process downloads
url_downloader.rapidgator.premium false Rapidgator premium mode
batch_download.max_queue 50 Max batch items
naming.variations [...] Custom naming groups to detect

Edit via the Settings tab in the web UI or directly in the JSON file.


Screenshots

Dashboard

Search

Torrents


Packing

See Packing.md for complete instructions on building executables for:

  • Windows.exe with PyInstaller or Nuitka
  • macOS.app bundle with PyInstaller or Nuitka
  • Linux — Binary or AppImage
  • Server — systemd service, LaunchAgent, or NSSM

Includes CI/CD GitHub Actions workflow for automated builds.


Security

  • LAN Only — Designed for trusted local networks. Do not expose port 8080 to the internet.
  • VPN — Use Tailscale, WireGuard, or reverse proxy (nginx/Caddy) with HTTPS for remote access.
  • Remote Control — Disabled by default. Only enable on trusted networks.
  • Cloudflare Solver — Bypasses anti-bot protection. Use responsibly and only for legitimate access.
  • CORS Proxy — Can fetch arbitrary URLs. Restrict to trusted clients.

Contributing

  1. Fork the repository
  2. Create a 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

MIT License. See LICENSE for details.


GitHub Stars

About

Linux Mint media command suite. Client, server, torrents, auto-renaming, and LAN file sharing.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages