• Stars
    star
    5,685
  • Rank 6,870 (Top 0.2 %)
  • Language
    Go
  • License
    GNU Affero Genera...
  • Created almost 9 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

☁️ Cloud Torrent: a self-hosted remote torrent client

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 Image Size

$ 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
  1. Visit http://<IP Address from email>:63000/
  2. 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 #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

More Repositories

1

chisel

A fast TCP/UDP tunnel over HTTP
Go
12,160
star
2

xdomain

A pure JavaScript CORS alternative
JavaScript
3,072
star
3

overseer

Monitorable, gracefully restarting, self-upgrading binaries in Go (golang)
Go
2,246
star
4

notifyjs

Notify.js - A simple, versatile notification library
1,903
star
5

xhook

Easily intercept and modify XHR request and response
HTML
944
star
6

webproc

Wrap any program in a simple web-based user-interface
Go
722
star
7

docker-dnsmasq

dnsmasq in a docker container, configurable via a simple web UI
Dockerfile
705
star
8

go-tcp-proxy

A small TCP proxy written in Go
Go
694
star
9

backoff

Simple backoff algorithm in Go (golang)
Go
622
star
10

jquery.rest

A jQuery plugin for easy consumption of RESTful APIs
CoffeeScript
614
star
11

ipfilter

A package for IP Filtering in Go (golang)
Go
382
star
12

node-edit-google-spreadsheet

A simple API for editing Google Spreadsheets
JavaScript
304
star
13

base64-encoder

Base64 Encoder
HTML
260
star
14

installer

One-liner for installing binaries from Github releases
Go
189
star
15

node-torrent-cloud

Torrent Cloud – A self-hosted Bittorrent client in the Cloud
JavaScript
183
star
16

velox

Real-time Go struct to JS object synchronisation over SSE and WebSockets
Go
176
star
17

grunt-aws

A Grunt interface into the Amazon Node.JS SDK
JavaScript
174
star
18

opts

A Go (golang) package for building frictionless command-line interfaces
Go
161
star
19

verifyjs

Verify.js - A powerful, customizable asynchronous validation library
JavaScript
159
star
20

ssh-tron

Multiplayer Tron over SSH, written in Go
Go
143
star
21

go-ogle-analytics

Monitor your Go (golang) servers with Google Analytics
HTML
133
star
22

cloud-gox

A Go (golang) Cross-Compiler in the cloud
Go
132
star
23

media-sort

Automatically organise your movies and tv series
Go
117
star
24

go-tld

TLD Parser in Go
Go
114
star
25

node-load-tester

Simple load testing with Node.js
JavaScript
88
star
26

csv-to-influxdb

Import CSV files into InfluxDB
Go
82
star
27

sshd-lite

A feature-light sshd(8) for Windows, Mac, and Linux written in Go
Go
80
star
28

node-logbook

A simple, unobtrusive logger for Node
JavaScript
61
star
29

spy

Spy - Watches for file changes, restarts stuff
Go
61
star
30

go-and-ssh

Go and the Secure Shell protocol
Go
58
star
31

node-glob-all

Provide multiple patterns to node-glob
JavaScript
57
star
32

serve

Your personal HTTP file server in Go
Go
53
star
33

go-sandbox

An alternate frontend to the Go Playground
JavaScript
52
star
34

scraper

A dual interface Go module for building simple web scrapers
Go
50
star
35

node-google-sheets

Google Sheets v4 API using Node.js
JavaScript
42
star
36

dedup

A cross platform command-line tool to deduplicate files, fast
Go
42
star
37

archive

Archiver is a high-level API over Go's archive/tar,zip
Go
33
star
38

icmpscan

ICMP scan all hosts across a given subnet in Go (golang)
Go
29
star
39

hashedpassword

A small Go (Golang) package for hashed passwords
Go
26
star
40

gswg-examples

Getting Started with Grunt - Code Examples
JavaScript
25
star
41

webfont-downloader

A small web service which converts webfonts into zip archives
Go
24
star
42

aoc-in-go

A template repository for rapidly writing Advent of Code solutions in Go
Go
19
star
43

conncrypt

Symmetrically encrypt your Go net.Conns
Go
19
star
44

s3hook

Transparent Client-side S3 Request Signing
JavaScript
19
star
45

grunt-source

Reuse a Grunt environment across multiple projects
JavaScript
18
star
46

docker-cloud-torrent-openvpn

cloud-torrent and OpenVPN in a docker container
Shell
17
star
47

longestcommon

Longest common prefix/suffix across of list of strings in Go (Golang)
Go
15
star
48

mega-stream

Stream media content from Mega
JavaScript
14
star
49

node-gitlab-deploy

Deploy a Node server via a Gitlab Webhook
JavaScript
13
star
50

go-template

An automatic cross-compiling Go (golang) repository template using goreleaser and Github actions
Shell
12
star
51

js-play

A JavaScript playground/sandbox for learning, testing and prototyping
CSS
12
star
52

ansi

Easy to use ANSI control codes
Go
12
star
53

subfwd

URL shortening via sub-domains, written in Go
HTML
12
star
54

go-echo-server

View your requests in JSON format
Go
10
star
55

node-echo-server

Responds with the JSONified Request
JavaScript
10
star
56

ddns-daemon

A Simple Dynamic DNS Daemon using Node.js and Route53
JavaScript
10
star
57

whos-home

ARP scan your subnet and POST findings
Go
10
star
58

upnpctl

A small UPnP client
Go
10
star
59

uploader

A small server to receive files over HTTP
JavaScript
9
star
60

dynflare

DynamicDNS using Cloudflare
Go
9
star
61

pnode

peer-to-peer dnode over anything!
JavaScript
9
star
62

go433

Send and receive 433 MHz using a RaspberryPi and Go
Go
9
star
63

sockfwd

Forward a unix socket to a tcp socket
Go
9
star
64

vip

An IPv4 addressing Go (golang) module, based on uint32 instead of []byte
Go
8
star
65

ipflare

Find your public IP address according to Cloudflare
Go
8
star
66

eventsource

An eventsource event encoder in Go (golang)
Go
7
star
67

node-ssh-http-agent

An HTTP agent for tunnelling through SSH connections
JavaScript
7
star
68

sizestr

Pretty print byte counts in Go
Go
7
star
69

sleep-on-lan

Send your computer to sleep via HTTP
JavaScript
7
star
70

requestlog

Simple request logging in Go (golang)
Go
6
star
71

docker-caddy

Caddy in a docker container, configurable via a simple web UI
Dockerfile
6
star
72

pnode-store

A synchronized data store between connected Node.js applications
JavaScript
6
star
73

castlebot

🏰 A bot for your castle
Go
5
star
74

docker-vpn

Dockerized SoftEther VPN with a Web GUI
Shell
5
star
75

node-imdb-sort

Sort files based on IMDB data
CoffeeScript
5
star
76

jquery.prompt

Styled text prompts any element
CoffeeScript
5
star
77

gswg-io

Getting Started with Grunt - Homepage
HTML
5
star
78

compilejs

A mini Grunt.js for the browser
CoffeeScript
5
star
79

go-realtime

Keep your Go structs in sync with your JS objects
JavaScript
4
star
80

md-tmpl

Simple markdown templating using shell commands
Go
4
star
81

cookieauth

Cookie-based Basic-Authentication HTTP middleware for Go (golang)
Go
4
star
82

maplock

A map of locks in Go
Go
4
star
83

opts-examples

A Go (golang) package for building frictionless command-line interfaces
Go
4
star
84

go-mime

Extends pkg/mime with embedded mime types
Go
4
star
85

tranquil

Generate powerful RESTful JSON APIs
CoffeeScript
3
star
86

ipmath

IP Address Math in Go (golang)
Go
3
star
87

xtls

TLS utils
Go
3
star
88

puzzler

A programming puzzle framework in Go
Go
3
star
89

goff

Concatenate audio files, built with Go and FFmpeg
Go
3
star
90

prettyprinter

Simple Pretty Printer using Google's Prettify
HTML
3
star
91

github-badge-maker

Github Badge Maker
JavaScript
3
star
92

opts-talk

A talk on opts, for the Sydney Go Meetup
Go
3
star
93

grunt-source-web

A Grunt Source project to build optimized static websites
CoffeeScript
3
star
94

playground

Next version of https://js.jpillora.com
2
star
95

node-king

The king of your nodes - A powerful command and control center for your server infrastructure
JavaScript
2
star
96

webscan

Scans the entire Web for particular server types and devices
2
star
97

bookshelf

Your personal bookshelf
HTML
2
star
98

debator-lander

Interactive and transparent debates online
2
star
99

js-the-game-of-life

Interactive Game of Life in JavaScript
JavaScript
2
star
100

xmlfmt

A pure Go streaming XML formatter
Go
2
star