Recently, I had two reasons to look at Bittorrent again:

  • The release of Fedora 22, and the desire to use my server as a seeder for the various ISO files for the new Fedora 22.
  • The release of Zak MacCracken Directors Cut, which is quite a huge file (about 3GB) and the download from Google Drive is sometimes limited.

Since I tried last time, things have become so much easier.

Install Transmission for Seeding
I installed a CentOS7, with Transmission.

yum install epel-release
yum install transmission transmission-cli transmission-daemon

In my LXC setup, I needed to configure iptables for both TCP and UDP:

iptables -t nat -A PREROUTING -p tcp -d 85.25.109.83/32 -i p10p1 -m tcp --dport 51413 -j DNAT --to-destination 10.0.3.34:51413
iptables -t nat -A PREROUTING -p udp -d 85.25.109.83/32 -i p10p1 -m udp --dport 51413 -j DNAT --to-destination 10.0.3.34:51413
/etc/network/if-post-down.d/iptablessave
./initWebproxy.sh 34 bittorrent.solidcharity.com
# change to port 9091 in the nginx conf file

This is the configuration inside the bittorrent container again:

systemctl enable transmission-daemon
systemctl start transmission-daemon
systemctl stop transmission-daemon
vi /var/lib/transmission/.config/transmission-daemon/settings.json
 rpc-whitelist-enabled: false
 rpc-authentication-required: true
 rpc-enabled: true
 rpc-user: yourusername
 rpc-password: secret

To mirror existing torrents, you can upload a torrent eg. from https://torrents.fedoraproject.org/ through the web interface of Transmission.
You find the uploaded files in /var/lib/transmission/Downloads.

Install your own tracker
For the tracker, I chose to use Bitstorm, and have adjusted it a bit: https://github.com/tpokorra/bitstorm forked from https://github.com/wsv-accidis/bitstorm. What I like about Bitstorm is that you can specify which torrents your tracker should server. That way, you can keep unwanted torrents out. See the _config.sample.php for details.

I have that tracker running on a different machine, because I had some problems if I was running it on the same container or even host as the Transmission seeder server. Bitstorm just requires PHP and Mysql.

Create your own torrent

mkdir /var/lib/transmission/Downloads/ZakMcKracken-BTAS-Linux
mv *.tar.gz /var/lib/transmission/Downloads/ZakMcKracken-BTAS-Linux
cd /var/lib/transmission/Downloads/ZakMcKracken-BTAS-Linux
md5sum ZakMcKracken-BTAS.tar.gz > ZakMcKracken-BTAS.md5sum
cd ..
transmission-create ZakMcKracken-BTAS-Linux --piecesize 256 --tracker http://bt.solidcharity.com:80
# publish /var/lib/transmission/Downloads/ZakMcKracken-BTAS-Linux.torrent
Setup your own Bittorrent seeder and tracker
Tagged on: