parent
7c0579629f
commit
963ef9a8b3
@ -0,0 +1,123 @@
|
||||
Recyclarr has an official Docker image hosted by the Github Container Registry (GHCR). The image
|
||||
name is `ghcr.io/recyclarr/recyclarr`.
|
||||
|
||||
## Docker Compose Example
|
||||
|
||||
Before we get into the details of how to use the Docker image, I want to start with an example. I
|
||||
personally hardly ever run `docker` commands directly. Instead, I use `docker compose` mainly
|
||||
because the `docker-compose.yml` file is a fantastic way to keep configuration details in one place.
|
||||
Thus, for the remainder of this page, all instruction and advice will be based on the example YAML
|
||||
below. I highly recommend you set up your own `docker-compose.yml` this way. I understand there will
|
||||
be minor differences for everyone's use case, but it should mostly be taken verbatim.
|
||||
|
||||
```yml
|
||||
version: '3'
|
||||
|
||||
networks:
|
||||
recyclarr:
|
||||
name: recyclarr
|
||||
external: true
|
||||
|
||||
services:
|
||||
recyclarr:
|
||||
image: ghcr.io/recyclarr/recyclarr
|
||||
container_name: recyclarr
|
||||
init: true
|
||||
networks: [recyclarr]
|
||||
volumes:
|
||||
- ./config:/config
|
||||
environment:
|
||||
CRON_SCHEDULE: "* * * * *"
|
||||
```
|
||||
|
||||
Here is a breakdown of the above YAML:
|
||||
|
||||
- `networks`<br>
|
||||
You are going to ultimately want Recyclarr to be able to connect to your Sonarr and Radarr
|
||||
instances. How you have Radarr and Sonarr hosted on your system will greatly impact how this part
|
||||
gets set up. In my case, I have a dedicated docker bridge network (in this example, named
|
||||
`recyclarr`) for those services. Naturally, that means I want Recyclarr to also run on that bridge
|
||||
network so it can access those services without going out and back in through my reverse proxy.
|
||||
- `image`<br>
|
||||
The official Recyclarr image, hosted on Github.
|
||||
- `container_name`<br>
|
||||
Optional, but I don't want the funky `prefix_recyclarr` name that Docker Compose uses for services
|
||||
by default.
|
||||
- `init`<br>
|
||||
**Required**: This will ensure that the container can be stopped without terminating it when you
|
||||
run `docker compose down` or `docker compose stop`. Internally, this runs Recyclarr using
|
||||
[tini](https://github.com/krallin/tini). Please visit that repo to understand the benefits in
|
||||
detail, if you're interested.
|
||||
|
||||
## Configuration
|
||||
|
||||
### Volumes
|
||||
|
||||
- `/config`<br>
|
||||
This is the application data directory for Recyclarr. In this directory, files like
|
||||
`recyclarr.yml` and `settings.yml` exist, as well as `logs`, `cache`, and other directories.
|
||||
|
||||
### Environment
|
||||
|
||||
- `CRON_SCHEDULE` (Default: `@daily`)<br>
|
||||
Standard cron syntax for how often you want Recyclarr to run (see [Cron Mode](#cron-mode)).
|
||||
|
||||
## Modes
|
||||
|
||||
The docker container can operate in one of two different ways, which are documented below.
|
||||
|
||||
**TIP:** The first time you run Recyclarr in docker, it will automatically run the `create-config`
|
||||
subcommand to create your `recyclarr.yml` file in the `/config` directory (in the container) if that
|
||||
file does not exist yet.
|
||||
|
||||
### Manual Mode
|
||||
|
||||
In manual mode, the container starts up, runs a user-specified operation, and then exits. This is
|
||||
semantically identical to running Recyclarr directly on your host machine, but without all of the
|
||||
set up requirements.
|
||||
|
||||
The general syntax is:
|
||||
|
||||
```txt
|
||||
docker compose run --rm recyclarr [subcommand] [options]
|
||||
```
|
||||
|
||||
Where:
|
||||
|
||||
- `[subcommand]` is one of the supported Recyclarr subcommands, such as `sonarr` and `radarr`.
|
||||
- `[options]` are any options supported by that subcommand (e.g. `--debug`, `--preview`).
|
||||
|
||||
Examples:
|
||||
|
||||
```sh
|
||||
# Sync Sonarr with debug logs
|
||||
docker compose run --rm recyclarr sonarr --debug
|
||||
|
||||
# Do a preview (dry run) sync for Radarr
|
||||
docker compose run --rm recyclarr radarr --preview --debug
|
||||
```
|
||||
|
||||
**TIP:** The `--rm` option ensures the container is deleted after it runs (without it, your list of
|
||||
stopped containers will start to grow the more often you run it manually).
|
||||
|
||||
### Cron Mode
|
||||
|
||||
In this mode, no immediate action is performed. Rather, the container remains alive and continuously
|
||||
runs both Sonarr and Radarr sync at whatever `CRON_SCHEDULE` you set (default is daily).
|
||||
|
||||
If either the Sonarr or Radarr sync operations fail, they will not prevent each other from
|
||||
proceeding. In other words, if the order the sync happens is first Sonarr and then Radarr, if Sonarr
|
||||
fails, the Radarr sync will still proceed after. From a linux shell perspective, it effectively runs
|
||||
this command:
|
||||
|
||||
```sh
|
||||
recyclarr sonarr; recyclarr radarr
|
||||
```
|
||||
|
||||
To enter Cron Mode, you simply start the container in background mode:
|
||||
|
||||
```sh
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
This runs it without any subcommand or options, which will result in this mode being used.
|
Loading…
Reference in new issue