unarr/DOCKERHUB.md
Deivid Soto c7af7681a2
Some checks failed
Release / release (push) Failing after 0s
Release / docker (push) Has been skipped
Release / virustotal (push) Failing after 0s
docs(docker): refresh Docker Hub README + sync description in CI
- DOCKERHUB.md: update stale 0.3.5 examples to 0.9.0, multi-arch note, mirrors
  section (.com/.to/.onion), point all links to torrentclaw.com (GitHub 404s
  anonymously under the org shadow-ban)
- release.yml: add peter-evans/dockerhub-description step so a tag push also
  syncs the Docker Hub page from DOCKERHUB.md (continue-on-error)
2026-05-21 15:56:07 +02:00

5.9 KiB
Raw Blame History

unarr

*The single binary that replaces your whole arr stack. Search 30+ torrent sources, inspect real quality before you download, grab subtitles, and manage your media library — all from one terminal tool or a headless daemon.

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.