Ocelot is a BitTorrent tracker written in C++ for the Gazelle project. It supports requests over TCP and can only track IPv4 peers.
- GCC/G++ (11+ required; 11.4.0+ recommended)
- Boost (1.74.0+ required)
- libev (required)
- MySQL++ (3.2.0+ required)
- jemalloc (optional, but strongly recommended)
- TCMalloc (optional)
sudo apt-get install \
build-essential \
cmake \
default-libmysqlclient-dev \
libboost-iostreams-dev \
libboost-system-dev \
libev-dev \
libjemalloc-dev \
libmysql++-dev \
netcat-traditional \
pkg-config
cmake -Wno-dev . -B build
make -C buildThe Gazelle installation guides include instructions for installing Ocelot as a part of the Gazelle project.
docker build . -t ocelot
docker run -v $(pwd)/ocelot.conf:/srv/ocelot.conf ocelot-
Prepare the build environment. (This must be re-executed when new source files are added).
cmake -Wno-dev . -B build -
Create the following tables according to the Gazelle database schema:
torrentstorrents_leech_statsusers_freeleechesusers_leech_statsusers_mainxbt_client_whitelistxbt_files_usersxbt_snatched
-
Edit
ocelot.confto your liking. -
Build Ocelot:
make -C build
-c <path/to/ocelot.conf>- Path to config file. If unspecified, the current working directory is used.-v- Print queue status every time a flush is initiated.
You can run a test ocelot daemon alongside a production daemon by specifying
a separate configuration file, and setting readonly = true. This will
prevent the database peer tables from being reset.
SIGHUP- Reload configSIGUSR1- Reload torrent list, user list and client whitelist