Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated README.md #241

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
201 changes: 121 additions & 80 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,90 +1,80 @@
<img src="https://user-images.githubusercontent.com/633843/32198822-e59a0fc4-be1d-11e7-9b92-03ce17ba05ba.png" alt="screenshot"/>
<div align="center">

**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.
# cloud-torrent

### Features
:sun_behind_large_cloud: Self-hosted remote torrent client

* Single binary
* Cross platform
* Embedded torrent search
* Real-time updates
* Mobile-friendly
* Fast [content server](http://golang.org/pkg/net/http/#ServeContent)
[![Releases][shield-total-dl]][link-release]
[![Latest Release][shield-release]][link-release-latest]
[![Docker Pulls][shield-docker-pulls]][link-docker]
[![Image Size][shield-docker-size]][link-docker]
[![Discord][shield-discord]](https://discord.gg/x4sa3fP)

See [Future Features here](#future-features)
[![cloud-torrent](https://griko.keybase.pub/shared/screenshots/cloud-torrent-preview.png)](.)

### Install
</div>

**Binaries**
**cloud-torrent** is a self-hosted remote torrent client written in
[golang](https://golang.org). 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.

[![Releases](https://img.shields.io/github/release/jpillora/cloud-torrent.svg)](https://github.com/jpillora/cloud-torrent/releases) [![Releases](https://img.shields.io/github/downloads/jpillora/cloud-torrent/total.svg)](https://github.com/jpillora/cloud-torrent/releases)
## Features

See [the latest release](https://github.com/jpillora/cloud-torrent/releases/latest) or download and install it now with
- Single binary
- Cross-platform (Windows, Linux, macOS, or anything that runs Go)
- Embedded torrent search
- Real-time updates
- Mobile-friendly
- Fast content server ([read more](http://golang.org/pkg/net/http/#ServeContent))

```
curl https://i.jpillora.com/cloud-torrent! | bash
```
More features coming soon, see [upcoming features](#upcoming-features) for more
information.

*Tip*: [Auto-run `cloud-torrent` on boot](https://github.com/jpillora/cloud-torrent/wiki/Auto-Run-on-Reboot)
## Architecture

**Docker**
![Architecture][image-arch]

[![Docker Pulls](https://img.shields.io/docker/pulls/jpillora/cloud-torrent.svg)][dockerhub] [![Image Size](https://images.microbadger.com/badges/image/jpillora/cloud-torrent.svg)][dockerhub]
Fun fact: **cloud-torrent** was originally developed using
[Node.js](https://github.com/jpillora/node-torrent-cloud).

[dockerhub]: https://hub.docker.com/r/jpillora/cloud-torrent/
## How to use

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

**Source**
### Using binaries

*[Go](https://golang.org/dl/) is required to install from source*
Download the [latest release on GitHub][link-release-latest] or run this
command to automatically install **cloud-torrent**:

``` sh
$ go get -v github.com/jpillora/cloud-torrent
```sh
curl https://i.jpillora.com/cloud-torrent! | bash
```

**VPS**
Here's how to [configure **cloud-torrent** to run on boot][wiki-autorun].

[Digital Ocean](https://m.do.co/c/011fa87fde07)
### Using Docker

1. [Sign up with free $10 credit](https://m.do.co/c/011fa87fde07)
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](https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe), Mac: Terminal)
11. Follow the prompts to set a new password
12. Run `cloud-torrent` with:
**cloud-torrent** is also avaliable as a [Docker image][link-docker], which you
can run by running this command:

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](http://www.vultr.com/?ref=6947403-3B)
```sh
docker run -d -p 3000:3000 \
-v /path/to/my/downloads:/downloads \
jpillora/cloud-torrent
```

* [Sign up with free $10 credit here](http://www.vultr.com/?ref=6947403-3B)
* Follow the DO tutorial above, very similar steps ("Applications" instead of "One-Click Apps")
* Offers different server locations
### Build from sources

[AWS](https://aws.amazon.com)
Install [golang](https://golang.org/dl) on your machine and run this command:

**Heroku**
```sh
go get -v github.com/jpillora/cloud-torrent
```

Heroku is no longer supported
## Usage

### Usage
You can type `--help` to view all available options:

```
```text
$ cloud-torrent --help

Usage: cloud-torrent [options]
Expand All @@ -107,39 +97,90 @@ $ cloud-torrent --help

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

```

### Future features
## Contributing

### Report issues

Submit your issue by describing your problem thoroughly, include screenshots
and steps to reproduce the current issue. Duplicate or undetailed issues will
be closed. For quick questions, please join the
[Discord community server](https://discord.gg/x4sa3fP).

### Help with development

1. Fork this project on GitHub
2. Do your magic
3. Submit a [pull request](https://github.com/jpillora/cloud-torrent/compare)
4. ...
5. Profit!

See the [contributing readme][link-contribute] for more information.

## Upcoming features

The next set of [core features can be tracked here][link-upcoming]. Most
features requires large structural changes and therefore requires a complete
rewrite for best results. The rewrite is currently in progress in the `v0.9`
branch, though it will take quite some time.

In summary, here are the upcoming features:

- **Remote backends**

Version `0.9` will be more of a general purpose cloud transfer engine, which
will be capable of transfering files from and to any filesystem. A torrent
can be viewed as 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** filesystem backend. You can
[track this issue (#24)][link-issue-24] and view the list of proposed
backends.

The next set of [core features can be tracked here](https://github.com/jpillora/cloud-torrent/issues?q=is%3Aopen+is%3Aissue+label%3Acore-feature). 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.
- **File Transforms**

In summary, the core features will be:
During a file transfer, one could apply different transforms against the byte
stream for various effects. For example, supported transforms might include
video transcoding (using `ffmpeg`), encryption and decryption,
[media sorting or file renaming (#4)][link-issue-4], and writing multiple
files as a single zip file.

* **Remote backends**
- **Automatic updates**

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.
Binary will upgrade itself, which adds new features as they get released
without having to manually download new versions.

* **File Transforms**
- **RSS Feeds**

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](https://github.com/jpillora/cloud-torrent/issues/4) (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.
Automatically add torrents based on RSS, with smart episode filters for
downloading movies or TV shows.

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

#### Donate
Your donations helps [@jpillora](https://github.com/jpillora) supercharge his
development. You can donate to via [Paypal][link-donate-paypal] or Bitcoin
`1AxEWoz121JSC3rV8e9MkaN9GAc5Jxvs4`.

If you'd like to buy me a coffee or more, you can donate via [PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=dev%40jpillora%2ecom&lc=AU&item_name=Open%20Source%20Donation&button_subtype=services&currency_code=USD&bn=PP%2dBuyNowBF%3abtn_buynowCC_LG%2egif%3aNonHosted) or BitCoin `1AxEWoz121JSC3rV8e9MkaN9GAc5Jxvs4`.
## Special thanks

### Notes
- [anacrolix/torrent](https://github.com/anacrolix/torrent) - BitTorrent
package for golang

This project is the rewrite of the original [Node version](https://github.com/jpillora/node-torrent-cloud).
[image-arch]: https://docs.google.com/drawings/d/1ekyeGiehwQRyi6YfFA4_tQaaEpUaS8qihwJ-s3FT_VU/pub?w=606&h=305

![overview](https://docs.google.com/drawings/d/1ekyeGiehwQRyi6YfFA4_tQaaEpUaS8qihwJ-s3FT_VU/pub?w=606&h=305)
[shield-discord]: https://img.shields.io/discord/457548371633373186.svg
[shield-docker-pulls]: https://img.shields.io/docker/pulls/jpillora/cloud-torrent.svg
[shield-docker-size]: https://images.microbadger.com/badges/image/jpillora/cloud-torrent.svg
[shield-release]: https://img.shields.io/github/release/jpillora/cloud-torrent.svg
[shield-total-dl]: https://img.shields.io/github/downloads/jpillora/cloud-torrent/total.svg

Credits to @anacrolix for https://github.com/anacrolix/torrent
[link-contribute]: https://github.com/jpillora/cloud-torrent/blob/master/CONTRIBUTING.md
[link-docker]: https://hub.docker.com/r/jpillora/cloud-torrent
[link-donate-paypal]: https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=dev%40jpillora%2ecom&lc=AU&item_name=Open%20Source%20Donation&button_subtype=services&currency_code=USD&bn=PP%2dBuyNowBF%3abtn_buynowCC_LG%2egif%3aNonHosted
[link-issue-4]: https://github.com/jpillora/cloud-torrent/issues/4
[link-issue-24]: https://github.com/jpillora/cloud-torrent/issues/24
[link-release]: https://github.com/jpillora/cloud-torrent/releases
[link-release-latest]: https://github.com/jpillora/cloud-torrent/releases/latest
[link-upcoming]: https://github.com/jpillora/cloud-torrent/issues?q=is%3Aopen+is%3Aissue+label%3Acore-feature

Copyright (c) 2017 Jaime Pillora
[wiki-autorun]: https://github.com/jpillora/cloud-torrent/wiki/Auto-Run-on-Reboot