File Structure
This page describes the directory structure used by Recyclarr. Recyclarr separates its files into two root directories: a configuration directory for user data that should be backed up, and a data directory for ephemeral files that can be regenerated.
By default, both directories point to the same location. You can separate them using environment variables for cleaner backup workflows.
Configuration Directory
The configuration directory holds user configuration and state. Everything here should be included in backups.
| Platform | Default Location |
|---|---|
| Windows | %APPDATA%\recyclarr |
| Linux | ~/.config/recyclarr |
| MacOS | ~/Library/Application Support/recyclarr |
| Docker | /config |
Override with the RECYCLARR_CONFIG_DIR environment variable.
Contents
<config directory>/
├── recyclarr.yml
├── configs/
├── includes/
├── settings.yml
└── state/
Data Directory
The data directory holds ephemeral files that Recyclarr can regenerate on its own. These do not need to be backed up.
If RECYCLARR_DATA_DIR is not set, data files are stored in the configuration directory
(the default behavior from prior versions).
Contents
<data directory>/
├── resources/
└── logs/
└── cli/
Default YAML Configuration Files
Configuration files may be located in multiple places, each documented in the sections that follow. For all supported locations, the following behavior applies:
- All methods may be used together and all corresponding YAML files will be loaded.
- You don't have to use all locations; you can choose only the ones you want to use.
- If at least one configuration file is not found, it will result in an error.
- All YAML files must have the
ymloryamlextension.
File: recyclarr.yml
The default YAML configuration file is named recyclarr.yml and it is always located in the
configuration directory (listed above based on platform). Example (using docker path):
/config/recyclarr.yml
Directory: configs
Under the configuration directory, there is a subdirectory named configs in which you can place
any number of configuration YAML files. This system works especially well in Docker, where you don't
really have an easy way to specify custom CLI arguments. The following requirements must be met:
- All files must have the
.ymlor.yamlextension in order to be recognized. - Every single YAML file placed here will be loaded as if every file were specified in the
--configcommand line argument. This behavior is non-recursive; meaning if you place YAML files in subdirectories underconfigs/, they will not be loaded. - The names of the files are unimportant and can be whatever you want.
Include templates should not be placed here; use the includes directory
instead.
Include Templates Directory
A directory named includes exists under the configuration directory where local include
templates may be placed. Any relative paths to include templates will start at
this directory.
For example, if I have the following include directive in a configuration file named foo.yml:
include:
- config: bar/reusable.yml
The expected file structure of my includes directory would be visualized as follows:
.
├── configs/
│ └── foo.yml
└── includes/
└── bar/
└── reusable.yml
For more information about include templates, see the respective behaviors page.
Configuration files (non-includes) should not be placed here; use the configs
directory for those.