*Arr Service

Table of Contents

Features
Usage
Options Reference

Defined in /modules/services/arr.nix.

This NixOS module sets up multiple Servarr services.

Features

Compared to the stock module from nixpkgs, this one sets up, in a fully declarative manner LDAP and SSO integration as well as the API key.

Usage

Initial Configuration

The following snippet assumes a few blocks have been setup already:

{
  shb.certs.certs.letsencrypt.${domain}.extraDomains = [
    "moviesdl.${domain}"
    "seriesdl.${domain}"
    "subtitlesdl.${domain}"
    "booksdl.${domain}"
    "musicdl.${domain}"
    "indexer.${domain}"
  ];

  shb.arr = {
    radarr = {
      inherit domain;
      enable = true;
      ssl = config.shb.certs.certs.letsencrypt.${domain};
      authEndpoint = "https://${config.shb.authelia.subdomain}.${config.shb.authelia.domain}";
    };
    sonarr = {
      inherit domain;
      enable = true;
      ssl = config.shb.certs.certs.letsencrypt."${domain}";
      authEndpoint = "https://${config.shb.authelia.subdomain}.${config.shb.authelia.domain}";
    };
    bazarr = {
      inherit domain;
      enable = true;
      ssl = config.shb.certs.certs.letsencrypt."${domain}";
      authEndpoint = "https://${config.shb.authelia.subdomain}.${config.shb.authelia.domain}";
    };
    readarr = {
      inherit domain;
      enable = true;
      ssl = config.shb.certs.certs.letsencrypt."${domain}";
      authEndpoint = "https://${config.shb.authelia.subdomain}.${config.shb.authelia.domain}";
    };
    lidarr = {
      inherit domain;
      enable = true;
      ssl = config.shb.certs.certs.letsencrypt."${domain}";
      authEndpoint = "https://${config.shb.authelia.subdomain}.${config.shb.authelia.domain}";
    };
    jackett = {
      inherit domain;
      enable = true;
      ssl = config.shb.certs.certs.letsencrypt."${domain}";
      authEndpoint = "https://${config.shb.authelia.subdomain}.${config.shb.authelia.domain}";
    };
  };
}

The user and admin LDAP groups are created automatically.

API Keys

The API keys for each arr service can be created declaratively.

First, generate one secret for each service with nix run nixpkgs#openssl -- rand -hex 64 and store it in your secrets file (for example the SOPS file).

Then, add the API key to each service:

{
  shb.arr = {
    radarr = {
      settings = {
        ApiKey.source = config.shb.sops.secret."radarr/apikey".result.path;
      };
    };
    sonarr = {
      settings = {
        ApiKey.source = config.shb.sops.secret."sonarr/apikey".result.path;
      };
    };
    bazarr = {
      settings = {
        ApiKey.source = config.shb.sops.secret."bazarr/apikey".result.path;
      };
    };
    readarr = {
      settings = {
        ApiKey.source = config.shb.sops.secret."readarr/apikey".result.path;
      };
    };
    lidarr = {
      settings = {
        ApiKey.source = config.shb.sops.secret."lidarr/apikey".result.path;
      };
    };
    jackett = {
      settings = {
        ApiKey.source = config.shb.sops.secret."jackett/apikey".result.path;
      };
    };
  };

  shb.sops.secret."radarr/apikey".request = {
    mode = "0440";
    owner = "radarr";
    group = "radarr";
    restartUnits = [ "radarr.service" ];
  };
  shb.sops.secret."sonarr/apikey".request = {
    mode = "0440";
    owner = "sonarr";
    group = "sonarr";
    restartUnits = [ "sonarr.service" ];
  };
  shb.sops.secret."bazarr/apikey".request = {
    mode = "0440";
    owner = "bazarr";
    group = "bazarr";
    restartUnits = [ "bazarr.service" ];
  };
  shb.sops.secret."readarr/apikey".request = {
    mode = "0440";
    owner = "readarr";
    group = "readarr";
    restartUnits = [ "readarr.service" ];
  };
  shb.sops.secret."lidarr/apikey".request = {
    mode = "0440";
    owner = "lidarr";
    group = "lidarr";
    restartUnits = [ "lidarr.service" ];
  };
  shb.sops.secret."jackett/apikey".request = {
    mode = "0440";
    owner = "jackett";
    group = "jackett";
    restartUnits = [ "jackett.service" ];
  };
}

Application Dashboard

Integration with the dashboard contract is provided by the various dashboard options.

For example using the Homepage service:

{
  shb.homepage.servicesGroups.Media.services.Radarr = {
    sortOrder = 10;
    dashboard.request = config.shb.arr.radarr.dashboard.request;
    apiKey.result = config.shb.sops.secret."radarr/homepageApiKey".result;
  };
  shb.sops.secret."radarr/homepageApiKey" = {
    settings.key = "radarr/apikey";
    request = config.shb.homepage.servicesGroups.Media.services.Radarr.apiKey.request;
  };
  shb.homepage.servicesGroups.Media.services.Sonarr = {
    sortOrder = 11;
    dashboard.request = config.shb.arr.sonarr.dashboard.request;
    apiKey.result = config.shb.sops.secret."sonarr/homepageApiKey".result;
  };
  shb.sops.secret."sonarr/homepageApiKey" = {
    settings.key = "sonarr/apikey";
    request = config.shb.homepage.servicesGroups.Media.services.Sonarr.apiKey.request;
  };
  shb.homepage.servicesGroups.Media.services.Bazarr = {
    sortOrder = 12;
    dashboard.request = config.shb.arr.bazarr.dashboard.request;
    apiKey.result = config.shb.sops.secret."bazarr/homepageApiKey".result;
  };
  shb.sops.secret."bazarr/homepageApiKey" = {
    settings.key = "bazarr/apikey";
    request = config.shb.homepage.servicesGroups.Media.services.Bazarr.apiKey.request;
  };
  shb.homepage.servicesGroups.Media.services.Readarr = {
    sortOrder = 13;
    dashboard.request = config.shb.arr.readarr.dashboard.request;
    apiKey.result = config.shb.sops.secret."readarr/homepageApiKey".result;
  };
  shb.sops.secret."readarr/homepageApiKey" = {
    settings.key = "readarr/apikey";
    request = config.shb.homepage.servicesGroups.Media.services.Readarr.apiKey.request;
  };
  shb.homepage.servicesGroups.Media.services.Lidarr = {
    sortOrder = 14;
    dashboard.request = config.shb.arr.lidarr.dashboard.request;
    apiKey.result = config.shb.sops.secret."lidarr/homepageApiKey".result;
  };
  shb.sops.secret."lidarr/homepageApiKey" = {
    settings.key = "lidarr/apikey";
    request = config.shb.homepage.servicesGroups.Media.services.Lidarr.apiKey.request;
  };
  shb.homepage.servicesGroups.Media.services.Jackett = {
    sortOrder = 15;
    dashboard.request = config.shb.arr.jackett.dashboard.request;
    apiKey.result = config.shb.sops.secret."jackett/homepageApiKey".result;
  };
  shb.sops.secret."jackett/homepageApiKey" = {
    settings.key = "jackett/apikey";
    request = config.shb.homepage.servicesGroups.Media.services.Jackett.apiKey.request;
  };
}

This example reuses the API keys generated declaratively from the previous section.

Jackett Proxy

The Jackett service can be made to use a proxy with:

{
  shb.arr.jackett = {
    settings = {
      ProxyType = "0";
      ProxyUrl = "127.0.0.1:1234";
    };
  };
};

Options Reference

shb.arr.bazarr

Configuration for bazarr

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.enable

Whether to enable bazarr.

Type: boolean

Default:

false

Example:

true

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.authEndpoint

Endpoint to the SSO provider. Leave null to not have SSO configured.

Type: null or string

Default:

null

Example:

"https://authelia.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup

Backup configuration.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.request

Request part of the backup contract.

Options set by the requester module enforcing how to backup files.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.request.excludePatterns

File patterns to exclude.

Type: list of string

Default:

[
  ".db-shm"
  ".db-wal"
  ".mono"
]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.request.hooks

Hooks to run around the backup.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.request.hooks.afterBackup

Hooks to run after backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.request.hooks.beforeBackup

Hooks to run before backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.request.sourceDirectories

Directories to backup.

Type: non-empty (list of string)

Default:

[
  "/var/lib/bazarr"
]

Example:

"/var/lib/vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.request.user

Unix user doing the backups.

Type: string

Default:

"bazarr"

Example:

"vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.result

Result part of the backup contract.

Options set by the provider module that indicates the name of the backup and restore scripts.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.result.backupService

Name of service backing up the database.

This script can be ran manually to backup the database:

$ systemctl start backup.service

Type: string

Default:

"backup.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.backup.result.restoreScript

Name of script that can restore the database. One can then list snapshots with:

$ restore snapshots

And restore the database with:

$ restore restore latest

Type: string

Default:

"restore"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.dashboard

Dashboard contract consumer

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.dashboard.request

Request part of the dashboard contract.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.dashboard.request.externalUrl

URL at which the service can be accessed.

This URL should go through the reverse proxy.

Type: string

Default:

"https://\${config.shb.arr.bazarr.subdomain}.\${config.shb.arr.bazarr.domain}"

Example:

"https://jellyfin.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.dashboard.request.internalUrl

URL at which the service can be accessed directly.

This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.

Type: null or string

Default:

"http://127.0.0.1:6767"

Example:

"http://127.0.0.1:8081"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.dashboard.result

Result part of the dashboard contract.

No option is provided here.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.dataDir

Directory where bazarr stores data.

Type: string

Default:

"/var/lib/bazarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.domain

Domain under which bazarr will be served.

Type: string

Example:

"example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.ldapUserGroup

LDAP group a user must belong to be able to login.

Note that all users are admins too.

Type: string

Default:

"arr_user"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.settings

Specific options for bazarr.

Type: open submodule of (XML value)

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.settings.ApiKey

Path to api key secret file.

Type: submodule

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.settings.ApiKey.source

File containing the value.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.settings.ApiKey.transform

An optional function to transform the secret.

Type: raw value

Default:

null

Example:

v: "prefix-$${v}-suffix"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.settings.LogLevel

Log level.

Type: one of “debug”, “info”

Default:

"info"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.settings.Port

Port on which bazarr listens to incoming requests.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive) (read only)

Default:

6767

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.ssl

Path to SSL files

Type: null or (open submodule of anything)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.ssl.paths

Paths where the files for the certificate will be located.

This option is the contract output of the shb.certs.certs SSL block.

Type: open submodule of anything

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.ssl.paths.cert

Path to the cert file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.ssl.paths.key

Path to the key file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.ssl.systemdService

Systemd oneshot service used to generate the certificate. Ends with the .service suffix.

Use this if downstream services must wait for the certificates to be generated before starting.

Type: string

Example:

"cert-generator.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.bazarr.subdomain

Subdomain under which bazarr will be served.

Type: string

Example:

"bazarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett

Configuration for jackett

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.enable

Whether to enable jackett.

Type: boolean

Default:

false

Example:

true

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.authEndpoint

Endpoint to the SSO provider. Leave null to not have SSO configured.

Type: null or string

Default:

null

Example:

"https://authelia.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup

Backup configuration.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.request

Request part of the backup contract.

Options set by the requester module enforcing how to backup files.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.request.excludePatterns

File patterns to exclude.

Type: list of string

Default:

[
  ".db-shm"
  ".db-wal"
  ".mono"
]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.request.hooks

Hooks to run around the backup.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.request.hooks.afterBackup

Hooks to run after backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.request.hooks.beforeBackup

Hooks to run before backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.request.sourceDirectories

Directories to backup.

Type: non-empty (list of string)

Default:

[
  "/var/lib/jackett"
]

Example:

"/var/lib/vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.request.user

Unix user doing the backups.

Type: string

Default:

"jackett"

Example:

"vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.result

Result part of the backup contract.

Options set by the provider module that indicates the name of the backup and restore scripts.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.result.backupService

Name of service backing up the database.

This script can be ran manually to backup the database:

$ systemctl start backup.service

Type: string

Default:

"backup.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.backup.result.restoreScript

Name of script that can restore the database. One can then list snapshots with:

$ restore snapshots

And restore the database with:

$ restore restore latest

Type: string

Default:

"restore"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.dashboard

Dashboard contract consumer

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.dashboard.request

Request part of the dashboard contract.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.dashboard.request.externalUrl

URL at which the service can be accessed.

This URL should go through the reverse proxy.

Type: string

Default:

"https://\${config.shb.arr.jackett.subdomain}.\${config.shb.arr.jackett.domain}"

Example:

"https://jellyfin.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.dashboard.request.internalUrl

URL at which the service can be accessed directly.

This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.

Type: null or string

Default:

"http://127.0.0.1:9117"

Example:

"http://127.0.0.1:8081"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.dashboard.result

Result part of the dashboard contract.

No option is provided here.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.dataDir

Directory where jackett stores data.

Type: string

Default:

"/var/lib/jackett"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.domain

Domain under which jackett will be served.

Type: string

Example:

"example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.ldapUserGroup

LDAP group a user must belong to be able to login.

Note that all users are admins too.

Type: string

Default:

"arr_user"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings

Specific options for jackett.

Type: open submodule of (JSON value)

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.ApiKey

Path to api key secret file.

Type: submodule

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.ApiKey.source

File containing the value.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.ApiKey.transform

An optional function to transform the secret.

Type: raw value

Default:

null

Example:

v: "prefix-$${v}-suffix"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.FlareSolverrUrl

FlareSolverr endpoint.

Type: null or string

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.OmdbApiKey

File containing the Open Movie Database API key.

Type: null or (submodule)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.OmdbApiKey.source

File containing the value.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.OmdbApiKey.transform

An optional function to transform the secret.

Type: raw value

Default:

null

Example:

v: "prefix-$${v}-suffix"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.Port

Port on which jackett listens to incoming requests.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive) (read only)

Default:

9117

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.ProxyPort

Port of the proxy. Ignored if ProxyType is set to -1

Type: null or 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.ProxyType

-1 = disabled 0 = HTTP 1 = SOCKS4 2 = SOCKS5

Type: one of “-1”, “0”, “1”, “2”

Default:

"-1"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.settings.ProxyUrl

URL of the proxy. Ignored if ProxyType is set to -1

Type: null or string

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.ssl

Path to SSL files

Type: null or (open submodule of anything)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.ssl.paths

Paths where the files for the certificate will be located.

This option is the contract output of the shb.certs.certs SSL block.

Type: open submodule of anything

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.ssl.paths.cert

Path to the cert file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.ssl.paths.key

Path to the key file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.ssl.systemdService

Systemd oneshot service used to generate the certificate. Ends with the .service suffix.

Use this if downstream services must wait for the certificates to be generated before starting.

Type: string

Example:

"cert-generator.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.jackett.subdomain

Subdomain under which jackett will be served.

Type: string

Example:

"jackett"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr

Configuration for lidarr

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.enable

Whether to enable lidarr.

Type: boolean

Default:

false

Example:

true

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.authEndpoint

Endpoint to the SSO provider. Leave null to not have SSO configured.

Type: null or string

Default:

null

Example:

"https://authelia.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup

Backup configuration.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.request

Request part of the backup contract.

Options set by the requester module enforcing how to backup files.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.request.excludePatterns

File patterns to exclude.

Type: list of string

Default:

[
  ".db-shm"
  ".db-wal"
  ".mono"
]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.request.hooks

Hooks to run around the backup.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.request.hooks.afterBackup

Hooks to run after backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.request.hooks.beforeBackup

Hooks to run before backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.request.sourceDirectories

Directories to backup.

Type: non-empty (list of string)

Default:

[
  "/var/lib/lidarr"
]

Example:

"/var/lib/vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.request.user

Unix user doing the backups.

Type: string

Default:

"lidarr"

Example:

"vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.result

Result part of the backup contract.

Options set by the provider module that indicates the name of the backup and restore scripts.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.result.backupService

Name of service backing up the database.

This script can be ran manually to backup the database:

$ systemctl start backup.service

Type: string

Default:

"backup.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.backup.result.restoreScript

Name of script that can restore the database. One can then list snapshots with:

$ restore snapshots

And restore the database with:

$ restore restore latest

Type: string

Default:

"restore"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.dashboard

Dashboard contract consumer

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.dashboard.request

Request part of the dashboard contract.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.dashboard.request.externalUrl

URL at which the service can be accessed.

This URL should go through the reverse proxy.

Type: string

Default:

"https://\${config.shb.arr.lidarr.subdomain}.\${config.shb.arr.lidarr.domain}"

Example:

"https://jellyfin.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.dashboard.request.internalUrl

URL at which the service can be accessed directly.

This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.

Type: null or string

Default:

"http://127.0.0.1:8686"

Example:

"http://127.0.0.1:8081"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.dashboard.result

Result part of the dashboard contract.

No option is provided here.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.dataDir

Directory where lidarr stores data.

Type: string

Default:

"/var/lib/lidarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.domain

Domain under which lidarr will be served.

Type: string

Example:

"example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.ldapUserGroup

LDAP group a user must belong to be able to login.

Note that all users are admins too.

Type: string

Default:

"arr_user"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.settings

Specific options for lidarr.

Type: open submodule of (XML value)

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.settings.ApiKey

Path to api key secret file.

Type: submodule

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.settings.ApiKey.source

File containing the value.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.settings.ApiKey.transform

An optional function to transform the secret.

Type: raw value

Default:

null

Example:

v: "prefix-$${v}-suffix"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.settings.LogLevel

Log level.

Type: one of “debug”, “info”

Default:

"info"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.settings.Port

Port on which lidarr listens to incoming requests.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

8686

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.ssl

Path to SSL files

Type: null or (open submodule of anything)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.ssl.paths

Paths where the files for the certificate will be located.

This option is the contract output of the shb.certs.certs SSL block.

Type: open submodule of anything

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.ssl.paths.cert

Path to the cert file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.ssl.paths.key

Path to the key file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.ssl.systemdService

Systemd oneshot service used to generate the certificate. Ends with the .service suffix.

Use this if downstream services must wait for the certificates to be generated before starting.

Type: string

Example:

"cert-generator.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.lidarr.subdomain

Subdomain under which lidarr will be served.

Type: string

Example:

"lidarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr

Configuration for radarr

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.enable

Whether to enable radarr.

Type: boolean

Default:

false

Example:

true

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.authEndpoint

Endpoint to the SSO provider. Leave null to not have SSO configured.

Type: null or string

Default:

null

Example:

"https://authelia.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup

Backup configuration.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.request

Request part of the backup contract.

Options set by the requester module enforcing how to backup files.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.request.excludePatterns

File patterns to exclude.

Type: list of string

Default:

[
  ".db-shm"
  ".db-wal"
  ".mono"
]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.request.hooks

Hooks to run around the backup.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.request.hooks.afterBackup

Hooks to run after backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.request.hooks.beforeBackup

Hooks to run before backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.request.sourceDirectories

Directories to backup.

Type: non-empty (list of string)

Default:

[
  "/var/lib/radarr"
]

Example:

"/var/lib/vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.request.user

Unix user doing the backups.

Type: string

Default:

"radarr"

Example:

"vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.result

Result part of the backup contract.

Options set by the provider module that indicates the name of the backup and restore scripts.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.result.backupService

Name of service backing up the database.

This script can be ran manually to backup the database:

$ systemctl start backup.service

Type: string

Default:

"backup.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.backup.result.restoreScript

Name of script that can restore the database. One can then list snapshots with:

$ restore snapshots

And restore the database with:

$ restore restore latest

Type: string

Default:

"restore"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.dashboard

Dashboard contract consumer

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.dashboard.request

Request part of the dashboard contract.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.dashboard.request.externalUrl

URL at which the service can be accessed.

This URL should go through the reverse proxy.

Type: string

Default:

"https://\${config.shb.arr.radarr.subdomain}.\${config.shb.arr.radarr.domain}"

Example:

"https://jellyfin.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.dashboard.request.internalUrl

URL at which the service can be accessed directly.

This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.

Type: null or string

Default:

"http://127.0.0.1:7878"

Example:

"http://127.0.0.1:8081"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.dashboard.result

Result part of the dashboard contract.

No option is provided here.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.dataDir

Directory where radarr stores data.

Type: string

Default:

"/var/lib/radarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.domain

Domain under which radarr will be served.

Type: string

Example:

"example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.ldapUserGroup

LDAP group a user must belong to be able to login.

Note that all users are admins too.

Type: string

Default:

"arr_user"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.settings

Specific options for radarr.

Type: open submodule of (XML value)

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.settings.AnalyticsEnabled

Wether to send anonymous data or not.

Type: boolean

Default:

false

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.settings.ApiKey

Path to api key secret file.

Type: submodule

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.settings.ApiKey.source

File containing the value.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.settings.ApiKey.transform

An optional function to transform the secret.

Type: raw value

Default:

null

Example:

v: "prefix-$${v}-suffix"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.settings.LogLevel

Log level.

Type: one of “debug”, “info”

Default:

"info"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.settings.Port

Port on which radarr listens to incoming requests.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

7878

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.ssl

Path to SSL files

Type: null or (open submodule of anything)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.ssl.paths

Paths where the files for the certificate will be located.

This option is the contract output of the shb.certs.certs SSL block.

Type: open submodule of anything

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.ssl.paths.cert

Path to the cert file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.ssl.paths.key

Path to the key file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.ssl.systemdService

Systemd oneshot service used to generate the certificate. Ends with the .service suffix.

Use this if downstream services must wait for the certificates to be generated before starting.

Type: string

Example:

"cert-generator.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.radarr.subdomain

Subdomain under which radarr will be served.

Type: string

Example:

"radarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr

Configuration for readarr

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.enable

Whether to enable readarr.

Type: boolean

Default:

false

Example:

true

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.authEndpoint

Endpoint to the SSO provider. Leave null to not have SSO configured.

Type: null or string

Default:

null

Example:

"https://authelia.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup

Backup configuration.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.request

Request part of the backup contract.

Options set by the requester module enforcing how to backup files.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.request.excludePatterns

File patterns to exclude.

Type: list of string

Default:

[
  ".db-shm"
  ".db-wal"
  ".mono"
]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.request.hooks

Hooks to run around the backup.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.request.hooks.afterBackup

Hooks to run after backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.request.hooks.beforeBackup

Hooks to run before backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.request.sourceDirectories

Directories to backup.

Type: non-empty (list of string)

Default:

[
  "/var/lib/readarr"
]

Example:

"/var/lib/vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.request.user

Unix user doing the backups.

Type: string

Default:

"readarr"

Example:

"vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.result

Result part of the backup contract.

Options set by the provider module that indicates the name of the backup and restore scripts.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.result.backupService

Name of service backing up the database.

This script can be ran manually to backup the database:

$ systemctl start backup.service

Type: string

Default:

"backup.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.backup.result.restoreScript

Name of script that can restore the database. One can then list snapshots with:

$ restore snapshots

And restore the database with:

$ restore restore latest

Type: string

Default:

"restore"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.dashboard

Dashboard contract consumer

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.dashboard.request

Request part of the dashboard contract.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.dashboard.request.externalUrl

URL at which the service can be accessed.

This URL should go through the reverse proxy.

Type: string

Default:

"https://\${config.shb.arr.readarr.subdomain}.\${config.shb.arr.readarr.domain}"

Example:

"https://jellyfin.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.dashboard.request.internalUrl

URL at which the service can be accessed directly.

This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.

Type: null or string

Default:

"http://127.0.0.1:8787"

Example:

"http://127.0.0.1:8081"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.dashboard.result

Result part of the dashboard contract.

No option is provided here.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.dataDir

Directory where readarr stores data.

Type: string

Default:

"/var/lib/readarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.domain

Domain under which readarr will be served.

Type: string

Example:

"example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.ldapUserGroup

LDAP group a user must belong to be able to login.

Note that all users are admins too.

Type: string

Default:

"arr_user"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.settings

Specific options for readarr.

Type: open submodule of (XML value)

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.settings.ApiKey

Path to api key secret file.

Type: submodule

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.settings.ApiKey.source

File containing the value.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.settings.ApiKey.transform

An optional function to transform the secret.

Type: raw value

Default:

null

Example:

v: "prefix-$${v}-suffix"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.settings.LogLevel

Log level.

Type: one of “debug”, “info”

Default:

"info"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.settings.Port

Port on which readarr listens to incoming requests.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

8787

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.ssl

Path to SSL files

Type: null or (open submodule of anything)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.ssl.paths

Paths where the files for the certificate will be located.

This option is the contract output of the shb.certs.certs SSL block.

Type: open submodule of anything

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.ssl.paths.cert

Path to the cert file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.ssl.paths.key

Path to the key file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.ssl.systemdService

Systemd oneshot service used to generate the certificate. Ends with the .service suffix.

Use this if downstream services must wait for the certificates to be generated before starting.

Type: string

Example:

"cert-generator.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.readarr.subdomain

Subdomain under which readarr will be served.

Type: string

Example:

"readarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr

Configuration for sonarr

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.enable

Whether to enable sonarr.

Type: boolean

Default:

false

Example:

true

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.authEndpoint

Endpoint to the SSO provider. Leave null to not have SSO configured.

Type: null or string

Default:

null

Example:

"https://authelia.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup

Backup configuration.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.request

Request part of the backup contract.

Options set by the requester module enforcing how to backup files.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.request.excludePatterns

File patterns to exclude.

Type: list of string

Default:

[
  ".db-shm"
  ".db-wal"
  ".mono"
]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.request.hooks

Hooks to run around the backup.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.request.hooks.afterBackup

Hooks to run after backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.request.hooks.beforeBackup

Hooks to run before backup.

Type: list of string

Default:

[ ]

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.request.sourceDirectories

Directories to backup.

Type: non-empty (list of string)

Default:

[
  "/var/lib/sonarr"
]

Example:

"/var/lib/vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.request.user

Unix user doing the backups.

Type: string

Default:

"sonarr"

Example:

"vaultwarden"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.result

Result part of the backup contract.

Options set by the provider module that indicates the name of the backup and restore scripts.

Type: submodule

Default:

""

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.result.backupService

Name of service backing up the database.

This script can be ran manually to backup the database:

$ systemctl start backup.service

Type: string

Default:

"backup.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.backup.result.restoreScript

Name of script that can restore the database. One can then list snapshots with:

$ restore snapshots

And restore the database with:

$ restore restore latest

Type: string

Default:

"restore"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.dashboard

Dashboard contract consumer

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.dashboard.request

Request part of the dashboard contract.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.dashboard.request.externalUrl

URL at which the service can be accessed.

This URL should go through the reverse proxy.

Type: string

Default:

"https://\${config.shb.arr.sonarr.subdomain}.\${config.shb.arr.sonarr.domain}"

Example:

"https://jellyfin.example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.dashboard.request.internalUrl

URL at which the service can be accessed directly.

This URL should bypass the reverse proxy. It can be used for example to ping the service and making sure it is up and running correctly.

Type: null or string

Default:

"http://127.0.0.1:8989"

Example:

"http://127.0.0.1:8081"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.dashboard.result

Result part of the dashboard contract.

No option is provided here.

Type: submodule

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.dataDir

Directory where sonarr stores data.

Type: string

Default:

"/var/lib/sonarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.domain

Domain under which sonarr will be served.

Type: string

Example:

"example.com"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.ldapUserGroup

LDAP group a user must belong to be able to login.

Note that all users are admins too.

Type: string

Default:

"arr_user"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.settings

Specific options for sonarr.

Type: open submodule of (XML value)

Default:

{ }

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.settings.ApiKey

Path to api key secret file.

Type: submodule

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.settings.ApiKey.source

File containing the value.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.settings.ApiKey.transform

An optional function to transform the secret.

Type: raw value

Default:

null

Example:

v: "prefix-$${v}-suffix"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.settings.LogLevel

Log level.

Type: one of “debug”, “info”

Default:

"info"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.settings.Port

Port on which sonarr listens to incoming requests.

Type: 16 bit unsigned integer; between 0 and 65535 (both inclusive)

Default:

8989

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.ssl

Path to SSL files

Type: null or (open submodule of anything)

Default:

null

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.ssl.paths

Paths where the files for the certificate will be located.

This option is the contract output of the shb.certs.certs SSL block.

Type: open submodule of anything

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.ssl.paths.cert

Path to the cert file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.ssl.paths.key

Path to the key file.

Type: absolute path

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.ssl.systemdService

Systemd oneshot service used to generate the certificate. Ends with the .service suffix.

Use this if downstream services must wait for the certificates to be generated before starting.

Type: string

Example:

"cert-generator.service"

Declared by:

<selfhostblocks/modules/services/arr.nix>
shb.arr.sonarr.subdomain

Subdomain under which sonarr will be served.

Type: string

Example:

"sonarr"

Declared by:

<selfhostblocks/modules/services/arr.nix>