2026-03-31 10:24:14 +02:00
|
|
|
|
# unarr
|
|
|
|
|
|
|
2026-05-27 16:35:22 +02:00
|
|
|
|
**The single binary that replaces your whole *arr stack.** Built-in torrent,
|
|
|
|
|
|
debrid, and usenet engines. Stream, transcode, and organize your library from
|
|
|
|
|
|
one terminal — or run it as a headless daemon with a web dashboard, WireGuard
|
|
|
|
|
|
split-tunnel, and Cloudflare Funnel remote access.
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
**[Website & docs](https://torrentclaw.com/unarr)** · **[Install guide](https://torrentclaw.com/cli)** · **[Get an API key](https://torrentclaw.com)**
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
> Powered by [TorrentClaw](https://torrentclaw.com) — an aggregator that unifies
|
|
|
|
|
|
> YTS, EZTV, Knaben, Torrentio, Bitmagnet and more, enriched with TMDB metadata
|
|
|
|
|
|
> and a 0–100 quality score per release.
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Quick start
|
|
|
|
|
|
|
|
|
|
|
|
### 1. First-time setup (interactive wizard)
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker run -it --rm \
|
|
|
|
|
|
-v ~/.config/unarr:/config \
|
|
|
|
|
|
torrentclaw/unarr setup
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
The wizard asks for your TorrentClaw API key (free at
|
|
|
|
|
|
[torrentclaw.com](https://torrentclaw.com)) and your download directory.
|
|
|
|
|
|
|
2026-03-31 10:24:14 +02:00
|
|
|
|
### 2. Run the daemon
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker run -d --name unarr \
|
|
|
|
|
|
--restart unless-stopped \
|
|
|
|
|
|
--network host \
|
|
|
|
|
|
--read-only --memory 512m \
|
|
|
|
|
|
-v ~/.config/unarr:/config \
|
|
|
|
|
|
-v ~/Media:/downloads \
|
|
|
|
|
|
torrentclaw/unarr
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
That's it — `unarr` now runs headless, watching for jobs and managing downloads.
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-31 10:24:14 +02:00
|
|
|
|
## Docker Compose
|
|
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
services:
|
|
|
|
|
|
unarr:
|
|
|
|
|
|
image: torrentclaw/unarr:latest
|
|
|
|
|
|
container_name: unarr
|
|
|
|
|
|
restart: unless-stopped
|
|
|
|
|
|
user: "1000:1000"
|
|
|
|
|
|
read_only: true
|
|
|
|
|
|
tmpfs:
|
|
|
|
|
|
- /tmp:size=64m,mode=1777
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
- ./config:/config
|
|
|
|
|
|
- ~/Media:/downloads
|
|
|
|
|
|
- unarr-data:/data
|
|
|
|
|
|
environment:
|
|
|
|
|
|
- TZ=UTC
|
|
|
|
|
|
# - UNARR_API_KEY=tc_your_key_here
|
2026-05-21 15:56:07 +02:00
|
|
|
|
network_mode: host # recommended for full P2P performance
|
2026-03-31 10:24:14 +02:00
|
|
|
|
deploy:
|
|
|
|
|
|
resources:
|
|
|
|
|
|
limits:
|
|
|
|
|
|
memory: 512M
|
|
|
|
|
|
cpus: "2.0"
|
|
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
|
unarr-data:
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
```bash
|
|
|
|
|
|
docker compose run --rm unarr setup # one-time wizard
|
|
|
|
|
|
docker compose up -d # start the daemon
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-31 10:24:14 +02:00
|
|
|
|
## Volumes
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
| Path | Purpose |
|
|
|
|
|
|
|--------------|--------------------------------------------------|
|
|
|
|
|
|
| `/config` | Configuration file (`config.toml`) |
|
|
|
|
|
|
| `/downloads` | Finished media downloads |
|
|
|
|
|
|
| `/data` | Internal state: torrent metadata, cache |
|
|
|
|
|
|
|
|
|
|
|
|
## Environment variables
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
| Variable | Description | Default |
|
|
|
|
|
|
|------------------------|--------------------------------------|---------------------------|
|
|
|
|
|
|
| `UNARR_API_KEY` | TorrentClaw API key | from config |
|
|
|
|
|
|
| `UNARR_API_URL` | API endpoint | `https://torrentclaw.com` |
|
|
|
|
|
|
| `UNARR_DOWNLOAD_DIR` | Download directory | `/downloads` |
|
|
|
|
|
|
| `UNARR_CONFIG_DIR` | Config directory | `/config` |
|
|
|
|
|
|
| `UNARR_COUNTRY` | Country code (ISO 3166) | `US` |
|
|
|
|
|
|
| `TZ` | Timezone | `UTC` |
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
Any config value can be overridden by its matching `UNARR_*` environment variable.
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
|
|
|
|
|
## Networking
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
**Host mode (recommended)** — full P2P performance, no port mapping:
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
network_mode: host
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
**Bridge mode** — more isolated, but you must expose the BitTorrent ports:
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
|
|
ports:
|
|
|
|
|
|
- "6881-6889:6881-6889/tcp"
|
|
|
|
|
|
- "6881-6889:6881-6889/udp"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
## Running commands
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
|
|
|
|
|
Use `docker exec` for one-off commands while the daemon is running:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker exec unarr unarr search "inception" --quality 1080p
|
|
|
|
|
|
docker exec unarr unarr popular --limit 10
|
|
|
|
|
|
docker exec unarr unarr status
|
2026-05-21 15:56:07 +02:00
|
|
|
|
docker exec unarr unarr doctor # diagnose config / connectivity
|
2026-03-31 10:24:14 +02:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
---
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
|
|
|
|
|
## Tags
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
| Tag | Description |
|
|
|
|
|
|
|----------|--------------------------------------------------|
|
|
|
|
|
|
| `latest` | Latest stable release |
|
|
|
|
|
|
| `X.Y.Z` | Exact version (e.g. `0.9.0`) |
|
|
|
|
|
|
| `X.Y` | Latest patch within a minor (e.g. `0.9`) |
|
|
|
|
|
|
|
|
|
|
|
|
Pin a tag in production (`torrentclaw/unarr:0.9.0`) for reproducible deploys.
|
|
|
|
|
|
|
|
|
|
|
|
## Supported architectures
|
|
|
|
|
|
|
|
|
|
|
|
Multi-arch image — Docker pulls the right one automatically:
|
|
|
|
|
|
|
|
|
|
|
|
- `linux/amd64`
|
|
|
|
|
|
- `linux/arm64` (Apple Silicon, Raspberry Pi 4/5, ARM servers)
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
## Image details
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
- **Base:** Alpine 3.22 (minimal, regularly patched)
|
|
|
|
|
|
- **User:** `unarr` (UID 1000, GID 1000) — runs as **non-root**
|
2026-03-31 10:24:14 +02:00
|
|
|
|
- **Entrypoint:** `unarr start` (daemon mode)
|
2026-05-21 15:56:07 +02:00
|
|
|
|
- **Read-only rootfs** — only mounted volumes are writable
|
|
|
|
|
|
- **Bundled `ffmpeg` / `ffprobe`** for media inspection — nothing else to install
|
|
|
|
|
|
- **Self-contained updates** — binaries are served from TorrentClaw's own
|
|
|
|
|
|
infrastructure, no third-party registry dependency
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## Other install methods
|
|
|
|
|
|
|
|
|
|
|
|
Not using Docker? Install the native binary instead:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# Linux / macOS
|
|
|
|
|
|
curl -fsSL https://torrentclaw.com/install.sh | sh
|
|
|
|
|
|
|
|
|
|
|
|
# Windows (PowerShell)
|
|
|
|
|
|
irm https://torrentclaw.com/install.ps1 | iex
|
|
|
|
|
|
|
|
|
|
|
|
# Go toolchain
|
|
|
|
|
|
go install github.com/torrentclaw/unarr/cmd/unarr@latest
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
## Mirrors
|
|
|
|
|
|
|
|
|
|
|
|
The installer and release binaries are served from every TorrentClaw mirror, so
|
|
|
|
|
|
you can install even if one domain is blocked in your region. Each mirror is
|
|
|
|
|
|
self-contained (it serves its own binaries — no cross-domain dependency):
|
|
|
|
|
|
|
|
|
|
|
|
| Mirror | Install command |
|
|
|
|
|
|
|--------|-----------------|
|
|
|
|
|
|
| `torrentclaw.com` (primary) | `curl -fsSL https://torrentclaw.com/install.sh \| sh` |
|
|
|
|
|
|
| `torrentclaw.to` | `curl -fsSL https://torrentclaw.to/install.sh \| sh` |
|
|
|
|
|
|
| Tor (`.onion`) | `torsocks sh -c "$(curl http://torrentf3aifidcsaaanmnmuhv2s53r6hqsl3zkmfidiaxainkeqk5id.onion/install.sh)"` |
|
|
|
|
|
|
|
|
|
|
|
|
The Tor address routes everything (install script + binaries) through the hidden
|
|
|
|
|
|
service, so no clearnet exit is needed.
|
|
|
|
|
|
|
|
|
|
|
|
## Links
|
|
|
|
|
|
|
|
|
|
|
|
- **Website & docs:** https://torrentclaw.com/unarr
|
|
|
|
|
|
- **CLI install guide:** https://torrentclaw.com/cli
|
|
|
|
|
|
- **API & account:** https://torrentclaw.com
|
|
|
|
|
|
- **Mirror status:** https://torrentclaw.com/mirrors
|
2026-03-31 10:24:14 +02:00
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
2026-05-21 15:56:07 +02:00
|
|
|
|
MIT.
|