RivetTracker Help


About

RivetTracker is a modified version of PHPBTTracker Version 1.5rc3, written by "DeHackEd". This program provides the same functionality as most other BitTorrent trackers and uses MySQL as the database backend. It provides an RSS feed, optional support for HTTP seeding, detailed connection statistics, and much more.

PHPBTTracker was released under the GPLv2 license as is this program.

Some of the images used were provided by the Tango Desktop Project. These images are licensed under the Creative Commons Attribution-ShareAlike 2.5 License.

What is BitTorrent?

BitTorrent is a Peer to Peer (P2P) communication protocol for sharing files. A client downloads a small .torrent file from a website that contains the necessary information to put the whole file or files together. This torrent file contains a link to a tracker or trackers that provide information on who else is downloading or seeding the file. The term seeder refers to someone who has downloaded the entire file and is uploading parts of it to others called leechers. Leechers are people who have started the download and are downloading the file but have not finished yet. The beauty of BitTorrent is that it allows people to share files (especially large ones) easily without incuring huge hosting costs because of bandwidth limitations. Since all seeders and leechers are constantly uploading whatever data they have available, this speeds up the overall distribution of the file. You can start using BitTorrent right now by downloading and installing a BitTorrent client.

If you are new to BitTorrent and have not used it before please be careful when initially using it. Sadly, BitTorrent has become used heavily for distributing pirated movies, music, and games. That being said, many Linux distributions use BitTorrent legally to efficiently release their distribution on a global scale. Many websites use BitTorrent for purposes which may be illegal in the country that you live in. Just be careful and watch what you are downloading!

For more information on the specifics of the BitTorrent protocol you can visit the following websites:

What is a Tracker?

A BitTorrent tracker is a piece of software that BitTorrent clients communicate with in order to receive information about other people downloading the file. You can think of a tracker as a mediator between clients. It doesn't actually transmit the file it just provides information about other people that have it.

RivetTracker is special because it is built using PHP and MySQL. This means you can easily create a website to share files and have a tracker that people around the world are able to connect to. The web-interface makes it easy to navigate and administer.

Requirements

RivetTracker has been tested under Ubuntu Linux, support under Windows is unknown at this time.

RivetTracker Installation

Installation is very easy, just copy the folder and all the files to your webserver. Next, run install.php to create the MySQL database and setup the configuration.

Installation

In this case, I want to create a new database and user that only has access rights to that database. For security reasons, it is recommended that you go with the second option.

Database Setup

In this step I provided the installer with a user that can create other users. You will also be required to specify the hostname of the MySQL server, user that will be created, and the database name. As you can see in the image I have provided all the necessary information. Click install and the script will go through the process of connecting to the MySQL server and running the appropriate setup commands.

Configuration File

This section lets you setup the configuration file that stores all your settings about the tracker. Make sure you read the directions carefully about each item. It's fairly self-explanatory, just take your time. When you are ready click on the create config file button to continue.

An important note about the hidden tracker feature is that it requires a login by either the admin or upload account in order to even view the main torrents page and download them. However, the /torrents folder is NOT protected in any way. You will have to go in and create a .htaccess file or something else to protect that folder. Also, having the hidden tracker on does not mean this is a private tracker. People will still be able to connect to your torrents and use the tracker system if they can get a copy of the torrent. Also, it may be possible if you also have scrape support enabled that a client could connect and get information about what files are on your tracker through the scrape. Unfortunately, I do not know all the details of how scrape works. If you need a very secure tracker, I would suggest checking out the other programs that are available.

At this point, your installation is finished.

***MAKE SURE YOU DELETE install.php AFTER YOU ARE FINISHED INSTALLING!***

Also, make sure that the "torrents" and "rss" folders are writeable by your webserver.

Click on the link to go to your main statistics page.

Main Page

There are no torrents yet because you have not added them to the database.

At this point you can start adding torrents to the database by logging in as either the upload user or as the administrator. When you get to the add torrent page you should see something like this:

Add Torrent

Simply provide a .torrent file that you have created and specify whether you want one, both, or neither of the web seeding features. Most information can be automatically gathered from the torrent file but if you wish, you can provide a specific filename and URL for the database to use.

Click add and you have just added your first torrent to the database. If you go back to the statistics page you should see it listed as well as a link to download the torrent file.

If you want scrape functionality, check the appropriate box in the configuration settings. It is generally safe to leave this enabled, however, there is the possiblity that BitTorrent clients could use this abusively and request this information too much. For trackers that serve large numbers of torrents with many users, this will also increase bandwidth usage. Scraping is used in order to figure out if a request for additional peers is warranted. This request for peers eats up a lot of bandwidth and it is usually better to try to guage this by asking the tracker via a scrape.

The speed information is a rough estimate and only gets updated when a client connects to the tracker.

If you don't like the color scheme you can change it by editing the provided CSS file. Go into the admin page and click on "Change CSS File". From there you will be able to create new CSS files or edit existing ones.

The RSS feed that is available is great for people who publish files on a regular basis, for example audio or video podcasts.

If you want to have legal information like a use policy, create a file called "legalterms.txt" in the main directory where the index.php file is. Inside the legalterms text file, put your information. Now, when people go to login they will have to agree to the terms before it will let them on.

Upgrading

If you are upgrading from a previous installation of RivetTracker there is an easy way to save your torrents. Because there might be changes to the database or changes to the configuration file, it is much easier just to delete the existing database and installation and start from scratch. Before you do this however, go into your current 'torrents' folder and ZIP them all up into one file. Next, delete your current database and do a complete reinstall of RivetTracker. After this, go into the admin page and use the batch upload system to upload the ZIP file you created. This will load each torrent file in the ZIP one by one. It makes it much easier to upload large quantities of torrent files into the database.

HTTP Seeding

There are two standards for providing web seeding in BitTorrent. Web seeding allows an HTTP or FTP server to act as a seeder and provide files to the client. Most of the major BitTorrent clients support one standard or the other, or both.

The first standard was created by BitTornado and you can find the detailed specification here. It requires that the .torrent file be created with an additional list that holds the location or locations of a URL script that provides an interface to the BitTorrent client. The benefit of this is that the script is able to limit bandwidth usage and the number of connections to the server requesting the file. It also prevents hotlinking directly to the file and abuse. The downside is that only some BitTorrent client support this standard.

The other standard for web seeding is detailed by the GetRight creator here. This solution also requires that .torrent files include an additional list of direct links to the file or a link to a directory where the heirarchy can be re-created. The benefit of this standard is that it does not require any additional script be setup or communication with the server that the BitTornado standard does. The downside is that this standard is open to abuse from clients potentially hotlinking directly to the file.

RivetTracker includes support for both standards as well as the scripts required by BitTornado. When you go to add a torrent to the database, there is an option to add web seeding support. Simply fill in the required information and when the torrent is uploaded this information is added into the .torrent file. This makes migration of old torrent files a snap.

Support/Help

If this document was unable to answer your question or you're stuck on something please visit the RivetCode forums or contact me.

Contribute

Want to contribute to future RivetTracker development and releases? There are a couple ways in which you can help. First of all, try to find bugs and submit bug reports. You can also submit suggestions for future versions here. If you know PHP and are willing to dive into the code, adding features and improving on the project would also be immensely helpful.

Finally, if you want to consider donating a few dollars for further development of this software and future projects that would be fantastic. Every little bit helps, thanks!

Thanks To