gitmyhub

torrin

Go ★ 27 updated 3h ago

Open-source debrid service. Add a magnet, get a stream.

A self-hosted debrid service written in Go that downloads torrents on a remote server through a VPN, stores files in object storage, and returns a signed HTTPS streaming link, no torrent client on your own machine needed.

GoDockerDocker ComposeWebDAVsetup: hardcomplexity 4/5

Torrin is a self-hosted debrid service written in Go. A debrid service sits between you and a torrent: you give it a magnet link, it downloads the file on a remote server through a VPN, stores the result in object storage, and hands you back a plain HTTPS link you can stream directly in a browser or media player. Your IP address is never exposed, and you do not need a torrent client running on your own machine.

When you submit a magnet link, Torrin first checks whether the content is already cached from a previous request by any user. If it is, you get a streaming URL immediately. If not, the server starts downloading in the background through a VPN connection, then moves the finished file to object storage once complete. Streaming links are signed HTTPS URLs, meaning they expire after a set time and are specific to the requester.

The project includes a Stremio integration, which lets users of that media center app browse and play content through Torrin without leaving the Stremio interface. There is also a built-in web player that handles common video formats including MKV, HEVC, AV1, and 4K HDR content. A WebDAV server allows you to mount the stored content as a network drive and open it in VLC, Infuse, Kodi, or similar tools.

The repository is split into two parts. The core logic (cache checking, download pipeline, object storage client, torrent engine) is open-source under the MIT license. The proprietary parts covering the HTTP API, authentication, billing, and plan management are not included in this public repository.

Self-hosting requires a Linux server with Docker, an object storage bucket with a CDN, and a VPN provider. Setup involves copying an environment file, filling in credentials, and running Docker Compose.

Where it fits