Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I would like to set up a file server that is searchable, preferable via the web. I'm wondering if it would be possible to achieve this using the bittorrent protocol and have a single client sharing every single torrent on the server. I guess I could use some available tracker solution for the webinterface or write one myself.

My concerns are the if there are any limits to the number of torrents a single client can share since this may potentially be >10k torrents.

The number of downloading clients is very small, only myself and my relatives. The idea is to have a single place to host everything from vacation photos to musical creations.

Is there any other options for this kind of file server. It should also be easy to upload files to the server.

share|improve this question

closed as off-topic by RobM, mdpc, Michael Hampton Jan 9 at 2:56

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions must be relevant to professional system administration. Server Fault is dedicated to professional system and network administrators. End user and enthusiast questions are off-topic (contact your system administrator or hire a professional to help you out). Please see the Help Center for more information." – Michael Hampton
If this question can be reworded to fit the rules in the help center, please edit the question.

1  
Belongs on SuperUser. –  John Gardeniers Aug 23 '09 at 23:15

10 Answers 10

In theory it is possible but why would you want to? If you are only going to have a few people looking at it, then you loose the benefits of distributed bandwidth.

share|improve this answer
    
Not necessarily. What if they wants to share 10GB of home movies with 5 people? Using (say) HTTP, they'll have to transfer 50GB of data. Using bittorrent you'll most likely have to transfer less. –  Rory Aug 24 '09 at 10:18
    
Assuming that other people actually keep the torrents open which is unlikely. The overheads of the bittorrent protocol mean you need others to upload around 1.1times what they down to match a http transfer –  Ryaner Aug 24 '09 at 11:30

BitTorrent is probably not the best thing because

a) The biggest problem is not having many torrent files, but making them searchable.

b) They have to use a software which is probably not that easy to use for your relatives.

I would recommend you to look at an online storage service like e.g. Wuala.

share|improve this answer

I would rather recommend plain old FTP. You get your directory listing for free as it's part of the protocol and people don't need an extra client, as all good browsers have a basic FTP Client built in. Only for uploading they need a FTP Program.

BitTorrent will really get messy here, as people cannot just upload stuff - they need to create torrent files for every file and then add the file to the server. The BT Client on the server then needs to be made aware of this and add the .torrent file to it's queue, and only then the user can "upload" his actual file.

share|improve this answer
    
Many places blocks ftp outbound - like wifi hotspots, caf'es, a lot of work places... http should probably be used for internet file transfer these days, sadly :/ –  Oskar Duveborn Aug 24 '09 at 10:16

You could use oneswarm, that is designed for private data sharing using bittorrent like protocol. As I see it you could have at least one client set up to be the server which will always be available to hosts your family photos and whatnot.

I don't really know what the actual limits are to oneswarm but you can share whole directories in it. I do know bittorrent clients tend to become really sluggish if you have many torrents running at the same time.

share|improve this answer

One issue you're going to run into here is that you've only got a limited number of ports / sockets on a single IP address. If you're going to run a system where you have all your files shared via a bittorrent style protocol you're going to run out pretty quickly if you do anything that people are interested in. After you run into this problem, you'll have to start adding new IP addresses, and that'll get old pretty fast.

share|improve this answer
    
And this is ignoring the other issues like if you've got a natting firewall between you and the rest of the internet or other things that try to maintain state, they'll get cranky fast too.. –  chris Aug 23 '09 at 22:39
    
mmm... very disputable statement, I have Torrent Tracker with 46,000 of torrents and 250,000+ peers on a single box. It's still very far away from it's limit and i think this limit is more likely be php-based forum on same box. Rightly tuned FreeBSD has VERY good network performance. –  SaveTheRbtz Aug 23 '09 at 23:17
    
How many hosts are actually connected to your server at any point in time -- ie how many are established or in the process of setting up and tearing down the connections? –  chris Aug 23 '09 at 23:25
1  
now, early in the morning (7am in Russia) I have 5,000 entries in netstat and 40,000 entries in firewall's state table, so i think it'll be about x5 more at weekend's evening. While we we testing previous server we stressed it out to 50,000 requests to XBT Tracker. Developer of nginx server, Igos Sysoev, tuned FreeBSD to handle 200,000 requests on single webserver. –  SaveTheRbtz Aug 24 '09 at 3:55
    
My only point was that, for instance in your case, if you've got 25,000 entries in netstat, you're about 1/3rd of the way to your absolute limit of 2^16 outgoing sockets (or sockets in the process of being set up / torn down). It has nothing to do with performance and everything to do with what you can do with a single IP address. –  chris Aug 26 '09 at 11:47
  1. Bittorent tracker is pretty easy to setup, I know couple of PHP-based, but they are mostly in Russian (TorrentPier - phpbb2 interface, TBDev). You also can also look at XBTT - written in C++ - it can manage millions of peers on single box, but web interface for it is kinda hard to find.
    UPD: I've found this project xbtit they offer it for free under BSD license. You can try demo here.
  2. I think Direct Connect with simple web interface for exchanging magnet links can be more suitable for you. There are plenty of hubs that you can choose, from windows 1-clicks to *nix-only with lua and python scripting support. Just most popular ones: PtokaX, YnHUB, VerliHub).
  3. And of course FTP is still alive! You can easily combine FTP storage with HTTP and easy to install&manage hand made site
share|improve this answer

http://www.rejetto.com/hfs/

HFS is a simple file server for Windows that will allow you to give anyone web-access to any files on your machine. Its super easy to install.

share|improve this answer

You'd be better off using one of the many free web apps out there that include a file upload module. Using bittorrent to share files amoung a few people sounds like a fantastic way to have all the difficulty of use that bittorrents bring with none of the benefits of massively distributed hosts and reduced bandwidth at any one point to make up for it.

share|improve this answer

Try Jake: http://jakeapp.com/

Jake is a collaborative file sharing tool that allows you to securely and easily share files on your computer with other people. Just drag a folder into Jake, invite your friends or co-workers and start sharing!

share|improve this answer
    
A year later, I tried, and I got this: "Ruby on Rails application could not be started". While outsourcing makes some things easier, it also makes you dependent on the other party - if that service goes down or the company goes out of business, how will you get to your data? Give it some thought before you commit to such service - the answer could very well be "you won't". –  Piskvor Jan 9 '11 at 16:06

If you're willing to pay, you could host your data on Amazon's S3. It includes automatic BitTorrent support

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.