#ReadAIrr Environment Variables

ReadAIrr still uses the inherited Readarr configuration namespace in the current app repo. Environment variables therefore use the READARR__... prefix even when the user-facing project name is ReadAIrr.

The pattern is:

READARR__CONFIGNAMESPACE__CONFIGITEM

For example, READARR__SERVER__PORT=8787 maps to the Readarr:Server:Port configuration value.

Do not rename these variables to READAIRR__... unless the app code is changed first. The current app reads Readarr:App, Readarr:Auth, Readarr:Log, Readarr:Postgres, Readarr:Server, and Readarr:Update. {.is-warning}

#Configuration Namespaces

#Environment Variables Table

Config Area Option Full Environment Variable
APP InstanceName READARR__APP__INSTANCENAME
APP Theme READARR__APP__THEME
APP LaunchBrowser READARR__APP__LAUNCHBROWSER
AUTH ApiKey READARR__AUTH__APIKEY
AUTH Enabled READARR__AUTH__ENABLED
AUTH Method READARR__AUTH__METHOD
AUTH Required READARR__AUTH__REQUIRED
AUTH TrustCgnatIpAddresses READARR__AUTH__TRUSTCGNATIPADDRESSES
LOG Level READARR__LOG__LEVEL
LOG FilterSentryEvents READARR__LOG__FILTERSENTRYEVENTS
LOG Rotate READARR__LOG__ROTATE
LOG Sql READARR__LOG__SQL
LOG ConsoleLevel READARR__LOG__CONSOLELEVEL
LOG AnalyticsEnabled READARR__LOG__ANALYTICSENABLED
LOG SyslogServer READARR__LOG__SYSLOGSERVER
LOG SyslogPort READARR__LOG__SYSLOGPORT
LOG SyslogLevel READARR__LOG__SYSLOGLEVEL
POSTGRES Host READARR__POSTGRES__HOST
POSTGRES Port READARR__POSTGRES__PORT
POSTGRES User READARR__POSTGRES__USER
POSTGRES Password READARR__POSTGRES__PASSWORD
POSTGRES MainDb READARR__POSTGRES__MAINDB
POSTGRES LogDb READARR__POSTGRES__LOGDB
POSTGRES CacheDb READARR__POSTGRES__CACHEDB
SERVER UrlBase READARR__SERVER__URLBASE
SERVER BindAddress READARR__SERVER__BINDADDRESS
SERVER Port READARR__SERVER__PORT
SERVER EnableSsl READARR__SERVER__ENABLESSL
SERVER SslPort READARR__SERVER__SSLPORT
SERVER SslCertPath READARR__SERVER__SSLCERTPATH
SERVER SslCertPassword READARR__SERVER__SSLCERTPASSWORD
UPDATE Mechanism READARR__UPDATE__MECHANISM
UPDATE Automatically READARR__UPDATE__AUTOMATICALLY
UPDATE ScriptPath READARR__UPDATE__SCRIPTPATH
UPDATE Branch READARR__UPDATE__BRANCH

The current app repo does not define READARR__LOG__SIZELIMIT, READARR__LOG__CONSOLEFORMAT, or READARR__LOG__DBENABLED. Public container channels are selected with the Docker image tag, not with these app config variables.

#Docker Compose Example

services:
  readarr:
    image: ghcr.io/readairr/app:prod
    user: "99:100"
    environment:
      HOME: /config
      TZ: America/Los_Angeles
      UMASK: "022"
      READARR__SERVER__URLBASE: /readarr
      READARR__POSTGRES__HOST: postgres
      READARR__POSTGRES__USER: readarr
      READARR__POSTGRES__PASSWORD: readarr_password
      READARR__POSTGRES__MAINDB: readarr-main
      READARR__POSTGRES__LOGDB: readarr-log
      READARR__POSTGRES__CACHEDB: readarr-cache
    ports:
      - "8787:8787"
    volumes:
      - /opt/arrs/config/readarr:/config
      - /mnt/unraid/downloads:/downloads
      - /mnt/unraid/audiobooks:/audiobooks

The first-party deploy/compose.yml in the app repo uses shell variables such as READARR_IMAGE, READARR_UID, READARR_GID, and READARR_PORT to configure Docker Compose itself. Those deployment variables are different from the READARR__... app configuration variables above. Use ghcr.io/readairr/app:prod for normal public installs, ghcr.io/readairr/app:val for validation builds, and ghcr.io/readairr/app:dev for active development.

#Native Shell Examples

Linux/macOS:

export READARR__SERVER__PORT=8787
export READARR__SERVER__URLBASE=/readarr

Windows:

set READARR__SERVER__PORT=8787
set READARR__SERVER__URLBASE=/readarr

Restart ReadAIrr after changing environment variables.