jpillora / cloud-torrent Goto Github PK
View Code? Open in Web Editor NEW☁️ Cloud Torrent: a self-hosted remote torrent client
License: GNU Affero General Public License v3.0
☁️ Cloud Torrent: a self-hosted remote torrent client
License: GNU Affero General Public License v3.0
Make this app a multi user so it can be easily turned to serve like bitport.io
-----> 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 .
static/static.go:18: unknown assetfs.AssetFS field 'AssetInfo' in struct literal
godep: go exit status 2
! Push rejected, failed to compile Go app
/downloads/
, but when an IMDB mapping has been made, it might go to /media/tv/<name>/<name> S0..E0..
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.
The .torrent links comme from Cpasbien.pw
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
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.
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"
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.
It'll be good thing if downloaded files can be streamed in a controlled manner , it can be very useful .
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
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?
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?
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.
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.
hi, i want to install cloud-torrent on my own ubuntu vps as a web page like it work on heroku, how? thanks.
and why not support mega anymore?
I am getting the error engine/engine.go:42: unknown torrent.Config field 'ConfigDir' in struct literal
when building from source.
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 ?
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:
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"
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?
It is possible to add the option of deselecting unwanted file?
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)
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 !
Is it possible to integrate dropbox (or any) into this application so that we can overcome heroku dyno server issue.
Thank you .
Like to see option to share or transfer file from server to cloud like Google drive
hi Jaime Pillora
This app work fine on heroku :)
How i run this app on https://c9.io/ because they provide better server resource than heroku ?
I am newbie to go :)
On cloud9 there few resource on go language please help me
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.
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)
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
Why no more cloud backend in this 2nd version?
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.
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:
Optional:
Engine
(Go interface - see engine.go)Some private trackers allow only whitelisted clients. Could you set a unique peer id, so that cloud-torrent can be identified?
hey i just deployed the app to heroku, downloaded a torrent and after downloading the first torrent, the app stops responding and need to redeploy the app, am i doing something wrong?
please help me
Hey,
it would be cool if there would be a way to cancel loading torrents:
Greetings
Navo
Would you please add support for ed2k?
Having a self-signed cert is better than no TLS at all.
And keep the rest in cloud.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.