unarr/DOCKERHUB.md
Deivid Soto 116a348670 docs(positioning): reframe unarr around download/stream/transcode, drop misleading search-first wording
Old copy claimed unarr was a "torrent search" tool. unarr's real job is
downloading (torrent + debrid + usenet), streaming via local HLS, transcoding
with ffmpeg+HW accel, and library management. Search just queries the
torrentclaw.com catalog — secondary feature, not the identity.

- root cobra Short/Long now lead with download/stream/transcode and list the
  three backends + WireGuard + Cloudflare Funnel
- README hero + subheading mirror the same positioning
- DOCKERHUB hero updated to match
- "Search & Discovery" group → "Catalog & Discovery" (search still grouped,
  but framed as catalog browsing not product identity)
2026-05-27 16:35:22 +02:00

5.9 KiB
Raw Blame History

unarr

*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.

Website & docs · Install guide · Get an API key

Powered by TorrentClaw — an aggregator that unifies YTS, EZTV, Knaben, Torrentio, Bitmagnet and more, enriched with TMDB metadata and a 0100 quality score per release.


Quick start

1. First-time setup (interactive wizard)

docker run -it --rm \
  -v ~/.config/unarr:/config \
  torrentclaw/unarr setup

The wizard asks for your TorrentClaw API key (free at torrentclaw.com) and your download directory.

2. Run the daemon

docker run -d --name unarr \
  --restart unless-stopped \
  --network host \
  --read-only --memory 512m \
  -v ~/.config/unarr:/config \
  -v ~/Media:/downloads \
  torrentclaw/unarr

That's it — unarr now runs headless, watching for jobs and managing downloads.


Docker Compose

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
    network_mode: host        # recommended for full P2P performance
    deploy:
      resources:
        limits:
          memory: 512M
          cpus: "2.0"

volumes:
  unarr-data:
docker compose run --rm unarr setup   # one-time wizard
docker compose up -d                   # start the daemon

Volumes

Path Purpose
/config Configuration file (config.toml)
/downloads Finished media downloads
/data Internal state: torrent metadata, cache

Environment variables

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

Any config value can be overridden by its matching UNARR_* environment variable.

Networking

Host mode (recommended) — full P2P performance, no port mapping:

network_mode: host

Bridge mode — more isolated, but you must expose the BitTorrent ports:

ports:
  - "6881-6889:6881-6889/tcp"
  - "6881-6889:6881-6889/udp"

Running commands

Use docker exec for one-off commands while the daemon is running:

docker exec unarr unarr search "inception" --quality 1080p
docker exec unarr unarr popular --limit 10
docker exec unarr unarr status
docker exec unarr unarr doctor      # diagnose config / connectivity

Tags

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)

Image details

  • Base: Alpine 3.22 (minimal, regularly patched)
  • User: unarr (UID 1000, GID 1000) — runs as non-root
  • Entrypoint: unarr start (daemon mode)
  • 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:

# 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.

License

MIT.