Trackerjs is a project mainly written in JavaScript, it's free.
BitTorrent tracker built in nodejs
trackerjs - A nodejs-based BitTorrent tracker
pre-reqs: node
Clone the repo cd trackerjs edit config.js node tracker.js
Obviously you will need torrents that list your new tracker. In linux I prefer mktorrent:
mktorrent -a http://yourhost:port/announce
Fair warning: this was an exercise to learn more about node and js. The code is terrible, barely works (or may not work for anything but my test), and implements the bare minimum necessary to allow BT peers to talk to one another.
The most horrible hack can be found in byte_array.js. Does js truly not have a binary-safe datatype?
I welcome code or conceptual contributions.
It borrows from Anton Ekblad's bencode.js. Thanks to him.
TODO:
fix host/ip handling
tests
implement peer list selection and numwant
something better than byteArray.
Stats tracking and eventual persistence for a companion index project
IPv6 extensions
Better Configuration