torsher

torsher

Docker app from Torsher's Repository

Overview

Your home cinema in one container: a TV showcase with a catalog, your own library, playback while the file downloads, and series that follow themselves. Self-hosted and open source, built for the TV first.

Open the WebUI to create the owner account and run the setup wizard. Bring your own Torznab indexer, for example Prowlarr or Jackett; nothing is included.

The database lives in appdata; downloads and the library share a single Storage path, so kept files can be hard-linked instead of copied.

GPU transcoding: for Intel or AMD add a Device /dev/dri, for NVIDIA install the Nvidia Driver plugin, then add --runtime=nvidia to Extra Parameters. Details: https://github.com/torsher-app/Unraid-templates#gpu-transcoding

Documentation: https://torsher.app/docs/

Torsher for Unraid

Unraid template for Torsher: your home cinema in one container, with a TV showcase, your own library, playback while the file downloads, and series that follow themselves.

The app itself, its issues and releases live in torsher-app/torsher. This repository holds only the template.

[!NOTE] The template hasn't been verified on a live Unraid server yet. Report problems with the app in torsher-app/torsher and problems with the template itself (fields, paths, install) in torsher-app/unraid-templates.

Install

Open the Apps tab (Community Applications), search for Torsher and select Install. Check the paths below and select Apply.

If Torsher doesn't show up in Apps yet, add the template by hand. Open the Unraid terminal (the >_ icon in the header) and run:

curl -fsSL -o /boot/config/plugins/dockerMan/templates-user/my-torsher.xml \
  https://raw.githubusercontent.com/torsher-app/unraid-templates/main/templates/torsher.xml

Then open Docker, select Add Container, and pick torsher in the Template list.

When the container is running, select WebUI in its menu. The panel asks you to create the owner account and starts the setup wizard.

Paths

In the container Default on Unraid What's inside
/data /mnt/user/appdata/torsher Database, keys, the log and backups
/storage /mnt/user/data/torsher Downloads in torrents, the library in library
/media empty Optional. Your existing media, read-only

Downloads and the library share one path on purpose: kept files are hard-linked from downloads into the library and take no extra space. For hard links, make sure Settings → Global Share Settings → Tunable (support Hard Links) is set to Yes. The setup wizard shows whether hard links work.

Keep /data on a pool, not on a share mounted from another machine. A tip for the database: keep the appdata share on a pool only (an exclusive share), or point the path at /mnt/cache/appdata/torsher, so the database doesn't go through the user-share file system.

If you already keep media in one data share, as in the TRaSH Guides, the default /mnt/user/data/torsher puts Torsher's folders next to it.

Ports

Port What for
8080 The showcase at / and the control panel at /panel/
51420 TCP and UDP Optional. Incoming connections from torrent peers

The peer port must be the same number in both mappings and in the Peer port variable (advanced view). A port changed in the panel under Settings → Torrent takes precedence over the variable, so after changing it there, set the same number in the container settings too. While the variable is set and differs from the panel, the panel shows a warning; it mentions docker-compose.yml, which on Unraid means the container settings. The panel can't see the mappings themselves: changing only the host side of the peer port gives no warning.

If port 8080 is already taken on your server, change only the host side of the mapping. The WebUI button follows it.

GPU transcoding

The template has no GPU device: a default device would stop the container from starting on servers without a GPU, so the template leaves it out.

  • Intel or AMD: in the Unraid terminal run ls /dev/dri. If it's empty or missing, the GPU driver isn't loaded: for Intel, load it, for example with the Intel GPU TOP plugin, and check again. Then select Add another Path, Port, Variable, Label or Device, choose Device, and enter /dev/dri.
  • NVIDIA: install the Nvidia Driver plugin. In the advanced view add --runtime=nvidia to Extra Parameters. The image already sets the NVIDIA variables. To give the container only one card, add the variable NVIDIA_VISIBLE_DEVICES with the card's UUID from the plugin page. NVENC support in the image hasn't been tested on NVIDIA hardware yet.

Check the result in the panel under Settings → Playback. See Hardware transcoding.

Sources

Torsher connects to any Torznab indexer, for example Prowlarr or Jackett. Nothing is included: you choose the sources and are responsible for using them lawfully.

License

The template is under the MIT License. Torsher itself is under AGPL-3.0.

Download Statistics

440
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
torsherapp/torsher:latest
Last Updated2026-10-27
First Seen2026-10-31

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/panel/
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUIPorttcp

Showcase at /, control panel at /panel/.

Target
8080
Default
8080
Peer port (TCP)Porttcp

Incoming connections from torrent peers. Keep it equal to the Peer port variable.

Target
51420
Default
51420
Peer port (UDP)Portudp

Incoming connections from torrent peers. Keep it equal to the Peer port variable.

Target
51420
Default
51420
AppdataPathrw

Database, keys, the log and backups. Keep it on a pool, not on a share mounted from another machine. Tip: keep the appdata share on a pool only (an exclusive share), or use /mnt/cache/appdata/torsher, so the database does not go through the user-share file system.

Target
/data
Default
/mnt/user/appdata/torsher
StoragePathrw

Downloads (/storage/torrents) and the library (/storage/library). Keep both in this one path: separate paths turn hard links into copies.

Target
/storage
Default
/mnt/user/data/torsher
Existing mediaPathro

Optional. Your existing movies and series, read-only. Add them in the panel under Library.

Target
/media
Peer portVariable

Port the torrent engine listens on. Must match both peer port mappings.

Target
ENGINE_PEER_PORT
Default
51420
Downloads folderVariable

Default downloads folder inside the container. Keep both under /storage so hard links work between downloads and the library. A folder chosen in Settings → Storage takes precedence.

Target
DOWNLOADS_PATH
Default
/storage/torrents
Library folderVariable

Default library folder inside the container. Keep both under /storage so hard links work between downloads and the library. A folder chosen in Settings → Storage takes precedence.

Target
LIBRARY_PATH
Default
/storage/library
PUIDVariable

Owner of the files Torsher writes. 99 is nobody on Unraid.

Default
99
PGIDVariable

Group of the files Torsher writes. 100 is users on Unraid.

Default
100
TORSHER_SECRETVariable

Optional. Key that encrypts saved secrets in the database. Without it a key file is created in appdata: keep it with your backups.

TMDB_ACCESS_TOKENVariable

Optional. Your own TMDB API Read Access Token instead of the app key built into the image.

TRUST_PROXYVariable

Only behind a reverse proxy: its address or subnet, so sign-in limits see real client addresses. Leave empty without a proxy.