Configuration
All settings, keys, paths, and security reference for Plexarr V2.1.
Config.json
All settings live in config.json next to app.py. The web UI Settings tab exposes all fields live.
| Key | Default | Description |
|---|---|---|
server.host | 0.0.0.0 | Bind address |
server.port | 8080 | HTTP port |
server.debug | false | Debug mode |
server.verbose | false | Verbose logging |
paths.tv | /media/plex/TV Shows | TV library root |
paths.movies | /media/plex/Movies | Movie library root |
paths.anime | /media/plex/Anime | Anime library root |
paths.music | /media/plex/Music | Music library root |
qbittorrent.host | http://localhost:8080 | qBittorrent Web UI URL |
qbittorrent.username | admin | qBittorrent login |
qbittorrent.password | adminadmin | qBittorrent password |
tmdb.api_key | "" | TMDB API key |
tmdb.fetch_cover_art | true | Fetch movie/show posters |
tvdb.api_key | "" | TVDB API key (optional) |
discord.webhook_url | "" | Discord webhook for notifications |
screen_stream.enabled | false | Enable screen capture |
remote_control.enabled | false | Enable mouse/keyboard remote |
vpn.enabled | false | Enable VPN integration |
vpn.provider | windscribe | VPN provider |
vpn.cli_path | /usr/bin/windscribe | VPN CLI path |
cloudflare_solver.enabled | false | Enable Cloudflare bypass |
ffmpeg.enabled | true | Enable FFmpeg post-processing |
ffmpeg.default_audio_lang | eng | Default audio language |
ffmpeg.default_subtitle_lang | eng | Default subtitle language |
ffmpeg.post_process_downloads | true | Auto-process after download |
url_downloader.rapidgator.premium | false | Rapidgator premium mode |
url_downloader.rapidgator.api_key | "" | Rapidgator API key |
batch_download.max_queue | 50 | Max batch queue size |
naming.variations | [...] | Custom naming groups to detect |
watch_folder.enabled | false | Enable background watch folder |
watch_folder.dir | "" | Folder to monitor (default uses downloads) |
watch_folder.interval | 5 | Poll interval in seconds |
watch_folder.auto_start | true | Start watcher on server boot |
sabnzbd.enabled | false | Enable SABnzbd integration |
sabnzbd.host | http://localhost:8080 | SABnzbd API URL |
sabnzbd.api_key | "" | SABnzbd API key |
sabnzbd.categories_map | {} | Category to Plex path mapping |
nzbgeek.enabled | false | Enable NZBGeek search |
nzbgeek.api_key | "" | NZBGeek API key |
Plex Paths
Plexarr expects your media folders to follow standard Plex directory structure. The auto-renamer outputs:
TV Shows/Show Name/Season 01/Show Name - S01E02 - Episode Title.mkv
Movies/Movie Name (Year)/Movie Name (Year).mkv
Anime/Anime Name/Season 01/Anime Name - S01E02.mkv
Music/Artist Name/Album Name/Track Title.mp3
Torrent Providers
Plexarr ships with six built-in search providers. Cloudflare-protected sites are NOT listed by default.
| Provider | Type | Cloudflare | Anime-Only |
|---|---|---|---|
| Nyaa.si | Anime | No | Yes |
| AnimeTosho | Anime | No | Yes |
| YTS.mx | Movies | No | No |
| EZTV | TV | No | No |
| TorrentGalaxy | General | Yes | No |
| 1337x.to | General | Yes | No |
Enable the Cloudflare solver (cloudflare_solver.enabled) to access protected sites. Requires cloudscraper package.
To add a custom provider, subclass BaseProvider in modules/torrent_search.py and implement search(query, category, limit).
Naming Variations Detector
Plexarr automatically detects and strips 100+ known naming variations and release tags. Built-in groups include:
MediaHub, Pahe.in, HorribleSubs, Erai-raws, SubsPlease, Judas
YTS, YIFY, RARBG, AMZN, NF, Hulu, CR, Funimation, HIDIVE, VRV
Dual Audio, Multi-Sub, ESub, HC, KORSUB, REPACK, PROPER
Extended, UNCUT, Directors Cut, IMAX, Atmos, DV, DoVi, HDR10
1080p, 720p, 4K, UHD, x264, x265, HEVC, AVC, BluRay, WEB-DL
WEBRip, DVDRip, BDRip, HDTV, 10-bit, 8-bit, Lossless
Add custom variations in config.json under naming.variations. The detector handles non-standard formats like MediaHub - eng, Pahe.in, etc.
Security
warning Warning
Plexarr is designed for trusted LAN environments. It does not include authentication out of the box.
- VPN / Tailscale: Do not expose port 8080 to the internet. Use a VPN for remote access.
- Reverse Proxy: If exposing, use nginx or Caddy with HTTPS and basic auth.
- Remote Control: Keep
remote_control.enabledoff unless needed. It allows full mouse/keyboard access. - CORS Proxy: The
/proxyendpoint can fetch arbitrary URLs. Restrict access to trusted clients. - qBittorrent: Change the default password immediately. Use localhost binding if possible.