Promote Route::Readarr from a unit stub to a tuple variant and wire Readarr through every layer, mirroring the Lidarr tree. Readarr appears as a fourth servarr tab and its library view renders the Authors table. Adds ReadarrData and its modals, the tick and context clue modules, the top-level ReadarrHandler, ReadarrUi with the Authors library view, and an empty ReadarrCommand behind ReadarrCliHandler. The default port is 8787. Promoting the route variant compiles cleanly without any of the arms that give it behaviour, so all six of those sites are wired explicitly here: App::on_tick, handlers::handle_events, handle_prompt_toggle, ServarrContextClueProvider, ui(), and verify_config_present_for_cli. Each was checked by removing the arm and confirming its covering assertion then fails. ReadarrEvent and ReadarrCommand are both declared empty. They gain variants alongside the network calls and CLI commands that use them, which keeps each later change to a single function. Adding the tab changes the rendered tab bar, so 13 existing snapshots regenerate. The only delta in each is that single tab bar line. This scaffold adds 24 dead_code warnings, all inside the Readarr tree and none outside it. They clear as the handlers, UI, network events, and CLI commands that consume these items land: block arrays awaiting their accepts implementations and BlockSelectionState seeding, modal and state fields awaiting their handlers, the CLI handler fields awaiting an inhabited command enum, and the top-level handler fields awaiting sub-handlers. The count must strictly decrease from here, so a later increase is a defect rather than transient noise. The 12 pre-existing collapsible_match warnings are unrelated and untouched.
600 lines
29 KiB
Markdown
600 lines
29 KiB
Markdown
# managarr - A TUI and CLI to manage your Servarrs
|
|
|
|

|
|

|
|

|
|
[](https://crates.io/crates/managarr)
|
|

|
|
[](https://codecov.io/gh/Dark-Alex-17/managarr)
|
|

|
|
[](https://github.com/Dark-Alex-17/managarr/releases)
|
|

|
|
[](https://matrix.to/#/#managarr:matrix.org)
|
|
|
|
Managarr is a TUI and CLI to help you manage your HTPC (Home Theater PC). Built with 🤎 in Rust!
|
|
|
|

|
|
|
|
## What Servarrs are supported?
|
|
|
|
- [x]  [Radarr](https://wiki.servarr.com/radarr)
|
|
- [x]  [Sonarr](https://wiki.servarr.com/en/sonarr)
|
|
- [x]  [Lidarr](https://wiki.servarr.com/en/lidarr)
|
|
- [x]  [Readarr](https://wiki.servarr.com/en/readarr)
|
|
- [ ]  [Prowlarr](https://wiki.servarr.com/en/prowlarr)
|
|
- [ ]  [Whisparr](https://wiki.servarr.com/whisparr)
|
|
- [ ]  [Bazarr](https://www.bazarr.media/)
|
|
- [ ]  [Tautulli](https://tautulli.com/)
|
|
|
|
## Try Out the Demo
|
|
To try out Managarr before linking it to your HTPC, you can use the purpose built [managarr-demo](https://github.com/Dark-Alex-17/managarr-demo) repository.
|
|
Simply run the following command to start a demo:
|
|
|
|
```shell
|
|
curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/managarr-demo.sh > /tmp/managarr-demo.sh && bash /tmp/managarr-demo.sh
|
|
```
|
|
|
|
Alternatively, you can try out the demo container without downloading anything by visiting the [Managarr Demo site](https://managarr-demo.alexjclarke.com).
|
|
|
|
## Installation
|
|
|
|
### Cargo
|
|
If you have Cargo installed, then you can install Managarr from Crates.io:
|
|
|
|
```shell
|
|
cargo install managarr
|
|
|
|
# If you encounter issues installing, try installing with '--locked'
|
|
cargo install --locked managarr
|
|
```
|
|
|
|
### Docker
|
|
Run Managarr as a docker container by mounting your `config.yml` file to `/root/.config/managarr/config.yml`. For example:
|
|
```shell
|
|
docker run --rm -it -v /home/aclarke/.config/managarr/config.yml:/root/.config/managarr/config.yml darkalex17/managarr:latest
|
|
```
|
|
|
|
You can also clone this repo and run `just build-docker` to build a docker image locally and run it using the above command.
|
|
|
|
Please note that you will need to create and populate your configuration file first before starting the container. Otherwise, the container will fail to start.
|
|
|
|
**Note:** If you run into errors using relative file paths when mounting the volume with the configuration file, try using an absolute path.
|
|
|
|
### Homebrew (Mac and Linux)
|
|
To install Managarr from Homebrew, install the Managarr tap. Then you'll be able to install Managarr:
|
|
|
|
```shell
|
|
brew tap Dark-Alex-17/managarr
|
|
brew install managarr
|
|
|
|
# If you need to be more specific, use the following:
|
|
brew install Dark-Alex-17/managarr/managarr
|
|
```
|
|
|
|
To upgrade to a newer version of Managarr:
|
|
```shell
|
|
brew upgrade managarr
|
|
```
|
|
|
|
### Nix (Externally Maintained)
|
|
To install Managarr on NixOS, you can use the following command:
|
|
|
|
```shell
|
|
nix-env --install managarr
|
|
|
|
# Alternatively, for non-NixOS users, you can spawn a temporary shell with Managarr available like so:
|
|
nix-shell -p managarr
|
|
```
|
|
|
|
### Chocolatey (Windows)
|
|
The Managarr Chocolatey package is located [here](https://community.chocolatey.org/packages/managarr). Please note that validation
|
|
of Chocolatey packages take quite some time, and thus the package may not be available immediately after a new release.
|
|
|
|
```powershell
|
|
choco install managarr
|
|
|
|
# Some newer releases may require a version number, so you can specify it like so:
|
|
choco install managarr --version=0.7.0
|
|
```
|
|
|
|
To upgrade to the latest and greatest version of Managarr:
|
|
```powershell
|
|
choco upgrade managarr
|
|
|
|
# To upgrade to a specific version:
|
|
choco upgrade managarr --version=0.7.0
|
|
```
|
|
|
|
### Manual
|
|
Binaries are available on the [releases](https://github.com/Dark-Alex-17/managarr/releases) page for the following platforms:
|
|
|
|
| Platform | Architecture(s) |
|
|
|----------------|----------------------------|
|
|
| macOS | x86_64, arm64 |
|
|
| Linux GNU/MUSL | x86_64,armv6,armv7,aarch64 |
|
|
| Windows | x86_64,aarch64 |
|
|
|
|
#### Windows Instructions
|
|
To use a binary from the releases page on Windows, do the following:
|
|
|
|
1. Download the latest [binary](https://github.com/Dark-Alex-17/managarr/releases) for your OS.
|
|
2. Use 7-Zip or TarTool to unpack the Tar file.
|
|
3. Run the executable `managarr.exe`!
|
|
|
|
#### Linux/MacOS Instructions
|
|
To use a binary from the releases page on Linux/MacOS, do the following:
|
|
|
|
1. Download the latest [binary](https://github.com/Dark-Alex-17/managarr/releases) for your OS.
|
|
2. `cd` to the directory where you downloaded the binary.
|
|
3. Extract the binary with `tar -C /usr/local/bin -xzf managarr-<arch>.tar.gz` (Note: This may require `sudo`)
|
|
4. Now you can run `managarr`!
|
|
|
|
## Features
|
|
Key:
|
|
|
|
| Symbol | Status |
|
|
|--------|-----------|
|
|
| ✅ | Supported |
|
|
| ❌ | Missing |
|
|
| 🕒 | Planned |
|
|
| 🚫 | Won't Add |
|
|
|
|
### Radarr
|
|
|
|
| TUI | CLI | Feature |
|
|
|-----|-----|----------------------------------------------------------------------------------------------------------------|
|
|
| ✅ | ✅ | View your library, downloads, collections, and blocklist |
|
|
| ✅ | ✅ | View details of a specific movie including description, history, downloaded file info, or the credits |
|
|
| ✅ | ✅ | View details of any collection and the movies in them |
|
|
| 🚫 | ✅ | View your host and security configs from the CLI to programmatically fetch the API token, among other settings |
|
|
| ✅ | ✅ | Search your library or collections |
|
|
| ✅ | ✅ | Add movies to your library |
|
|
| ✅ | ✅ | Delete movies, downloads, and indexers |
|
|
| ✅ | ✅ | Trigger automatic searches for movies |
|
|
| ✅ | ✅ | Trigger refresh and disk scan for movies, downloads, and collections |
|
|
| ✅ | ✅ | Manually search for movies |
|
|
| ✅ | ✅ | Edit your movies, collections, and indexers |
|
|
| ✅ | ✅ | Manage your tags |
|
|
| ✅ | ✅ | Manage your root folders |
|
|
| ✅ | ✅ | Manage your blocklist |
|
|
| ✅ | ✅ | View and browse logs, tasks, events queues, and updates |
|
|
| ✅ | ✅ | Manually trigger scheduled tasks |
|
|
|
|
### Sonarr
|
|
|
|
| TUI | CLI | Feature |
|
|
|-----|-----|--------------------------------------------------------------------------------------------------------------------|
|
|
| ✅ | ✅ | View your library, downloads, blocklist, episodes |
|
|
| ✅ | ✅ | View details of a specific series, or episode including description, history, downloaded file info, or the credits |
|
|
| 🚫 | ✅ | View your host and security configs from the CLI to programmatically fetch the API token, among other settings |
|
|
| ✅ | ✅ | Search your library |
|
|
| ✅ | ✅ | Add series to your library |
|
|
| ✅ | ✅ | Delete series, downloads, indexers, root folders, and episode files |
|
|
| ✅ | ✅ | Trigger automatic searches for series, seasons, or episodes |
|
|
| ✅ | ✅ | Trigger refresh and disk scan for series and downloads |
|
|
| ✅ | ✅ | Manually search for series, seasons, or episodes |
|
|
| ✅ | ✅ | Edit your series and indexers |
|
|
| ✅ | ✅ | Manage your tags |
|
|
| ✅ | ✅ | Manage your root folders |
|
|
| ✅ | ✅ | Manage your blocklist |
|
|
| ✅ | ✅ | View and browse logs, tasks, events queues, and updates |
|
|
| ✅ | ✅ | Manually trigger scheduled tasks |
|
|
|
|
### Lidarr
|
|
|
|
| TUI | CLI | Feature |
|
|
|-----|-----|----------------------------------------------------------------------------------------------------------------|
|
|
| ✅ | ✅ | View your library, downloads, blocklist, tracks |
|
|
| ✅ | ✅ | View details of a specific artists, albums, or tracks including description, history, downloaded file info |
|
|
| 🚫 | ✅ | View your host and security configs from the CLI to programmatically fetch the API token, among other settings |
|
|
| ✅ | ✅ | Search your library |
|
|
| ✅ | ✅ | Add artists to your library |
|
|
| ✅ | ✅ | Delete artists, downloads, indexers, root folders, and track files |
|
|
| ✅ | ✅ | Trigger automatic searches for artists or albums |
|
|
| ✅ | ✅ | Trigger refresh and disk scan for artists and downloads |
|
|
| ✅ | ✅ | Manually search for full artist discographies or albums |
|
|
| ✅ | ✅ | Edit your artists and indexers |
|
|
| ✅ | ✅ | Manage your tags |
|
|
| ✅ | ✅ | Manage your root folders |
|
|
| ✅ | ✅ | Manage your blocklist |
|
|
| ✅ | ✅ | View and browse logs, tasks, events queues, and updates |
|
|
| ✅ | ✅ | Manually trigger scheduled tasks |
|
|
|
|
### Readarr
|
|
|
|
- [ ] Support for Readarr
|
|
|
|
### Whisparr
|
|
|
|
- [ ] Support for Whisparr
|
|
|
|
### Bazarr
|
|
|
|
- [ ] Support for Bazarr
|
|
|
|
### Prowlarr
|
|
|
|
- [ ] Support for Prowlarr
|
|
|
|
### Tautulli
|
|
|
|
- [ ] Support for Tautulli
|
|
|
|
### Themes
|
|
Managarr ships with a few themes out of the box. Here's a few examples:
|
|
|
|
#### Default
|
|

|
|
#### Dracula
|
|

|
|
#### Watermelon Dark
|
|

|
|
|
|
You can also create your own custom themes as well. To learn more about what themes are built-in to Managarr and how
|
|
to create your own custom themes, check out the [Themes README](themes/README.md).
|
|
|
|
### The Managarr CLI
|
|
Managarr can be used in one of two ways: As a TUI, or as a CLI for managing your Servarrs.
|
|
|
|
All management features available in the TUI are also available in the CLI. However, the CLI is
|
|
equipped with additional features to allow for more advanced usage and automation.
|
|
|
|
The CLI can be helpful for automating tasks or for use in scripts. For example, you can use the CLI to trigger a search for a movie, or to add a movie to your Radarr library.
|
|
|
|
To see all available commands, simply run `managarr --help`:
|
|
|
|
```shell
|
|
$ managarr --help
|
|
managarr 0.7.0
|
|
Alex Clarke <alex.j.tusa@gmail.com>
|
|
|
|
A TUI and CLI to manage your Servarrs
|
|
|
|
Usage: managarr [OPTIONS] [COMMAND]
|
|
|
|
Commands:
|
|
radarr Commands for manging your Radarr instance
|
|
sonarr Commands for manging your Sonarr instance
|
|
lidarr Commands for manging your Lidarr instance
|
|
readarr Commands for managing your Readarr instance
|
|
completions Generate shell completions for the Managarr CLI
|
|
tail-logs Tail Managarr logs
|
|
config-path Print the full path to the default configuration file.
|
|
This file can be changed to another location using the '--config-file' flag
|
|
help Print this message or the help of the given subcommand(s)
|
|
|
|
Options:
|
|
-h, --help Print help
|
|
-V, --version Print version
|
|
|
|
Global Options:
|
|
--disable-spinner Disable the spinner (can sometimes make parsing output
|
|
challenging) [env: MANAGARR_DISABLE_SPINNER=]
|
|
--config-file <CONFIG_FILE> The Managarr configuration file to use; defaults to the
|
|
path shown by 'managarr config-path' [env:
|
|
MANAGARR_CONFIG_FILE=]
|
|
--themes-file <THEMES_FILE> The Managarr themes file to use [env:
|
|
MANAGARR_THEMES_FILE=]
|
|
--theme <THEME> The name of the Managarr theme to use [env:
|
|
MANAGARR_THEME=]
|
|
--servarr-name <SERVARR_NAME> For multi-instance configurations, you need to specify
|
|
the name of the instance configuration that you want to
|
|
use.
|
|
|
|
This is useful when you have multiple instances of the
|
|
same Servarr defined in your config file.
|
|
By default, if left empty, the first configured Servarr
|
|
instance listed in the config file will be used.
|
|
```
|
|
|
|
All subcommands also have detailed help menus to show you how to use them. For example, to see all available commands for Sonarr, you would run:
|
|
|
|
```shell
|
|
$ managarr sonarr --help
|
|
Commands for manging your Sonarr instance
|
|
|
|
Usage: managarr sonarr [OPTIONS] <COMMAND>
|
|
|
|
Commands:
|
|
add Commands to add or create new resources within your Sonarr instance
|
|
delete Commands to delete resources from your Sonarr instance
|
|
edit Commands to edit resources in your Sonarr instance
|
|
get Commands to fetch details of the resources in your Sonarr instance
|
|
download Commands to download releases in your Sonarr instance
|
|
list Commands to list attributes from your Sonarr instance
|
|
refresh Commands to refresh the data in your Sonarr instance
|
|
manual-search Commands to manually search for releases
|
|
trigger-automatic-search Commands to trigger automatic searches for releases of different resources in your Sonarr instance
|
|
clear-blocklist Clear the blocklist
|
|
mark-history-item-as-failed Mark the Sonarr history item with the given ID as 'failed'
|
|
search-new-series Search for a new series to add to Sonarr
|
|
start-task Start the specified Sonarr task
|
|
test-indexer Test the indexer with the given ID. Note that a successful test returns an empty JSON body; i.e. '{}'
|
|
test-all-indexers Test all Sonarr indexers
|
|
toggle-episode-monitoring Toggle monitoring for the specified episode
|
|
toggle-season-monitoring Toggle monitoring for the specified season that corresponds to the specified series ID
|
|
toggle-series-monitoring Toggle monitoring for the specified series corresponding to the given series ID
|
|
help Print this message or the help of the given subcommand(s)
|
|
|
|
Options:
|
|
-h, --help Print help
|
|
|
|
Global Options:
|
|
--disable-spinner Disable the spinner (can sometimes make parsing output challenging) [env: MANAGARR_DISABLE_SPINNER=]
|
|
--config-file <CONFIG_FILE> The Managarr configuration file to use [env: MANAGARR_CONFIG_FILE=]
|
|
--themes-file <THEMES_FILE> The Managarr themes file to use [env: MANAGARR_THEMES_FILE=]
|
|
--theme <THEME> The name of the Managarr theme to use [env: MANAGARR_THEME=]
|
|
--servarr-name <SERVARR_NAME> For multi-instance configurations, you need to specify the name of the instance configuration that you want to use.
|
|
|
|
This is useful when you have multiple instances of the same Servarr defined in your config file.
|
|
By default, if left empty, the first configured Servarr instance listed in the config file will be used.
|
|
```
|
|
|
|
**Pro Tip:** The CLI is even more powerful and useful when used in conjunction with the `jq` CLI tool. This allows you to parse the JSON response from the Managarr CLI and use it in your scripts; For example, to extract the `movieId` of the movie "Ad Astra", you would run:
|
|
|
|
```shell
|
|
$ managarr radarr list movies | jq '.[] | select(.title == "Ad Astra") | .id'
|
|
277
|
|
```
|
|
|
|
# Configuration
|
|
Managarr assumes reasonable defaults to connect to each service (i.e. Radarr is on localhost:7878),
|
|
but all servers will require you to input the API token. This means that for each Servarr you configure,
|
|
if you define only the `api_token`, Managarr will assume the Servarr is running on `localhost` and on the
|
|
default port for that respective service. That is:
|
|
|
|
| Servarr | Default Host | Default Port |
|
|
|---------|--------------|--------------|
|
|
| Radarr | `localhost` | 7878 |
|
|
| Sonarr | `localhost` | 8989 |
|
|
| Lidarr | `localhost` | 8686 |
|
|
| Readarr | `localhost` | 8787 |
|
|
|
|
> [!TIP]
|
|
> In general, all Servarrs store their API tokens under Settings -> General -> Security -> API Key in their web UIs.
|
|
|
|
## Minimum Configuration Requirements
|
|
The following configuration file will connect to each Servarr running on localhost with their default ports. The only
|
|
requirement for each is the specification of an API token.
|
|
|
|
```yaml
|
|
radarr:
|
|
# Connect to Radarr running on localhost:7878
|
|
- api_token: <your-radarr-api-token-here>
|
|
|
|
sonarr:
|
|
# Connect to sonarr running on localhost:8989
|
|
- api_token: <your-sonarr-api-token-here>
|
|
|
|
lidarr:
|
|
# Connect to lidarr running on localhost:8686
|
|
- api_token: <your-lidarr-api-token-here>
|
|
|
|
readarr:
|
|
# Connect to readarr running on localhost:8787
|
|
- api_token: <your-readarr-api-token-here>
|
|
```
|
|
|
|
## Configuration File Location
|
|
|
|
The configuration file is located somewhere different for each OS, so run the following command to print out the default
|
|
location of the `managarr` configuration file for your system:
|
|
|
|
```shell
|
|
managarr config-path
|
|
```
|
|
|
|
## Specify Which Configuration File to Use
|
|
It can sometimes be useful to specify the configuration file you wish to use. This is useful in cases
|
|
where you may have more than one instance of a given Servarr running. Thus, you can specify the
|
|
config file using the `--config` flag:
|
|
|
|
```shell
|
|
managarr --config-file /path/to/config.yml
|
|
```
|
|
|
|
### Example Configuration:
|
|
```yaml
|
|
theme: default
|
|
radarr:
|
|
- host: 192.168.0.78
|
|
port: 7878
|
|
api_token: someApiToken1234567890
|
|
ssl_cert_path: /path/to/radarr.crt # Use the specified SSL certificate to connect to this Servarr
|
|
# Enables SSL regardless of the value of the 'ssl'
|
|
# See the SSL Configuration section below for more information
|
|
|
|
- host: 192.168.0.79
|
|
port: 7878
|
|
api_token: someApiToken1234567890
|
|
ssl: true # Use SSL to connect to this Servarr
|
|
# This will assume that you have the SSL certificate installed to your system trust store
|
|
# See the SSL Configuration section below for more information
|
|
|
|
- uri: http://htpc.local/radarr # Example of using the 'uri' key instead of 'host' and 'port'
|
|
api_token: someApiToken1234567890
|
|
|
|
sonarr:
|
|
- host: 192.168.0.89
|
|
port: 8989
|
|
api_token_file: /root/.config/sonarr_api_token # Example of loading the API token from a file instead of hardcoding it in the configuration file
|
|
|
|
- name: Anime Sonarr # An example of a custom name for a secondary Sonarr instance
|
|
host: 192.168.1.89
|
|
port: 8989
|
|
api_token: someApiToken1234567890
|
|
|
|
lidarr:
|
|
- host: 192.168.0.86
|
|
port: 8686
|
|
api_token: ${MY_LIDARR_API_TOKEN} # Example of configuring using environment variables
|
|
monitored_storage_paths: # Filter which Root Folders or Disk Storage you want displayed in the UI's 'Stats' block
|
|
# Note: Setting these values does not affect what shows up in the 'Root Folders' tab of the UI.
|
|
- /nfs # An example disk (i.e. '<servarr> list disk-space' command) you want displayed in the UI under 'Storage:'
|
|
- /media # An example root folder you want displayed in the UI
|
|
# Root folders collapse up to the super-directory to reduce duplication in the UI. For example:
|
|
# if you have root folders '/media/tv', '/media/cartoons' and '/media/reality', and you set this
|
|
# monitored path, the UI will show '/media/[tv,cartoons,reality]' under Root Folders
|
|
|
|
- host: 192.168.1.86
|
|
port: 8686
|
|
api_token: someApiToken1234567890
|
|
ssl_cert_path: /path/to/lidarr_1.crt
|
|
custom_headers: # Example of adding custom headers to all requests to the Servarr instance
|
|
traefik-auth-bypass-key: someBypassKey1234567890
|
|
SOME-OTHER-CUSTOM-HEADER: ${MY_CUSTOM_HEADER_VALUE}
|
|
```
|
|
|
|
### SSL Configuration
|
|
If your Servarr is using SSL or self-signed certificates, you may need to specify additional configuration options to connect without issues.
|
|
|
|
|
|
**If your Servarr's domain CA is installed in the system's trust store:**
|
|
Then you can simply specify `ssl: true` and Managarr will be able to connect to your Servarr:
|
|
|
|
```yaml
|
|
radarr:
|
|
- host: 192.168.0.78
|
|
port: 7878
|
|
api_token: yourApiTokenHere
|
|
ssl: true
|
|
```
|
|
|
|
|
|
**If your Servarr's domain CA is not installed:**
|
|
You'll either need to specify the path to the certificate via the `ssl_cert_path` property, or you'll need to install the certificate into your system store.
|
|
|
|
To acquire the cert for your Servarr's domain, you can use the following command:
|
|
```shell
|
|
openssl s_client -show-certs -connect <your-servarr-domain.com>:<port> </dev/null |\
|
|
sed -n -e '/-.BEGIN/,/-.END/ p' > /path/to/your/servarr.pem
|
|
```
|
|
|
|
Now, you can either specify `ssl_cert_path: /path/to/your/servarr.pem`:
|
|
|
|
Example configuration with a certificate that's not installed to the system trust store:
|
|
```yaml
|
|
radarr:
|
|
- host: 192.168.0.78
|
|
port: 7878
|
|
api_token: yourApiTokenHere
|
|
ssl_cert_path: /path/to/your/certificate.crt
|
|
```
|
|
|
|
Or install the certificate into your system's trust store.
|
|
|
|
For example, if you're on a Debian-based system and have `ca-certificates` installed (`sudo apt install ca-certificates`):
|
|
```shell
|
|
sudo mv /path/to/your/servarr.pem /usr/local/share/ca-certificates/servarr.pem
|
|
sudo update-ca-certificates
|
|
```
|
|
|
|
Example configuration with a certificate that is installed to the system trust store:
|
|
```yaml
|
|
radarr:
|
|
- host: 192.168.0.78
|
|
port: 7878
|
|
api_token: yourApiTokenHere
|
|
ssl: true
|
|
```
|
|
|
|
### Example Multi-Instance Configuration:
|
|
```yaml
|
|
theme: default
|
|
radarr:
|
|
- host: 192.168.0.78 # No name specified, so this instance's name will default to 'Radarr 1'
|
|
port: 7878
|
|
api_token: someApiToken1234567890
|
|
ssl_cert_path: /path/to/radarr.crt
|
|
|
|
- name: International Movies
|
|
host: 192.168.0.79
|
|
port: 7878
|
|
api_token: someApiToken1234567890
|
|
sonarr:
|
|
- name: Anime
|
|
weight: 1 # This instance will be the first tab in the TUI
|
|
uri: http://htpc.local/sonarr
|
|
api_token: someApiToken1234567890
|
|
|
|
- name: TV Shows
|
|
weight: 2 # This instance will be the second tab in the TUI
|
|
host: 192.168.0.89
|
|
port: 8989
|
|
api_token: someApiToken1234567890
|
|
```
|
|
|
|
In this configuration, you can see that we have multiple instances of Radarr and Sonarr configured. The `weight` key is
|
|
used to specify the order in which the tabs will appear in the TUI. The lower the weight, the further to the left the
|
|
tab will appear. If no weight is specified, then tabs will be ordered in the order they appear in the configuration
|
|
file.
|
|
|
|
When no `name` is specified for a Servarr instance, the name will default to the name of the Servarr with a number
|
|
appended to it. For example, if you have two Radarr instances and neither has a name, they will be named `Radarr 1` and
|
|
`Radarr 2`, respectively.
|
|
|
|
In this example configuration, the tabs in the TUI would appear as follows:
|
|
|
|
`Anime | TV Shows | Radarr 1 | International Movies`
|
|
|
|
### Specify Which Servarr Instance to Use in the CLI
|
|
If you have multiple instances of the same Servarr running, you can specify which instance you want to use by using the `--servarr-name` flag:
|
|
|
|
```shell
|
|
managarr --servarr-name "International Movies"
|
|
```
|
|
|
|
## Environment Variables
|
|
Managarr supports using environment variables on startup so you don't have to always specify certain flags:
|
|
|
|
| Variable | Description | Equivalent Flag |
|
|
|-----------------------------------------|--------------------------------------------------------------------------------|----------------------------------|
|
|
| `MANAGARR_CONFIG_FILE` | Set the path to the config file | `--config` |
|
|
| `MANAGARR_DISABLE_SPINNER` | Disable the CLI spinner (this can be useful when scripting and parsing output) | `--disable-spinner` |
|
|
|
|
## Screenshots
|
|
|
|
### Radarr
|
|

|
|

|
|

|
|

|
|

|
|
|
|
### Sonarr
|
|

|
|

|
|

|
|

|
|
|
|
### Lidarr
|
|

|
|

|
|

|
|

|
|

|
|
|
|
### General
|
|

|
|

|
|
|
|
## Dependencies
|
|
* [ratatui](https://github.com/tui-rs-revival/ratatui)
|
|
* [crossterm](https://github.com/crossterm-rs/crossterm)
|
|
* [clap](https://github.com/clap-rs/clap)
|
|
* [tokio](https://github.com/tokio-rs/tokio)
|
|
* [serde](https://github.com/serde-rs/serde)
|
|
* [reqwest](https://github.com/seanmonstar/reqwest)
|
|
|
|
## Servarr Requirements
|
|
* [Radarr >= 5.3.6.8612](https://radarr.video/docs/api/)
|
|
* [Sonarr >= v4](https://sonarr.tv/docs/api/)
|
|
* [Lidarr v1](https://lidarr.audio/docs/api/)
|
|
* [Readarr v1](https://readarr.com/docs/api/)
|
|
* [Whisparr >= v3](https://whisparr.com/docs/api/)
|
|
* [Prowlarr v1](https://prowlarr.com/docs/api/)
|
|
* [Bazarr v1.1.4](http://localhost:6767/api)
|
|
* [Tautulli >= v2](https://github.com/Tautulli/Tautulli/wiki/Tautulli-API-Reference)
|
|
|
|
## Creator
|
|
* [Alex Clarke](https://github.com/Dark-Alex-17) |