Skip to content

Configuration Overview

PrepArr uses a declarative configuration model. You describe the desired state of your Servarr instance in a configuration file, and PrepArr reconciles the running instance to match.

PrepArr loads configuration from three sources, merged in priority order:

  1. CLI arguments (highest priority) — --postgres-host=localhost
  2. Environment variablesPOSTGRES_HOST=localhost
  3. Configuration file — JSON or YAML file at CONFIG_PATH
  4. Default values (lowest priority) — Built-in defaults

Higher-priority sources override lower-priority ones for the same setting.

The configuration file defines the desired state of your Servarr instance. It can be JSON or YAML, specified via the CONFIG_PATH environment variable.

{
"apiKey": "2bac5d00dca43258313c734821a15c4c",
"prowlarrSync": true,
"rootFolders": [
{ "path": "/tv", "accessible": true }
],
"qualityProfiles": [...],
"downloadClients": [...],
"customFormats": [...],
"mediaManagement": {...},
"naming": {...}
}
apiKey: 2bac5d00dca43258313c734821a15c4c
prowlarrSync: true
rootFolders:
- path: /tv
accessible: true
qualityProfiles: [...]
downloadClients: [...]
PropertyTypeDescription
apiKeystring32-character hex API key. Auto-generated if not provided.
prowlarrSyncbooleanEnable Prowlarr indexer sync. Default: false.
rootFoldersarrayRoot folder definitions
qualityProfilesarrayQuality profile definitions
customFormatsarrayCustom format definitions
downloadClientsarrayDownload client definitions
indexersarrayIndexer definitions
applicationsarrayProwlarr application sync configs
mediaManagementobjectMedia management settings
namingobjectNaming conventions
qualityDefinitionsarrayQuality size limits
releaseProfilesarrayRelease scoring (Sonarr only)
qbittorrentobjectqBittorrent-specific settings
bazarrobjectBazarr subtitle manager settings

The sidecar compares each configuration section against the current state of the Servarr instance:

  • Create — Resources in your config that don’t exist in Servarr are created
  • Update — Resources that exist but differ from your config are updated
  • Delete — Resources in Servarr that aren’t in your config are removed (for CRUD resources)
  • Skip — Resources that match are left unchanged

Some configuration sections (like media management and naming) only support updates, not create/delete, since they are single-value settings rather than collections.