Skip to content

Settings reference

Settings live under Settings (connections, encoding, automation, metadata, discs, path mappings) and Settings → General (host, security, proxy, logging, updates, backups). Both pages have a Show Advanced toggle that reveals the orange advanced fields, like Sonarr's.

Everything on these pages is also available as JSON: GET /api/settings, PUT /api/settings.

General

  • Host — Bind Address (*, localhost or an IP), Port, URL Base (reverse proxy sub-path, e.g. /rexarr), Instance Name (browser tab and login page), Application URL (used for webhook links), and SSL (HTTPS on its own port with a PEM cert + key or a .pfx). Host changes need a restart: the page shows a Restart button, and Rexarr restarts its web server in place, falling back to the old port if the new one cannot be bound. REXARR_PORT / PORT, REXARR_HOST and REXARR_URL_BASE take precedence and lock the fields.
  • Security — Authentication None, Basic (Browser Popup) or Forms (Login Page); Authentication Required can skip local addresses (a reverse proxy's X-Forwarded-For is honoured only when the proxy itself is local). Passwords are stored as salted scrypt hashes; sessions are signed cookies (30 days with Remember me); repeated failed logins are throttled and logged under System → Events. The API key (X-Api-Key header or ?apikey=) always works — the webhook URLs on the Connections page include it when authentication is on. Locked out? Start Rexarr once with REXARR_RESET_AUTH=1 to turn authentication off. Certificate Validation controls HTTPS checks for Radarr / Sonarr / Prowlarr and other servers (enabled, disabled for local addresses, disabled).
  • Proxy — HTTP(S) proxy, with credentials, an ignore list such as *.local, 192.168.1.*, and a bypass for local addresses, for AniDB data, cover art and remote *arr apps.
  • Logging — Info / Debug / Trace (Debug and Trace add every HTTP request) and the log file size before rotation.
  • Updates — branch and mechanism; the mechanism decides what System → Updates tells you to run to install a release. Rexarr does not update itself, and in Docker you pull the new image.
  • Backups — folder (relative to the config directory), interval (1–7 days) and retention: scheduled backups older than this are removed, and the newest three are always kept.

Connections

Connection Fields Notes
Radarr URL, API key API v3. Test verifies it
Sonarr URL, API key API v3
Prowlarr URL, API key optional, for raw indexer search
Lidarr URL, API key, split image + cue downloads API v1, enables the Music page
slskd URL, API key, download folder, max peer queue Soulseek album search
fre:ac freaccmd path empty = auto-detect
Tesseract on / off, tesseract path ocr.enabled, ocr.tesseractPath; empty path = auto-detect. Off copies picture subtitles as they are, whatever a profile asks for
Rip farm on / off, approval, how many encodes to keep here agents.*; see Rip farm
Local media extra folders, scan interval, folder kinds see Local media
MusicBrainz on / off CD and album lookups, Cover Art Archive
TheDiscDB on / off barcodes and disc contents for physical releases
OMDb on / off, API key omdb.*; genre, year and kind for titles the *arr apps do not have
RexDB on / off, index URL, when to contribute rexdb.*; which episode is on which disc, from the shared database
CDDB / freedb on / off, server audio CD track titles when MusicBrainz has none
Notifications any number of targets see below

Notifications

Rexarr can tell you when an encode finished or failed, when a disc finished or failed, and when an update is available. Add notification opens a picker of the kinds below; add as many as you like, and each one chooses its own events, so the phone can get failures only while a channel gets everything.

Target What it needs
Discord the channel's webhook URL (Channel → Edit → Integrations → Webhooks)
Slack an incoming webhook URL
Telegram a bot token from @BotFather and the chat id
ntfy the topic URL (https://ntfy.sh/your-topic), or the server URL and the topic separately; an access token for protected topics. Failures are sent with a high priority
Gotify the server URL and an app token
Pushbullet an access token
Apprise API the server URL, plus a config key for a saved configuration or the Apprise URLs for a stateless one — this is the way to reach IFTTT and everything else Apprise supports
Webhook a URL of your own. It receives { event, title, message, failed, at } as JSON
Custom Script the path to an executable program. It is run on each event with REXARR_EVENT, REXARR_TITLE, REXARR_MESSAGE, REXARR_FAILED, REXARR_VERSION and REXARR_AT in its environment, and is given 30 seconds; a non-zero exit, a missing file or one that is not executable is reported

Test sends one message with the values on screen, saved or not, and says what the target answered. A target that fails later is not retried: the reason is written to System → Events, so a broken webhook never holds up an encode or a rip.

A custom script runs as Rexarr

Anyone who can reach the Settings page can point this at any program on the machine and have Rexarr run it with Rexarr's own permissions. On an instance other people can reach, turn on authentication (Settings → General → Security) before you add one.

Encoding

FFmpeg

Field Key Meaning
ffmpeg binary ffmpegPath empty = auto-detect
ffprobe binary ffprobePath empty = auto-detect
Encodes at a time concurrency enforced from job creation, also on the Activity page
Import poll interval (s) pollIntervalSeconds how often a waiting job asks the *arr app
Write encodes to transcodeTemp transcodes (then move) or output (next to the final file)
Stop stalled encodes after stallTimeoutMinutes minutes without progress; 0 = never
Keep this computer awake preventSleep see Keeping the computer awake

Transcoding — hardware acceleration method, device, hardware decoding, fall back to software, and the Test button. See Transcoding.

Defaults — default profile per media type (defaultProfiles.movie / .tv / .anime / .music), which may be a smart profile that decides per file, and what search shows (remuxOnly, searchDiscReleases).

Automation

Auto transcode: auto.enabled, auto.includeExisting, auto.sources.radarr / .sonarr, auto.scanIntervalMinutes, auto.maxPerScan, auto.profiles.movie / .tv / .anime. See Auto transcode.

Metadata

  • AniDB for anime (anidb.enabled), with a refresh button and the dataset status. See AniDB.
  • MusicBrainz & Cover Art Archive (musicbrainz.enabled) — audio CDs by disc id, tags and cover art.
  • TheDiscDB (thediscdb.enabled, on by default) — thediscdb.com is a community catalogue of physical releases: the barcode on the case, what is on each disc, and the IMDb / TMDb ids of that exact edition. Rexarr asks it when a scanned barcode needs turning into a title. A hit names the film or series outright — 191329125670 comes back as 1917 (2019) with TMDb 530915, so Radarr is told which film it is rather than asked to search for a cleaned-up shop listing. No account; mostly US releases, and it will not know every disc, in which case MusicBrainz and UPCitemdb are tried as before.
  • CDDB / freedb (cddb.enabled, on by default, and cddb.server) — the track listings CD players have used since the nineties. Rexarr computes the CDDB disc id of the disc in the drive and asks for its entry, but only when MusicBrainz has nothing for that disc id, so a CD too obscure for MusicBrainz still rips with real track titles. A CDDB entry carries artist, album, year, genre and the titles, and nothing else: no cover art, and no MusicBrainz ids are written for it. The entry is shown on the Discs page as a release to pick, labelled CDDB.

    The server is any freedb-protocol CGI endpoint; the default is https://freedbtest.dyndns.org/~cddb/cddb.cgi, which answers anyone. It can also be a whole URL with the handshake in it, which is how gnudb.org — the maintained freedb successor — publishes its service:

    gnudb.gnudb.org/~cddb/cddb.cgi?cmd=cddb+read+data+4105d789&hello=emailname+emailhost.com+applicationname+0.1&proto=6
    

    Paste that as it stands, with your own values in the hello, and Rexarr keeps the hello and proto and replaces only the cmd. The handshake is <email name>+<email host>+<application>+<version>. gnudb answers only application names it knows: its own example name is accepted, rexarr is not — that request comes back 500 Unknown application, developer email for rexarr …, which Rexarr writes to the disc log as it stands.

Disc ripping

Field Key Meaning
Disc ripping disc.enabled watch optical drives (on by default)
makemkvcon binary disc.makemkvPath empty = auto-detect
Rip directory disc.ripDirectory where finished files are delivered; empty = <config>/cache/rips
Minimum title length (seconds) disc.minTitleSeconds skips trailers and menus. 600 for movies, 1200 for hour-long episodes, lower for short anime
Best audio per language / every track disc.audioMode best or all; per-title choices override it
Include extras and specials disc.includeExtras also list titles shorter than the minimum
Shortest extra (seconds) disc.extraMinSeconds default 30
Drive poll interval (seconds) disc.pollIntervalSeconds
Start ripping automatically once identified disc.autoRip
Transcode with the default profile disc.autoTranscode
Hand finished files to Radarr / Sonarr disc.autoDeliver
Eject when done disc.autoEject
Keep the raw MakeMKV rip after transcoding disc.keepRaw
Group multi-disc sets into box sets disc.groupBoxSets A disc whose series and season match a disc already in the queue offers to join it instead of starting an item of its own. See Box sets.
Import finished rips automatically disc.autoImport the 10-minute rip-folder sweep
Add shows and movies when their disc starts ripping disc.addMissing
Monitor what was added disc.addMonitored off by default, so nothing is downloaded
Where added titles go disc.addTargets root folder and quality profile per kind; empty = like your library
Virtual drives folder (testing) disc.virtualDriveDirectory a folder of .iso / disc folders
Audio CDs disc.cd FLAC compression, Linux TOC reader, MusicBrainz lookup, MQA detection, import into Lidarr

Buttons on this page: Check import access (asks Radarr and Sonarr whether they can see the rip folder) and Import rip folder now. See Disc ripping.

Experiments

Features that are finished enough to try and not finished enough to be on by default. They can change or go away in the next release, so they are the part of Rexarr most worth reporting when they misbehave.

Barcode scanning

Scan the barcode on a disc case with your phone: Rexarr works out what the disc is, adds it to Radarr / Sonarr if it is not there yet, and keeps it on a list of discs it expects, so the title is in the library before the disc reaches the drive. Off unless experiments.barcode is on.

  1. Turn it on and save. The page then shows a QR code: point your phone's camera at it to open Rexarr's /scan page. The phone has to be able to reach Rexarr's address, and when authentication is on the code carries your API key — treat it like a password.
  2. On the phone, scan the barcode or type the number under it.
  3. Rexarr looks the number up, shows what it found, and you confirm which title it is. A title that is not in the library yet is added the same way a disc's title is — the root folder and quality profile your library uses for that kind of thing, unmonitored unless Settings → Disc ripping → Monitor what is added is on.

A camera needs HTTPS

Browsers only hand a page the camera over https:// or on localhost. Over plain http:// on your network the scanning page says so and falls back to typing the number in, which works everywhere. Turn on SSL under Settings → General → Host, or put Rexarr behind a proxy with a certificate.

Where the numbers come from: MusicBrainz for music, which indexes barcodes properly, and UPCitemdb's trial endpoint for everything else — 100 lookups a day per address, no account for either. What comes back is a shop listing (Blade Runner 2049 [4K Ultra HD + Blu-ray]), so the edition, region, disc-count and seller noise is stripped before the title is matched. Both can simply not know a disc; when that happens, search for the title on the Discs page as usual.

API: GET /api/scan/qr.svg, POST /api/barcode/lookup, GET/POST /api/barcode/expected, DELETE /api/barcode/expected/:id.

Ripping to-do list

Radarr and Sonarr already keep a list of what they would like a better copy of — their Cutoff Unmet pages — and most of it waits for a download that may never come while the better copy sits on a shelf in the next room. With this on, the Discs page gains an Insert disc for… card that reads that list the other way round:

Column What it says
Title the film, or a series season with how many of its episodes are below the cutoff
On disk the quality you have now — the worst one in the season, when they differ
A disc would give a Blu-ray or a UHD Blu-ray, whichever would actually improve it

What it leaves out matters as much as what it shows: a 1080p remux is already what a Blu-ray holds, so those only appear when a UHD disc would help, and anything at 2160p remux is left out entirely — no disc on a shelf beats it. Titles whose barcode you have scanned are marked on the shelf and sorted first.

API: GET /api/wanted.

Path mappings

Translate the paths Radarr / Sonarr / Lidarr report into paths on this machine — needed whenever the *arr app runs in Docker or on another host:

Remote path (what the app says) Local path (what Rexarr opens) App
/data/media/movies /Volumes/Media/Movies radarr
/media /Volumes/Media sonarr

Rules: longest match wins; mappings apply both ways, so a rip folder on this machine is translated back into the path the app expects when Rexarr asks it to import. System → Status flags files an app reports that Rexarr cannot see, and Check import access does the same for the rip folder.