
## This API key must be copied from your notifiarr.com account.
api_key = "api-key-from-notifiarr.com"

## Setting a UI password enables the human accessible web GUI. Must be at least 9 characters.
## The default username is admin; change it by setting ui_password to "username:password"
## Set to "webauth" to disable the login form and use only proxy authentication. See upstreams, below.
## Your auth proxy must pass the x-webauth-user header if you set this to "webauth".
## You may also set a custom auth header by setting to "webauth:<header>" e.g. "webauth:remote-user"
## Disable auth by setting this to "noauth". Not recommended. Requires "upstreams" being set.
ui_password = ""

## The ip:port to listen on for incoming HTTP requests. 0.0.0.0 means all/any IP and is recommended!
## You may use "127.0.0.1:5454" to listen only on localhost; good if using a local proxy.
## This is used to receive Plex webhooks and Media Request commands.
##
bind_addr = "0.0.0.0:5454"

## This application can update itself on Windows systems.
## Set this to "daily" to check GitHub every day for updates.
## You may also set it to a Go duration like "12h" or "72h".
## THIS ONLY WORKS ON WINDOWS
auto_update = "off"

## Quiet makes the app not log anything to output.
## Recommend setting log files if you make the app quiet.
## This is always true on Windows and macOS app.
## Log files are automatically written on those platforms.
##
quiet = false

## Debug prints more data and json payloads. This increases application memory usage.
debug = false
max_body = 0 # maximum body size for debug logs. 0 = no limit.

## All API paths start with /api. This does not affect incoming /plex webhooks.
## Change it to /somethingelse/api by setting urlbase to "/somethingelse"
##
urlbase = "/notifiarr"

## Allowed upstream networks. Networks here are allowed to send two special headers:
## (1) x-forwarded-for (2) x-webauth-user
## The first header sets the IPs in logs.
## The second header allows an auth proxy to set a logged-in username. Be careful.
##
## Set this to your reverse proxy server's IP or network. If you leave off the mask,
## then /32 or /128 is assumed depending on IP version. Empty by default. Example:
##
#upstreams = [ "127.0.0.1/32", "::1/128" ]

## If you provide a cert and key file (pem) paths, this app will listen with SSL/TLS.
## Uncomment both lines and add valid file paths. Make sure this app can read them.
##
#ssl_key_file  = '/path/to/cert.key'
#ssl_cert_file = '/path/to/cert.key'

## If you set these, logs will be written to these files.
## If blank on windows or macOS, log file paths are chosen for you.
log_file = '~/.config/notifiarr/notifiarr.log'
http_log = '~/.config/notifiarr/notifiarr.http.log'
##
## Set this to the number of megabytes to rotate files.
log_file_mb = 100
##
## How many files to keep? 0 = all.
log_files = 0
##
## Unix file mode for new log files. Umask also affects this.
## Missing, blank or 0 uses default of 0600. Permissive is 0644. Ignored by Windows.
file_mode = "0600"

## Web server and website timeout.
##
timeout = "1m"

## This application can integrate with apt on Debian-based OSes.
## Set apt to true to enable this integration. A true setting causes
## notifiarr to relay apt package install/update hooks to notifiarr.com.
##
apt = false

## Setting serial to true makes the app use fewer threads when polling apps.
## This spreads CPU usage out and uses a bit less memory.
serial = false

## Retries controls how many times to retry requests to notifiarr.com.
## Sometimes cloudflare returns a 521, and this mitigates those problems.
## Setting this to 0 will take the default of 4. Use 1 to disable retrying.
retries = 4

##################
# Starr Settings #
##################

## The API keys are specific to the app. Get it from Settings -> General.
## Configurations for unused apps are harmless. Set URL and API key for
## apps you have and want to make requests to using Media Bot.
## See the Service Checks section below for information about setting the names.
##
## Examples follow. UNCOMMENT (REMOVE #), AT MINIMUM: [[header]], url, api_key
## Setting any application timeout to "-1s" will disable that application.

#[[lidarr]]
#name     = "" # Set a name to enable checks of your service.
#url      = "http://lidarr:8989/"
#api_key  = ""


#[[prowlarr]]
#name     = "" # Set a name to enable checks of your service.
#url      = "http://prowlarr:9696/"
#api_key  = ""


#[[radarr]]
#name      = "" # Set a name to enable checks of your service.
#url       = "http://127.0.0.1:7878/"
#api_key   = ""


#[[readarr]]
#name      = "" # Set a name to enable checks of your service.
#url       = "http://127.0.0.1:8787/"
#api_key   = ""


#[[sonarr]]
#name      = ""  # Set a name to enable checks of your service.
#url       = "http://sonarr:8989/"
#api_key   = ""


# Download Client Configs (below) are used for dashboard state and service checks.

#[[deluge]]
#name     = ""  # Set a name to enable checks of your service.
#url      = "http://deluge:8112/"
#password = ""


#[[qbit]]
#name     = ""  # Set a name to enable checks of your service.
#url      = "http://qbit:8080/"
#user     = ""
#pass     = ""


#[[rtorrent]]
#name     = ""  # Set a name to enable checks of your service.
#url      = "http://rtorrent:5000/"
#user     = ""
#pass     = ""


#[[nzbget]]
#name     = ""  # Set a name to enable checks of your service.
#url      = "http://nzbget:6789/"
#user     = ""
#pass     = ""


#[[sabnzbd]]
#name     = ""  # Set a name to enable checks of this application.
#url      = "http://sabnzbd:8080/"
#api_key  = ""


#################
# Plex Settings #
#################

## Find your token: https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/
##
#[plex]
#url     = "http://localhost:32400/" # Your plex URL
#token   = "" # your plex token; get this from a web inspector

#####################
# Tautulli Settings #
#####################

# Enables email=>username map. Set a name to enable service checks.
# Must uncomment [tautulli], 'api_key' and 'url' at a minimum.

#[tautulli]
#  name    = "" # only set a name to enable service checks.
#  url     = "http://localhost:8181/" # Your Tautulli URL
#  api_key = "" # your tautulli api key; get this from settings

##################
# MySQL Snapshot #
##################

# Enables MySQL process list in snapshot output.
# Adding a name to a server enables TCP service checks.
# Example Grant:
# GRANT PROCESS ON *.* to 'notifiarr'@'localhost'

#[[snapshot.mysql]]
#name = "" # only set a name to enable service checks.
#host = "localhost:3306"
#user = "notifiarr"
#pass = "password"

###################
# Nvidia Snapshot #
###################

# The app will automatically collect Nvidia data if nvidia-smi is present.
# Use the settings below to disable Nvidia GPU collection, or restrict collection to only specific Bus IDs.
# SMI Path is found automatically if left blank. Set it to path to nvidia-smi (nvidia-smi.exe on Windows).

[snapshot.nvidia]
disabled = false
smi_path = ''''''
bus_ids  = []

##################
# Service Checks #
##################

## This application performs service checks on configured services at the specified interval.
## The service states are sent to Notifiarr.com. Failed services generate a notification.
## Setting names on Starr apps (above) enables service checks for that app.
## Setting the Interval to "-1s" (Disabled in UI) will disable service checks on that named instance.
## Use the [[service]] directive to add more service checks. Example below.

[services]
  disabled = false # Setting this to true disables all service checking routines.
  parallel = 1     # How many services to check concurrently. 1 should be enough.
  interval = "10m" # How often to send service states to Notifiarr.com. Minimum = 5m.
  log_file = ''    # Service Check logs go to the app log by default. Change that by setting a services.log file here.

## Uncomment the following section to create a service check on a URL or IP:port.
## You may include as many [[service]] sections as you have services to check.
## Do not add Radarr, Sonarr, Readarr, Prowlarr, or Lidarr here! Add a name to enable their checks.
##
## Example with comments follows.
#[[service]]
#  name     = "MyServer"          # name must be unique
#  type     = "http"              # type can be "http" or "tcp"
#  check    = 'http://127.0.0.1/'  # url for 'http', host/IP:port for 'tcp'
#  expect   = "200"               # return code to expect (for http only)
#  timeout  = "10s"               # how long to wait for tcp or http checks.
#  interval = "5m"                # how often to check this service.

## Another example. Remember to uncomment [[service]] if you use this!
##
#[[service]]
#  name    = "Bazarr"
#  type    = "http"
#  check   = 'http://10.1.1.2:6767/series/'
#  expect  = "200"
#  timeout = "10s"


######################
# File & Log Watcher #
######################

## Tail a log file, regex match lines, and send notifications.
## Example:

#[[watch_file]]
#  path  = '/var/log/system.log'
#  skip  = '''error'''
#  regex = '''[Ee]rror'''
#  poll  = false
#  pipe  = false
#  must_exist = false
#  log_match  = true



###################
# Custom Commands #
###################

## Run and trigger custom commands.
## Commands may have required arguments thet can be passed in when the command is run.
## These use the format ({regex}) - a regular expression wrapped by curly braces and parens.
## The example below allows a user to run any combination of ls -la on /usr, /home, or /tmp:
## command = "/bin/ls ({-la|-al|-l|-a}) ({/usr|/home|/tmp})"
##
## Full Example (remove the leading # hashes to use it):

#[[command]]
#  name    = 'some-name-for-logs'
#  command = '/var/log/system.log'
#  shell   = false
#  log     = true
#  notify  = true
#  timeout = "10s"
