Skip to main content

Docker Installation

This guide will walk you through setting up Configarr using Docker.

tip

For quick starting and testing you can use the latest tag. But if you are ready and finished switch to fixed tag like 1.9.0 so you can update and do required changes if we release new versions. Solutions like Renovate are good for keeping your dependencies updated.

Quick Start

The fastest way to get started is using the official Docker image:

shell
docker run -d \
--name=configarr \
-v /path/to/config:/config \
ghcr.io/raydak-labs/configarr:latest

# Or use dockerhub image:

docker run -d \
--name=configarr \
-v /path/to/config:/config \
configarr/configarr:latest

For a more maintainable setup, we recommend using Docker Compose:

compose.yml
#version: "3.8"
services:
configarr:
image: ghcr.io/raydak-labs/configarr:latest
container_name: configarr
#user: 1000:1000 # Optional, defaults to root:root
environment:
- TZ=Etc/UTC
volumes:
- ./config:/app/config # Contains the config.yml and secrets.yml
- ./dockerrepos:/app/repos # Cache repositories
- ./custom/cfs:/app/cfs # Optional if custom formats locally provided
- ./custom/templates:/app/templates # Optional if custom templates
# restart: "no" # optional make sure this is set to no or removed. Default is no

Save this as docker-compose.yml and run:

shell
docker-compose run --rm configarr

Configuration

Volume Mappings

VolumeDescription
/app/configContains all configuration files and data. Can be changed with Environment Variables.
/app/reposContains cached repos. Can be changed with Environment Variables.
/app/cfsContains custom cfs. Can be changed with Environment Variables.
/app/templatesContains templates. Can be changed with Environment Variables.

Environment Variables

See Environment Variables

Basic Configuration

Create a configuration file at /path/to/config/config.yaml more information about the config file can be found here. You can also test everything with the Full Example locally.

Very basic configuration
#trashGuideUrl: https://github.com/BlackDark/fork-TRASH-Guides
#recyclarrConfigUrl: https://github.com/BlackDark/fork-recyclarr-configs
localCustomFormatsPath: /app/cfs
localConfigTemplatesPath: /app/templates

customFormatDefinitions:
- trash_id: example-in-config-cf
trash_scores:
default: -10000
trash_description: "Language: German Only"
name: "Language: Not German"
includeCustomFormatWhenRenaming: false
specifications:
- name: Not German Language
implementation: LanguageSpecification
negate: true
required: false
fields:
value: 4

sonarr:
instance1:
# Set the URL/API Key to your actual instance
base_url: http://sonarr:8989
api_key: !secret SONARR_API_KEY

quality_definition:
type: series

include:
#### Custom
- template: sonarr-cf # template name
- template: sonarr-quality

custom_formats:
# Movie Versions
- trash_ids:
- 9f6cbff8cfe4ebbc1bde14c7b7bec0de # IMAX Enhanced
quality_profiles:
- name: ExampleProfile
# score: 0 # Uncomment this line to disable prioritised IMAX Enhanced releases

radarr: {} # no radarr instance

Updating

To update to the latest version:

shell
docker-compose pull
docker-compose run --rm configarr

Troubleshooting

Running the container will output logs to the console. With those you can see what is happening and if there are any issues. Increase the log level with the LOG_LEVEL environment variable to get more detailed logs.

Common Issues

  • Permission Issues

    • Ensure user matches your required user
    • Check folder permissions on the config directory
    • after changing the user, adjust the user in the git repos (TRaSH-Guides, recyclarr) to match
  • Connection Issues

    • Verify Sonarr/Radarr URLs are accessible from the container
    • Confirm API keys are correct
    • Check network connectivity between containers if using Docker networks
  • Configuration Issues

    • Validate your YAML syntax
    • Ensure all required fields are present in config.yaml
  • Container restarting

    • Ensure you have not set restart policies and running with docker-compose up -d. This triggers the docker daemon to restart the container every minute.
    • Scheduling is NOT implemented into configarr as described here. Therefore please check the Scheduled example

Need more help? open an issue.