MCPcopy
hub / github.com/jpillora/cloud-torrent

github.com/jpillora/cloud-torrent @v0.9.5 sqlite

repository ↗ · DeepWiki ↗ · release v0.9.5 ↗
45 symbols 129 edges 17 files 7 documented · 16%
README

screenshot

Cloud torrent is a a self-hosted remote torrent client, written in Go (golang). You start torrents remotely, which are downloaded as sets of files on the local disk of the server, which are then retrievable or streamable via HTTP.

Features

  • Single binary
  • Cross platform
  • Embedded torrent search
  • Real-time updates
  • Mobile-friendly
  • Fast content server

See Future Features here

Install

Binaries

Releases Releases

See the latest release or download and install it now with

curl https://i.jpillora.com/cloud-torrent! | bash

Tip: Auto-run cloud-torrent on boot

Docker

Docker Pulls

$ docker run -d -p 3000:3000 -v /path/to/my/downloads:/downloads jpillora/cloud-torrent

Source

Go is required to install from source

$ go get -v github.com/jpillora/cloud-torrent

VPS

Digital Ocean

  1. Sign up with free $10 credit
  2. "Create Droplet"
  3. "One-Click Apps"
  4. "Docker X.X.X on X.X"
  5. Choose server size ("$5/month" is enough)
  6. Choose server location
  7. OPTIONAL Add your SSH key
  8. "Create"
  9. You will be emailed the server details (IP Address: ..., Username: root, Password: ...)
  10. SSH into the server using these details (Windows: Putty, Mac: Terminal)
  11. Follow the prompts to set a new password
  12. Run cloud-torrent with:

    docker run --name ct -d -p 63000:63000 \ --restart always \ -v /root/downloads:/downloads \ jpillora/cloud-torrent --port 63000

  13. Visit http://<IP Address from email>:63000/

  14. OPTIONAL In addition to --port you can specify the options below

Vultr

AWS

Heroku (Heroku is no longer supported)

Usage

$ cloud-torrent --help

  Usage: cloud-torrent [options]

  Options:
  --title, -t        Title of this instance (default Cloud Torrent, env TITLE)
  --port, -p         Listening port (default 3000, env PORT)
  --host, -h         Listening interface (default all)
  --auth, -a         Optional basic auth in form 'user:password' (env AUTH)
  --config-path, -c  Configuration file path (default cloud-torrent.json)
  --key-path, -k     TLS Key file path
  --cert-path, -r    TLS Certicate file path
  --log, -l          Enable request logging
  --open, -o         Open now with your default browser
  --help
  --version, -v

  Version:
    0.X.Y

  Read more:
    https://github.com/jpillora/cloud-torrent

Future features

The next set of core features can be tracked here. This feature set requires large structural changes and therefore requires a complete rewrite for best results. This rewrite is in progress in the 0.9 branch though it will take quite some time.

In summary, the core features will be:

  • Remote backends

It's looking like 0.9 will be more of a general purpose cloud transfer engine. It will be capable of transfering files from and source file-system to any destination file-system. A torrent can be viewed a folder with files, just like your local disk, and Dropbox. As long as it has a concept of files and folders, it could potentially be a cloud-torrent file-system backend. Track this issue https://github.com/jpillora/cloud-torrent/issues/24 for the list of proposed backends.

  • File Transforms

During a file tranfer, one could apply different transforms against the byte stream for various effect. For example, supported transforms might include: video transcoding (using ffmpeg), encryption and decryption, media sorting (file renaming), and writing multiple files as a single zip file.

  • Automatic updates Binary will upgrade itself, adding new features as they get released.

  • RSS Automatically add torrents, with smart episode filter.

Once completed, cloud-torrent will no longer be a simple torrent client and most likely project be renamed.

Donate

If you'd like to buy me a coffee or more, you can donate via PayPal or BitCoin 1AxEWoz121JSC3rV8e9MkaN9GAc5Jxvs4.

Notes

This project is the rewrite of the original Node version.

overview

Credits to @anacrolix for https://github.com/anacrolix/torrent

Copyright (c) 2017 Jaime Pillora

Core symbols most depended-on inside this repo

getTorrent
called by 3
engine/engine.go
magnetURI
called by 2
static/files/js/omni-controller.js
newTorrent
called by 2
engine/engine.go
GetTorrents
called by 2
engine/engine.go
upsertTorrent
called by 2
engine/engine.go
getOpenTorrent
called by 2
engine/engine.go
StartTorrent
called by 2
engine/engine.go
str2ih
called by 2
engine/engine.go

Shape

Method 25
Function 13
Struct 7

Languages

Go87%
TypeScript13%

Modules by API surface

engine/engine.go17 symbols
engine/torrent.go5 symbols
static/files/js/omni-controller.js4 symbols
server/server_files.go4 symbols
server/server.go4 symbols
server/server_search.go3 symbols
static/files/js/utils.js2 symbols
server/server_stats.go2 symbols
static/static.go1 symbols
server/server_api.go1 symbols
main.go1 symbols
engine/config.go1 symbols

Dependencies from manifests, versioned

github.com/NYTimes/gziphandlerv1.1.1 · 1×
github.com/ajwerner/btreev0.0.0-2021122115203 · 1×
github.com/alecthomas/atomicv0.1.0-alpha2 · 1×
github.com/anacrolix/chansyncv0.7.0 · 1×
github.com/anacrolix/dht/v2v2.23.0 · 1×
github.com/anacrolix/envpprofv1.4.0 · 1×
github.com/anacrolix/genericsv0.1.0 · 1×
github.com/anacrolix/go-libutpv1.3.2 · 1×
github.com/anacrolix/logv0.17.0 · 1×
github.com/anacrolix/missinggov1.3.0 · 1×

For agents

$ claude mcp add cloud-torrent \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact