I’ve been running torrents on my server for quite a while now. I used to run Azureus on my desktop, but because it’s Java-based, it was quite heavy on memory.
To run torrents on my server I used Torrentflux. It’s a PHP-webinterface to BitTornado and it has a nice community and forum where they regularly post hacks to add new features. After a while I found out there was a different version (fork) of Torrentflux with more features and I switched.
This fork of Torrentflux is called Torrentflux-b4rt. It adds a bunch of new features, including some improvements to the interface and support for multiple bittorrent clients. TF-b4rt supports BitTornado, Mainline, Transmission and Azureus.
Azureus support is provided through a piece of middleman software called Fluazu, which talks in XML to Azureus. This (and being written in Python) causes Fluazu to use quite a bit of CPU cycles. About 10-30% on my 2.13Ghz Core2Duo server. It’s also a rather delicate system, if you manually delete a torrent through the Azureus-GUI/console, or disk, the webinterface starts to bug. It will show torrents running that aren’t, and you can’t delete them because it’s convinced they’re still active. But even if I didn’t do something like that, Fluazu got confused with my torrents.
The main reason I wanted to use Azureus (and thus, Fluazu), is the support for global download/upload rate-limits. However, the extra CPU usage for Fluazu was bothering me and I looked for alternatives.
Azureus Web Interface
Azureus has it’s own web interface. Two actually. The HTML Web-UI, and the Swing Web-UI. I tried the Swing Web-UI and it works rather well. You upload torrents, Azureus downloads them. Because it talks directly to Azureus it’s more reliable than Torrentflux-Fluazu.
Installing the Swing Web-UI breaks support for TF-B4rt/Fluazu.
Another webinterface is called Clutch. It’s a webinterface that talks to the Tranmisson daemon. Transmission is a fast light-weight torrent client. Using the daemon version, you can have multiple uploads with a global upload/download limit.
After loading about 20 torrents in Transmission, I was using about 1% memory, while Azureus used 9.5%. CPU usage for Azureus was 2-4%, while Transmission rarely got above 1%.
Torrentflux-b4rt provides the most functuonality. It has some features you can’t find in the other two. For example you can enter RSS-feeds for torrents that get downloaded automatically and you can upload multiple files at a time. Also you can stop/start/delete all torrents and data at once. It also supports multiple users, multiple torrent-clients and has more extensive statistics. Because of all these extra feature, Torrentflux is also used in hosted solutions.
Unfortunately it doesn’t support global upload/download limits on its own. It needs the Fluazu/Azureus combination for this. And using this combination is rather CPU intensive. So all in all, Torrentflux-b4rt is a great solution if you don’t need the global upload/download limits.
The Azureus Web Interface is very nice if you’re a single user. The Azureus bittorrent client has a lot of features so having a web interface to this powerful client is great. It’s quite a bit more resource intensive compared to BitTornado or Transmission, but it does feature advanced features like the distributed tracker, which allows you to download torrents of which the original tracker is down.
Transmission+Clutch has a very clean interface and turned out to be the best choice for me. It doesn’t have all the advanced features of Torrentflux, but it does the basics just right. It requires few resources, allows you to set global upload/download rates and it has a feature to start/stop all torrents at once.