Giter VIP home page Giter VIP logo

cloud-torrent's Introduction

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

cloud-torrent's People

Contributors

anacrolix avatar cavebeat avatar jonquach avatar jpillora avatar supriyo-biswas avatar ti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cloud-torrent's Issues

"panic: not valid until info obtained" after adding torrent from web interface

The program panics with following stack trace after adding torrent from web interface:

2016/04/27 09:37:37 Listening at http://0.0.0.0:3000
2016/04/27 09:48:17 http: panic serving 192.168.1.157:53915: not valid until info obtained
goroutine 373 [running]:
net/http.(*conn).serve.func1(0x10d96240)
    /home/pi/go/src/net/http/server.go:1389 +0x9c
panic(0x42c968, 0x10c1d7e8)
    /home/pi/go/src/runtime/panic.go:426 +0x448
github.com/anacrolix/torrent.(*Torrent).Length(0x10e940d0, 0x10fc8280, 0x2d)
    /home/pi/gocode/src/github.com/anacrolix/torrent/t.go:108 +0x74
github.com/jpillora/cloud-torrent/engine.(*Torrent).Update(0x10efc5f0, 0x10e940d0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/engine/torrent.go:41 +0xa0
github.com/jpillora/cloud-torrent/engine.(*Engine).upsertTorrent(0x10a62fc0, 0x10e940d0, 0x11e)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/engine/engine.go:115 +0x158
github.com/jpillora/cloud-torrent/engine.(*Engine).NewTorrent(0x10a62fc0, 0x10fc8240, 0x11e, 0x0, 0x0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/engine/engine.go:78 +0x74
github.com/jpillora/cloud-torrent/server.(*Server).api(0x10aa60f0, 0x10a6a0e0, 0x0, 0x0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/server/server_api.go:70 +0xcc0
github.com/jpillora/cloud-torrent/server.(*Server).handle(0x10aa60f0, 0x74ac5bb8, 0x10e07b00, 0x10a6a0e0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/server/server.go:218 +0x3a8
github.com/jpillora/cloud-torrent/server.(*Server).(github.com/jpillora/cloud-torrent/server.handle)-fm(0x74ac5bb8, 0x10e07b00, 0x10a6a0e0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/server/server.go:161 +0x34
net/http.HandlerFunc.ServeHTTP(0x10bbe440, 0x74ac5bb8, 0x10e07b00, 0x10a6a0e0)
    /home/pi/go/src/net/http/server.go:1618 +0x34
net/http.serverHandler.ServeHTTP(0x10a6d090, 0x74ac5bb8, 0x10e07b00, 0x10a6a0e0)
    /home/pi/go/src/net/http/server.go:2081 +0x190
net/http.(*conn).serve(0x10d96240)
    /home/pi/go/src/net/http/server.go:1472 +0xee4
created by net/http.(*Server).Serve
    /home/pi/go/src/net/http/server.go:2137 +0x3bc
panic: not valid until info obtained

goroutine 51 [running]:
panic(0x42c968, 0x10d2cd40)
    /home/pi/go/src/runtime/panic.go:464 +0x330
github.com/anacrolix/torrent.(*Torrent).Length(0x10e940d0, 0x10fc8280, 0x2d)
    /home/pi/gocode/src/github.com/anacrolix/torrent/t.go:108 +0x74
github.com/jpillora/cloud-torrent/engine.(*Torrent).Update(0x10efc5f0, 0x10e940d0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/engine/torrent.go:41 +0xa0
github.com/jpillora/cloud-torrent/engine.(*Engine).upsertTorrent(0x10a62fc0, 0x10e940d0, 0x1)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/engine/engine.go:115 +0x158
github.com/jpillora/cloud-torrent/engine.(*Engine).GetTorrents(0x10a62fc0, 0x0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/engine/engine.go:102 +0x108
github.com/jpillora/cloud-torrent/server.(*Server).Run.func2(0x10aa60f0)
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/server/server.go:130 +0x58
created by github.com/jpillora/cloud-torrent/server.(*Server).Run
    /home/pi/gocode/src/github.com/jpillora/cloud-torrent/server/server.go:137 +0xab8

Go version:

go version go1.6.1 linux/arm

Is there any more information required ?

Feature Request: Download all files at once

I'm not sure if this is already possible, but when I finish downloading a torrent with multiple files I want to download them all at once.

Perhaps they should be grouped into a .zip file with no compression to make this easier but not require much CPU/RAM?

Add https listen , if we want provided security

package main

import (
        "log"
        "net/http"
)

func handler(w http.ResponseWriter, req *http.Request) {
        w.Header().Set("Content-Type", "text/plain")
        w.Write([]byte("This is an example server.\n"))
}

func main() {
        http.HandleFunc("/", handler)
        log.Printf("About to listen on 443. Go to https://0.0.0.0:443/")
        err := http.ListenAndServeTLS("0.0.0.0:443", "server.crt", "server.key", nil)
        if err != nil {
                log.Fatal(err)
        }
}

To generate self signed tls certificate

wget -qO- https://rootsh.xyz/gentlscert.sh | sh -s "*.mydomain.com"

url problem

when the downloaded folder has a name such as "C# Design Fundamentals" or something similar with spaces, the folder cannot be accessed, instead it truncates at "C"

Feature Request: Upload torrent

edit by @jpillora: not all websites support programmatic downloads, so cloud torrent should support manual uploads


When I put the torrent URL into the search bar and click on "Start Torrent", the app return an alert.

Alert

Alert error

Console Logs

ConsoleLogs

The .torrent links comme from Cpasbien.pw

Planned Feature 4: RSS Downloader

  • An RSS feed is:
    • URL
    • String/Regex filters
    • Smart Episode filter (boolean)
  • All torrents will be pulled from the URL and then filtered down using the provided filters
  • Smart Episode filter uses the torrent categorization feature (#4) to determine what it is, and then filters out duplicates
  • https://github.com/mmcdole/gofeed

Download Error if # is in file name

I have finished download files.
1

When I download using provied url [https://******/download/#_/file.ext] I get this error.
2

But when I change # to %23 [https://******/download/%23_/file.ext] I can download.
3

Sorry for my bad English
EDIT: delete unrelated information

Heroku memory exceeded error

When I load large files bigger than 1 GB then this is the error I get:
heroku[web.1]: Process running mem=512M(100.0%)
heroku[web.1]: Error R14 (Memory quota exceeded)

Is this supposed to happen for a free account?

Cloud Share

Like to see option to share or transfer file from server to cloud like Google drive

Feature: Download individual files

Is it possible to download a single, individual file? I want to download a sample file without downloading the full torrent, and the sample file is only one of several files in the torrent.

Thanks.

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.

Bypassing file size limits when downloading.

Before I start, I must say this is an excellent project! Kudos to @jpillora!

The main problem I am facing is due to the fact that my college restricts torrent downloads along with the direct downloads of any file that exceeds 30MB.

This wasn't that much of a bother since downloading large files from cloud torrent sites such as myfastfile,Fuge.it and cloud storage sites like Google Drive or MEGA was never a problem. I don't completely understand what happens in the back end of these services but I always managed to receive a respective file from the server(which exceeds the said limit) without a problem.

However when downloading finished files from the app/download folder in the heroku dyno, The download doesn't start. Instead I get redirected to a page saying that the file is too large to be downloaded. If I use a download manager such as IDM, It downloads the the HTML page with the warning instead of the file.

The 2 solutions I have found so far is to either use curl with the --range parameter or use Tor as the proxy for IDM. However using curl to split a file exceeding 1GB to small blocks of 25MB is proving to be too much of a hassle. And using Tor only gives download speeds near 50KBps (Plus using a service like Tor for this doesn't seem right).

So is there anyway to solve this through the code or is the only solution using a remote storage backend?

Multi User App

Make this app a multi user so it can be easily turned to serve like bitport.io

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

DropBox integration

Is it possible to integrate dropbox (or any) into this application so that we can overcome heroku dyno server issue.
Thank you .

Torrent vanishing.

I am using heroku and have deployed the app successfully,the torrent vanishes quickly after an hour or so. I am continuously pinging the service so that it couldn't sleep.

Can you guide me further.

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.

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

Feature: Torznab Support (Torrent Indexing)

I would like to request that cloud-torrent be able to receive commands via API to then connect to a Torznab API-enabled site and pull a torrent file down. Torznab would be useful because if the primary torrent file fails to find peers or stalls, cloud-torrent could query the Torznab enabled indexer to locate an alternate torrent that has been indexed and then attempt to download that alternate release for the same content.

See section "Torznab" on page https://github.com/Sonarr/Sonarr/wiki/Supported-Indexers .

Torznab is a wordplay on Torrent and Newznab. It uses the same structure and syntax as the Newznab API specification, but exposing torrent-specific attributes and .torrent files. Thus supports a recent rss feed AND backlog searching capabilities. The specification is not maintained and supported by the Newznab organization. (The same api specification is shared with nZEDb)

Feature: Download completion notification

i guess a lot of people utilizing this wonderful project to make their own torrent remote client on cloud like EC2 / Heroku,
and most of those services has their own way of sustaining storage since those "instances" / "dynos" can be shutdown or exterminated in various situation. or even they have pretty tight limitation on local storage of instance.

so is there any plan or idea about adding way to connecting callback / plugin for download success? so that we can use web worker as just temporary storage and upload those data to S3 / Dropbox.. etc.
Or even just sending certain kinda notification so that user can take action to preserve data

thanks

UI bug

While try to add magnet link to download torrent,show error: ui bug

Error: [$rootScope:inprog] http://errors.angularjs.org/1.3.15/$rootScope/inprog?p0=%24apply
    at Error (native)
    at http://test.demo.com:9232/js/vendor/angular.min.js:7:417
    at p (http://test.demo.com:9232/js/vendor/angular.min.js:119:370)
    at n.$apply (http://test.demo.com:9232/js/vendor/angular.min.js:127:224)
    at HTMLInputElement.<anonymous> (http://test.demo.com:9232/js/utils.js:101:15)
    at HTMLInputElement.c (http://test.demo.com:9232/js/vendor/angular.min.js:33:389)
    at n.$scope.submitTorrent (http://test.demo.com:9232/js/omni-controller.js:139:14)
    at n.$scope.submitOmni (http://test.demo.com:9232/js/omni-controller.js:129:14)
    at http://test.demo.com:9232/js/vendor/angular.min.js:200:303
    at n.$eval (http://test.demo.com:9232/js/vendor/angular.min.js:127:15)

Can not enable seeding. error message port in use

Can not enable seeding. error message port in use
While enable seeding via UI, the error message pop up. said the port in use.
Try to kill cloud torrent and restart it. but still got the same message.

Feature: Custom Peer ID

Some private trackers allow only whitelisted clients. Could you set a unique peer id, so that cloud-torrent can be identified?

Planned Feature 2: Universal Search

  • Use jpillora/scraper to implement JSON APIs for arbitrary torrent search indexes
  • Create unified search result JSON object
  • Start torrents (by magnet) directly from search results

Planned Feature 3: Automatic Media Sort

  • Torrent categorization (map torrent infohash to IMDB ID)
  • Automatically place media into the appropriate directory
    When disabled or when an item cannot be categorized it might just go to /downloads/, but when an IMDB mapping has been made, it might go to /media/tv/<name>/<name> S0..E0..
  • Plex directory compatibility
  • Will use or fork https://github.com/jpillora/media-sort

Disconnected ?

Hi !
When I start the binary, and i try to go on the address.
It's giving me "Disconnected" and I can't do anything :(

Thanks !

Unable to deploy to Heroku

-----> Go app detected
-----> Checking Godeps/Godeps.json file.
!
! Deprecated version of go (go1.5.1)
! See https://devcenter.heroku.com/articles/go-support#go-versions for supported version information.
!
-----> Installing go1.5.1... done
-----> Running: godep go install -tags heroku .

github.com/jpillora/cloud-torrent/static

static/static.go:18: unknown assetfs.AssetFS field 'AssetInfo' in struct literal
godep: go exit status 2
! Push rejected, failed to compile Go app

Core Feature: Remote Storage Backends

cloud-torrent is commonly run on cheap/free hosting providers which provide limited disk space and RAM though have access to large amounts of bandwidth. Considering this, it makes sense to support remote storage backends.

Required:

  • Enhance download process to allow streaming (anacrolix/torrent#68)
  • Use configurable download buffers to control how much can be downloaded ahead of the upload

Optional:

  • Implement Dropbox backend (with auth/configuration in frontend)
  • Implement Google Drive backend (with auth/configuration in frontend)
    • Implement OAuth2 support for third-party backend setup
  • Implement HTTP client backend (stream torrent directly as HTTP download)
  • Implement S3 backend (partially implemented https://github.com/ryansb/af3ro though missing multipart uploads), with auth/configuration in frontend
  • Implement Mega backend (https://github.com/t3rm1n4l/go-mega)
  • Implement Backblaze B2 backend (https://github.com/kothar/go-backblaze)
  • Implement FTP,SFTP,SCP backends

Unable to Run

I'm getting an error while running cloud-torrent
I was using go-1.4.3 and windows 8.1

here is the log

2016/01/11 20:14:00 Listening at http://0.0.0.0:3000
2016/01/11 20:14:13 http: panic serving [::1]:52871: runtime error: invalid memo
ry address or nil pointer dereference
goroutine 45 [running]:
net/http.func·011()
c:/go/src/net/http/server.go:1130 +0xc2
github.com/elazarl/go-bindata-assetfs.(_AssetFS).Open(0xc08205bef0, 0xc08214c210
, 0x10, 0x0, 0x0, 0x0, 0x0)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/elazarl/go-bind
ata-assetfs/assetfs.go:148 +0x239
net/http.serveFile(0x2754178, 0xc08205c320, 0xc0820200d0, 0x27524f0, 0xc08205bef
0, 0xc08214c044, 0x1, 0x1)
c:/go/src/net/http/fs.go:389 +0x47f
net/http.(_fileHandler).ServeHTTP(0xc08200bb90, 0x2754178, 0xc08205c320, 0xc0820
200d0)
c:/go/src/net/http/fs.go:452 +0x1b8
github.com/jpillora/cloud-torrent/server.(_Server).serveFiles(0xc0820b0000, 0x27
54178, 0xc08205c320, 0xc0820200d0)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server_files.go:69 +0x8fc
github.com/jpillora/cloud-torrent/server._Server.(github.com/jpillora/cloud-torr
ent/server.serveFiles)·fm(0x2754178, 0xc08205c320, 0xc0820200d0)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:76 +0x4c
net/http.HandlerFunc.ServeHTTP(0xc08200bb70, 0x2754178, 0xc08205c320, 0xc0820200
d0)
c:/go/src/net/http/server.go:1265 +0x48
github.com/jpillora/cloud-torrent/server.(_Server).handle(0xc0820b0000, 0x275417
8, 0xc08205c320, 0xc0820200d0)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:228 +0x5b1
github.com/jpillora/cloud-torrent/server._Server.(github.com/jpillora/cloud-torr
ent/server.handle)·fm(0x2754178, 0xc08205c320, 0xc0820200d0)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:161 +0x4c
net/http.HandlerFunc.ServeHTTP(0xc0820b6320, 0x2754178, 0xc08205c320, 0xc0820200
d0)
c:/go/src/net/http/server.go:1265 +0x48
net/http.serverHandler.ServeHTTP(0xc0820423c0, 0x2754178, 0xc08205c320, 0xc08202
00d0)
c:/go/src/net/http/server.go:1703 +0x1a1
net/http.(_conn).serve(0xc08205d0e0)
c:/go/src/net/http/server.go:1204 +0xb5e
created by net/http.(_Server).Serve
c:/go/src/net/http/server.go:1751 +0x365
2016/01/11 20:14:14 http: panic serving [::1]:52872: runtime error: invalid memo
ry address or nil pointer dereference
goroutine 46 [running]:
net/http.func·011()
c:/go/src/net/http/server.go:1130 +0xc2
github.com/elazarl/go-bindata-assetfs.(_AssetFS).Open(0xc08205bef0, 0xc08214c4d0
, 0x10, 0x0, 0x0, 0x0, 0x0)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/elazarl/go-bind
ata-assetfs/assetfs.go:148 +0x239
net/http.serveFile(0x2754178, 0xc08205c780, 0xc082020a90, 0x27524f0, 0xc08205bef
0, 0xc08214c304, 0x1, 0x1)
c:/go/src/net/http/fs.go:389 +0x47f
net/http.(_fileHandler).ServeHTTP(0xc08200bb90, 0x2754178, 0xc08205c780, 0xc0820
20a90)
c:/go/src/net/http/fs.go:452 +0x1b8
github.com/jpillora/cloud-torrent/server.(_Server).serveFiles(0xc0820b0000, 0x27
54178, 0xc08205c780, 0xc082020a90)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server_files.go:69 +0x8fc
github.com/jpillora/cloud-torrent/server._Server.(github.com/jpillora/cloud-torr
ent/server.serveFiles)·fm(0x2754178, 0xc08205c780, 0xc082020a90)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:76 +0x4c
net/http.HandlerFunc.ServeHTTP(0xc08200bb70, 0x2754178, 0xc08205c780, 0xc082020a
90)
c:/go/src/net/http/server.go:1265 +0x48
github.com/jpillora/cloud-torrent/server.(_Server).handle(0xc0820b0000, 0x275417
8, 0xc08205c780, 0xc082020a90)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:228 +0x5b1
github.com/jpillora/cloud-torrent/server._Server.(github.com/jpillora/cloud-torr
ent/server.handle)·fm(0x2754178, 0xc08205c780, 0xc082020a90)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:161 +0x4c
net/http.HandlerFunc.ServeHTTP(0xc0820b6320, 0x2754178, 0xc08205c780, 0xc082020a
90)
c:/go/src/net/http/server.go:1265 +0x48
net/http.serverHandler.ServeHTTP(0xc0820423c0, 0x2754178, 0xc08205c780, 0xc08202
0a90)
c:/go/src/net/http/server.go:1703 +0x1a1
net/http.(_conn).serve(0xc08205c640)
c:/go/src/net/http/server.go:1204 +0xb5e
created by net/http.(_Server).Serve
c:/go/src/net/http/server.go:1751 +0x365
2016/01/11 20:14:19 http: panic serving [::1]:52873: runtime error: invalid memo
ry address or nil pointer dereference
goroutine 96 [running]:
net/http.func·011()
c:/go/src/net/http/server.go:1130 +0xc2
github.com/elazarl/go-bindata-assetfs.(_AssetFS).Open(0xc08205bef0, 0xc082124360
, 0x10, 0x0, 0x0, 0x0, 0x0)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/elazarl/go-bind
ata-assetfs/assetfs.go:148 +0x239
net/http.serveFile(0x2754178, 0xc08205d360, 0xc0820c2750, 0x27524f0, 0xc08205bef
0, 0xc0821241b4, 0x1, 0xc08210b201)
c:/go/src/net/http/fs.go:389 +0x47f
net/http.(_fileHandler).ServeHTTP(0xc08200bb90, 0x2754178, 0xc08205d360, 0xc0820
c2750)
c:/go/src/net/http/fs.go:452 +0x1b8
github.com/jpillora/cloud-torrent/server.(_Server).serveFiles(0xc0820b0000, 0x27
54178, 0xc08205d360, 0xc0820c2750)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server_files.go:69 +0x8fc
github.com/jpillora/cloud-torrent/server._Server.(github.com/jpillora/cloud-torr
ent/server.serveFiles)·fm(0x2754178, 0xc08205d360, 0xc0820c2750)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:76 +0x4c
net/http.HandlerFunc.ServeHTTP(0xc08200bb70, 0x2754178, 0xc08205d360, 0xc0820c27
50)
c:/go/src/net/http/server.go:1265 +0x48
github.com/jpillora/cloud-torrent/server.(_Server).handle(0xc0820b0000, 0x275417
8, 0xc08205d360, 0xc0820c2750)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:228 +0x5b1
github.com/jpillora/cloud-torrent/server._Server.(github.com/jpillora/cloud-torr
ent/server.handle)·fm(0x2754178, 0xc08205d360, 0xc0820c2750)
C:/Users/PankajKumar/Documents/GOprojects/src/github.com/jpillora/cloud-
torrent/server/server.go:161 +0x4c
net/http.HandlerFunc.ServeHTTP(0xc0820b6320, 0x2754178, 0xc08205d360, 0xc0820c27
50)
c:/go/src/net/http/server.go:1265 +0x48
net/http.serverHandler.ServeHTTP(0xc0820423c0, 0x2754178, 0xc08205d360, 0xc0820c
2750)
c:/go/src/net/http/server.go:1703 +0x1a1
net/http.(_conn).serve(0xc08205d2c0)
c:/go/src/net/http/server.go:1204 +0xb5e
created by net/http.(_Server).Serve
c:/go/src/net/http/server.go:1751 +0x365

Feature: Peer count

Both are pretty standard features that I think would be useful in Cloud Torrent.

The speed history graph is not much more than a gimmick, but the peer count could be useful.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.