Setup Wizard
Configure your server step by step. Like Plex, but sharper.
Run these commands on your Linux Mint server.
sudo apt update
sudo apt install python3 python3-pip python3-venv qbittorrent ffmpeg -y
# Optional: Windscribe VPN
sudo apt install windscribe-cli -y
cd ~/Plexarr/server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Then start the server:
python app.py
By default it binds to 0.0.0.0:8080. You should see the startup banner in your terminal.
tips_and_updates Tip
Make sure port 8080 is open on your firewall: sudo ufw allow 8080/tcp
These paths must match your Plex library locations. The auto-renamer will place files here.
Edit these in the Settings tab of the web UI or in config.json next to app.py. The first run auto-creates the file.
qBittorrent
Open qBittorrent Preferences > Web UI. Enable it and set a username/password. Map the categories:
tv-plex -> /media/plex/TV Shows
movies-plex -> /media/plex/Movies
anime-plex -> /media/plex/Anime
TMDB API Key
Get a free key at themoviedb.org. Paste it into the Settings tab for cover art and metadata.
FFmpeg (Optional)
Already installed above. Plexarr will auto-set default English audio and subtitle tracks after downloads. Configure ffmpeg.default_audio_lang and ffmpeg.default_subtitle_lang in Settings.
Windscribe VPN (Optional)
Install and login via CLI. Set vpn.enabled in Settings to control the VPN from the web UI.
sudo windscribe login
Cloudflare Solver (Optional)
Install cloudscraper to access TorrentGalaxy and 1337x. Enable in Settings.
pip install cloudscraper
Rapidgator (Optional)
Enable premium in Settings with your API key, or use free mode (may require captcha).
SABnzbd (Optional)
Install SABnzbd and enable the API. Set sabnzbd.host, sabnzbd.api_key, and sabnzbd.categories_map in Plexarr Settings.
sudo apt install sabnzbdplus -y
# Configure at http://localhost:8080/sabnzbd
# Retrieve API key from Config > General
NZBGeek (Optional)
Register at nzbgeek.info. Copy your API key into Plexarr Settings under nzbgeek.api_key. Enable nzbgeek.enabled to activate the NZB search tab.
Discord Webhook
Server Settings > Integrations > Webhooks. Copy the URL and paste into Settings > Discord.
Discord Bot
Run separately:
cd discord_bot/
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export DISCORD_BOT_TOKEN=your_token
export PLEXLINK_SERVER=http://your-lan-ip:8080
python bot.py
Watch Folder (Optional)
Enable auto-categorization for files dropped into a folder:
# In config.json or Settings tab
watch_folder.enabled = true
watch_folder.dir = /media/plex/Downloads/dropbox
watch_folder.interval = 5
Files dropped here will be auto-detected and moved to TV Shows, Movies, Anime, or Music paths automatically. No manual sorting needed.
WiFi Upload (Optional)
Upload files from any phone or laptop on the same WiFi network and they will be auto-categorized into Plex paths.
# Upload from any device on the same network
POST http://your-server-ip:8080/api/upload/wifi
Content-Type: multipart/form-data
file: [your media file]
No destination parameter needed. The server detects TV, movie, anime, or music and sorts them into the correct Plex library folder with proper naming.
# Check upload limits and status
GET http://your-server-ip:8080/api/upload/wifi/status
Plex Media Server
Install Plex, create libraries pointing to the same paths above, and enable automatic scanning. Plexarr will place files in the right folders so Plex sees them immediately.
From any device on the same network, open a browser and go to:
http://your-server-ip:8080
Replace your-server-ip with the LAN IP of your Linux Mint server (e.g., 192.168.1.50).
check_circle Done
Your server is running. You can now search torrents, download NZBs, download URLs, upload files, drop files into a watch folder for auto-categorization, batch-queue downloads, monitor VPN status, post-process with FFmpeg, and manage your Plex library from any device.