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

Overview

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

Issues
  • Can we implement this on web hosting like hostgator or any other?

    Can we implement this on web hosting like hostgator or any other?

    Hello...

    As title say, i have hosting plan of hostgator where i get unlimited space and bandwidth. Is it possible to implement this project on own domain. like if i want to use this project at mydomain.xyz can we do that. if so can you please explain how?

    Best Regards Viral Patel

    opened by viral316 10
  • installation error

    installation error

    Fetching https:///cloud-torrent?go-get=1 https fetch failed. Fetching http:///cloud-torrent?go-get=1 import "/cloud-torrent": http/https fetch for import "/cloud-torrent": Get http:///cloud-torrent?go-get=1: dial tcp :80: connection refused package /cloud-torrent: unrecognized import path "/cloud-torrent"

    can u give the detail information how to install the cloud torrent because iam getting the error

    question 
    opened by nniku121 9
  • Install in centos

    Install in centos

    Can any one help me with a guide or something How to install this script in centos ? Too bad that it's not written in node.js, it would be easy to install.

    opened by alicoder 8
  • Feature Request: Browser Extension

    Feature Request: Browser Extension

    First of all, thank you.

    This is a little bit unrelated to software itself directly but is it possible to make a browser extension to directly add magnet links to Cloud Torrent.

    When users click right on a magnet link, there will be an option in the browser's context menu as in picture below and clicking on it will send magnet link to Cloud Torrent:

    image

    I know everyone has their own Cloud Torrent, so i don't know if this possible or not. Sorry in advance.

    opened by mortyobnoxious 7
  • Contribution guidelines ?

    Contribution guidelines ?

    @jpillora Can you put some contribution guidelines ? Like, how to setup the project for development. Also, mention about how packages are managed in the project, the vendor folder, since golang has many ways to do it.

    And I am quite new to Golang, but I would like to learn by contributing :smile:

    opened by karuppiah7890 6
  • Migrate from godep to vendor

    Migrate from godep to vendor

    Help wanted :)

    I tried to do this a while back though it broke heroku's Go buildpack, so maybe we need to use a different one or maybe it's updated now, not sure. So the only two requirements are:

    • Works with Go 1.6
    • Works with Heroku
    bug 
    opened by jpillora 6
  • get error on heroko while deploying

    get error on heroko while deploying

    how to i fix this error. here was an issue building your app. This can mean your app.json's project is not a valid Heroku application. Please ensure your app is deployable to Heroku and try again.

    bug 
    opened by buziyborni 6
  • How to install cloud torrent on an apache linux server?

    How to install cloud torrent on an apache linux server?

    Hello,

    First of all, I would like to thank you for this awesome script, I've tried TorrentFlux before and didn't manage to make it work, but your script works like a charm. Sometimes, the download gets interrupted and the torrents get removed from the list because of the limits of the free account on Heroku (sleeps after 30 mins of inactivity).

    I'm trying to install cloud torrent on my SSD web-hosting DigitalBerg but I have no clue how it is done! If there are any tutorials or hints available about this matter, I would be grateful.

    Thank you in advance.

    question 
    opened by PavilionVI 6
  • Page not loading (Deployed on Docker)

    Page not loading (Deployed on Docker)

    First of all thank you so much for your amazing work. I have used the older image from docker hub and it worked like charm. Just before 2 days back I tried updating so that I can get new features but unfortunately page is not loading.

    What I have done? Deleted the image, volumes, dangling volumes, container then pulled the new image, re-created the container. Tried in all the browsers (Firefox Quantum, Firefox 55, Chrome, Opera). Also no errors found in docker logs

    Getting this below error.

    error_while_loading

    Please let me know if I am doing something wrong or is there any way to get the older image file? Thank you for your help in advance! :)

    opened by sant-sh 5
  • NaN download speed

    NaN download speed

    I installed cloud-torrent a month age on my DigitalOcean VPS. It worked well. Yesterday i reinstalled it for some reason. Then no matter what torrent i loaded. The download speed remands "NaN undefinedB / XX GB - 0% - NaN undefinedB/s". Maybe the last update have some bugs. I hope you can fix it. Thanks!

    image

    opened by fa1247 5
  • Redundant Set-Cookie headers sent out by cloud-torrent

    Redundant Set-Cookie headers sent out by cloud-torrent

    It appears that cloud-torrent assigns out separate cookies for every request made to a resource. This fills up the cookie jar, and other applications on the same domain are not able to create cookies later.

    The cookie is assigned in the second request, as it should be. In this case, the cookie path is /torrents/:

    1

    Now, every request from then onward is also served with its own Set-Cookie header, and the path of the resource. For example, the cookie path for the request below is /torrent/js/vendor/angular.min.js:

    2

    IMO, the following should be done:

    • Don't perform basic auth/cookie checks for static assets; they're not sensitive.
    • Check access only for /, /api, /search etc. endpoints
    • Don't repeatedly sent out Set-Cookie headers if a valid one was already in the request; send them only if Authorization is missing in the header or the cookie isn't valid.
    bug 
    opened by supriyo-biswas 5
  • Ability to play media files inside a directory

    Ability to play media files inside a directory

    Currently when click on a downloaded directory it gives the option to download the directory as a zip file. I want to be able to traverse inside a directory and play a media file present in the directory.

    opened by htielr 0
  • Add download zip file of main directory

    Add download zip file of main directory

    Hello, please add download zip file button for main directory with all files. when click on zip download then start for create zip file of main download directory with all files inside directory and button text show zipping... once zip created then start download automatically.
    please also add rest API ("xxx:xx/api/zip") for create zip file from torrent hash and response json with process percentage of zipping, status and download link or file path.

    why need this? because current zip download is not resume supported download.

    thank you

    opened by vihatsoft 2
  • Automatically add a systemd service to the bash script

    Automatically add a systemd service to the bash script

    A that would be needed is to add this to the script:

    cat << SERVICE_CMD | sudo tee /etc/systemd/system/cloud-torrent.service
    [Unit]
    Description=Cloud Torrent System Daemon
    After=network.target
    
    [Service]
    Type=simple
    ExecStart=/usr/local/bin/cloud-torrent
    StandardOutput=append:/var/log/cloud-torrent.log
    Restart=on-failure
    RestartSec=3
    
    [Install]
    WantedBy=multi-user.target
    SERVICE_CMD
    

    This will spit out a ready-to-use service that only needs the user to run:

    sudo systemctl enable --now cloud-torrent
    

    Uninstall would be simple:

    sudo systemctl disable --now cloud-torrent
    sudo rm -f /etc/systemd/system/cloud-torrent.service
    
    opened by Lyamc 0
Releases(0.8.25)
Owner
Jaime Pillora
Jaime Pillora
Torrent-metainfo-parser - Generates a .torrent meta info from a file

torrent-metainfo-parser generates a .torrent meta info from a file required argu

Asaad Belarbi 1 Feb 14, 2022
Self-hostable , easy-to-use , lightweight and feature-rich torrent client written in Go

Self-hostable , easy-to-use , lightweight and feature-rich torrent client written in Go . It comes with beautiful Web UI and Optional Multi-User Support . Run Locally or Host in Server . Open/Download/Stream Torrents in Browser Right Away!

Var Bhat 1.5k Aug 1, 2022
A totally configurable terminal torrent client.

mtorrent A totally configurable terminal torrent client. Download go get github.com/nektro/mtorrent Releases https://github.com/nektro/mtorrent/relea

Meghan 69 Jul 12, 2022
torpar is TUI client for Torrent Paradise .

torpar is TUI client for Torrent Paradise . Torrent Paradise is Decentralized DHT Torrent Search Site

Var Bhat 205 Jul 12, 2022
Torrent client designed for seeding tens of thousands of torrents.

Gamayun This project is currently a prototype. It is not usable in any shape or form. One day, this will be an efficient BitTorrent client, handling l

Dominik Honnef 14 Jul 27, 2022
The fastest way to create self-hosted exit-servers

inletsctl - the fastest way to create self-hosted exit-servers inletsctl automates the task of creating an exit-server (tunnel server) on public cloud

inlets 420 Jul 28, 2022
Headscale - An open source, self-hosted implementation of the Tailscale control server

Headscale - An open source, self-hosted implementation of the Tailscale control server

Juan Font 6.1k Aug 3, 2022
Gogrok is a self hosted, easy to use alternative to ngrok. It uses SSH as a base protocol, using channels and existing functionality to tunnel requests to an endpoint.

gogrok A simple, easy to use ngrok alternative (self hosted!) The server and client can also be easily embedded into your applications, see the 'serve

Tyler Stuyfzand 5 Jun 15, 2022
Underpass - Self-hosted ngrok alternative.

Underpass Self-hosted ngrok alternative. Installation (CLI) brew install

Caleb Denio 48 Aug 3, 2022
Self-hosted and Easy-to-deploy Cloudflare based Dynamic DNS service for router

Self-hosted and Easy-to-deploy Cloudflare based Dynamic DNS service for router Contents Features Environment Variables Installation Heroku Docker (Run

Aseem Manna 4 May 30, 2022
Self-hosted reverse-proxy for F1 web viewer.

F1WebViewer-SelfHosted Self-hosted reverse-proxy for F1 web viewer and includes a web server at port 13331. You can also run this proxy on a server if

ieb 52 Jul 30, 2022
Provide cloud-edge message synergy solutions for companies and individuals.the cloud-edge message system based on NATS.

Swarm This project is a cloud-edge synergy solution based on NATS. quikly deploy cloud deploy on k8s #pull the project. git clone https://github.com/g

null 1 Jan 11, 2022
DeepValueNetwork is a peer-to-peer database network managed and hosted by its community.

DeepValueNetwork To understand what DeepValueNetwork will be, I suggest you read this document. In progress This software is currently being developed

DeepValue Network 337 Jul 26, 2022
Command-line tool and library for Windows remote command execution in Go

WinRM for Go Note: if you're looking for the winrm command-line tool, this has been splitted from this project and is available at winrm-cli This is a

Brice Figureau 369 Jul 19, 2022
Local development against a remote Kubernetes or OpenShift cluster

Documentation - start here! ** Note: Telepresence 1 is being replaced by our even better Telepresence 2. Please try Telepresence 2 first and report an

Telepresence 5.2k Aug 1, 2022
Simple HTTP tunnel using SSH remote port forwarding

Simple HTTP tunnel using SSH remote port forwarding

Skye L. 20 Apr 17, 2022
EasyAgent is an infrastructure component, applied to manage the life-cycle of services on the remote host.

Easyagent English | 中文 介绍 easyagent是在袋鼠云内部广泛使用的基础架构组件,最佳应用场景包括ELK体系beats等数据采集器的管控和配置管理、数栈体系自动化部署等 基本原理 easyagent主要有sidecar和server两个组件,sidecar部署在主机端,si

袋鼠云 20 Jul 26, 2022
V3IO Frames ("Frames") is a Golang based remote data frames access (over gRPC or HTTP stream)

V3IO Frames ("Frames") is a multi-model open-source data-access library that provides a unified high-performance DataFrame API for working with different types of data sources (backends). The library was developed by Iguazio to simplify working with data in the Iguazio Data Science Platform ("the platform"), but it can be extended to support additional backend types.

null 23 Mar 3, 2022
A major platform Remote Access Terminal Tool based by Blockchain/P2P.

NGLite A major platform Remote Access Terminal Tool based by Blockchain/P2P. No public IP address required.More anonymity Example Detection Warning!!!

null 262 Jul 28, 2022