diff --git a/README.md b/README.md
index 742787c..349f720 100644
--- a/README.md
+++ b/README.md
@@ -1,62 +1,72 @@
-# Discarr
+
-> Disc scanning and HEVC encoding queue for Sonarr/Radarr.
+# 💿 Discarr
-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.
+**Scan disc rips. Map titles. Queue HEVC encodes. Notify Sonarr and Radarr when done.**
+
+[](LICENSE)
+[](https://nodejs.org/)
+[](#install)
+
+
---
-## What it does
+Discarr is a zero-dependency Node.js web UI that bridges your disc ripping workflow with Sonarr and Radarr. Point it at a `VIDEO_TS` or `BDMV` directory, map the title to the right episode or movie in your library, and let it handle the HEVC encode and import.
-| 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 |
+No npm packages. No Python. No config files to edit by hand — just a browser and a config with your API keys.
---
-## Requirements
+## Features
-- Node.js 18+
-- ffmpeg and ffprobe (for metadata scanning)
-- Docker (optional — image included)
+- **Disc scanning** — detects `VIDEO_TS`, `BDMV`, multi-disc, and ISO structures automatically
+- **Episode/movie mapping** — web UI maps disc titles to Sonarr episodes or Radarr movies
+- **HEVC encode queue** — dispatches ffmpeg or HandBrake jobs locally or over SSH to a remote host
+- **IFO chapter extraction** — reads DVD structure to split multi-episode discs correctly
+- **Sonarr/Radarr notification** — custom script hooks notify on import, file delete, or completion
+- **qBittorrent integration** — optional hook triggers a scan automatically on torrent completion
+- **Tdarr notification** — optional ping to Tdarr after encode completes
+- **Persistent job queue** — survive restarts; jobs resume automatically
+- **No npm deps** — pure Node.js built-ins only
+
+---
+
+## Quick start
+
+```bash
+git clone https://git.opensourcesolarpunk.com/Circuit-Forge/discarr
+cd discarr
+
+# Set up your API keys
+mkdir -p ~/.config/media-postprocessor
+cp api-keys.conf.example ~/.config/media-postprocessor/api-keys.conf
+$EDITOR ~/.config/media-postprocessor/api-keys.conf
+
+# Run
+node server.js
+```
+
+Open `http://localhost:8603` — paste a disc path and click **Scan**.
---
## Install
+### From source
+
```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.
+Requirements: Node.js 18+, ffmpeg, ffprobe (for metadata scanning).
### Docker
```bash
docker build -t discarr .
+
docker run -d \
-p 8603:8603 \
-v ~/.config/media-postprocessor:/root/.config/media-postprocessor:ro \
@@ -65,23 +75,24 @@ docker run -d \
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`).
+The image includes ffmpeg, ffprobe, HandBrake, and openssh-client.
---
-## Environment variables
+## Config
+
+All config lives in `~/.config/media-postprocessor/api-keys.conf` (see `api-keys.conf.example`). Every key can also be set as an environment variable — env vars override the config file.
+
+```bash
+# Minimum required config
+SONARR_URL=http://your-sonarr-host:8989/sonarr
+SONARR_API_KEY=your-sonarr-api-key
+
+RADARR_URL=http://your-radarr-host:7878/radarr
+RADARR_API_KEY=your-radarr-api-key
+```
+
+### Environment variables
| Variable | Default | Description |
|---|---|---|
@@ -89,10 +100,33 @@ All scripts use `DISCARR_URL` env var (default: `http://127.0.0.1:8603`).
| `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 |
---
+## Notification hooks
+
+Drop the scripts from `scripts/` as custom hooks in your arr apps and qBittorrent:
+
+| Script | Where to set it |
+|---|---|
+| `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 respect the `DISCARR_URL` environment variable (default: `http://127.0.0.1:8603`).
+
+---
+
+## Related
+
+- [**Recovarr**](https://git.opensourcesolarpunk.com/Circuit-Forge/recovarr) — re-trigger Sonarr/Radarr imports for corrupted or missing media files
+
+---
+
+## Contributing
+
+Issues and PRs welcome. Please open an issue before starting a large change.
+
## License
-MIT
+MIT — see [LICENSE](LICENSE).