98 lines
2.6 KiB
Markdown
98 lines
2.6 KiB
Markdown
# Discarr
|
|
|
|
> Disc scanning and HEVC encoding queue for Sonarr/Radarr.
|
|
|
|
Discarr is a lightweight web UI that scans DVD and Blu-ray directory structures (`VIDEO_TS` / `BDMV`), lets you map raw VOBs to Sonarr episodes or Radarr movies, queues HEVC encodes via ffmpeg (local or SSH to a remote host), and notifies Sonarr/Radarr on completion.
|
|
|
|
---
|
|
|
|
## What it does
|
|
|
|
| Stage | Details |
|
|
|---|---|
|
|
| **Scan** | Detect `VIDEO_TS` / `BDMV` structures and parse IFO chapters |
|
|
| **Map** | Web UI to match disc titles to Sonarr episodes or Radarr movies |
|
|
| **Encode** | Queue HEVC encodes via ffmpeg or HandBrake (local or SSH) |
|
|
| **Notify** | Call Sonarr/Radarr import on completion; optionally notify Tdarr |
|
|
|
|
---
|
|
|
|
## Requirements
|
|
|
|
- Node.js 18+
|
|
- ffmpeg and ffprobe (for metadata scanning)
|
|
- Docker (optional — image included)
|
|
|
|
---
|
|
|
|
## Install
|
|
|
|
```bash
|
|
git clone https://git.opensourcesolarpunk.com/Circuit-Forge/discarr
|
|
cd discarr
|
|
```
|
|
|
|
No npm dependencies — pure Node.js built-ins only.
|
|
|
|
### Config
|
|
|
|
```bash
|
|
mkdir -p ~/.config/media-postprocessor
|
|
cp api-keys.conf.example ~/.config/media-postprocessor/api-keys.conf
|
|
# Edit api-keys.conf with your Sonarr/Radarr URLs and API keys
|
|
```
|
|
|
|
All config values can be set as environment variables (env vars override the config file).
|
|
|
|
### Run
|
|
|
|
```bash
|
|
node server.js
|
|
# or: PORT=8603 node server.js
|
|
```
|
|
|
|
Open `http://localhost:8603` in your browser.
|
|
|
|
### Docker
|
|
|
|
```bash
|
|
docker build -t discarr .
|
|
docker run -d \
|
|
-p 8603:8603 \
|
|
-v ~/.config/media-postprocessor:/root/.config/media-postprocessor:ro \
|
|
-v ~/.local/share/discarr:/root/.local/share/discarr \
|
|
-v /path/to/media:/media \
|
|
discarr
|
|
```
|
|
|
|
---
|
|
|
|
## Notification hooks
|
|
|
|
Drop the scripts from `scripts/` as custom script hooks in Sonarr/Radarr/qBittorrent:
|
|
|
|
| Script | Trigger |
|
|
|---|---|
|
|
| `scripts/sonarr-notify.sh` | Sonarr: Settings → Connect → Custom Script (On Import, On Episode File Delete) |
|
|
| `scripts/radarr-notify.sh` | Radarr: Settings → Connect → Custom Script (On Import, On Movie File Delete) |
|
|
| `scripts/qbittorrent-notify.sh` | qBittorrent: Options → Downloads → "Run external program on torrent completion" |
|
|
|
|
All scripts use `DISCARR_URL` env var (default: `http://127.0.0.1:8603`).
|
|
|
|
---
|
|
|
|
## Environment variables
|
|
|
|
| Variable | Default | Description |
|
|
|---|---|---|
|
|
| `PORT` | `8603` | Web UI port |
|
|
| `DISCARR_CONFIG` | `~/.config/media-postprocessor/api-keys.conf` | Config file path |
|
|
| `DISCARR_LOG` | `~/.local/share/discarr/jobs.log` | Job log path |
|
|
| `DISCARR_QUEUE` | `~/.local/share/discarr/pending-queue.json` | Pending queue path |
|
|
| `DISCARR_SETTINGS` | Same dir as queue | Runtime settings overlay |
|
|
|
|
---
|
|
|
|
## License
|
|
|
|
MIT
|