GitHub – Dahrkael/ExTracker: Elixir-powered BitTorrent Tracker
The Bittorrent Tracker made in Elixir
π·ββοΈThis project is a Work In Progress. While not ready for full industrial usage it does work.
There is a testing instance running at extracker.dahrkael.net:6969 with all current features enabled (Live statistics).
Implementation Legend:
π² Not Yet π° Partially β
Done β Won’t do
- β High performance (uses ALL the available cores, in-memory storage)
- β Low memory usage (~200MB of RAM for each 1.000.000 peers)
- β Zero setup (launch it and it just works)
- β HTTPS support
- β Database backups to disk
- β WebTorrent
- π° Infohash whitelist/blacklist
- π° Peer management (interval enforcement, cleanup, banning, etc)
- π° Metrics
- π° GeoIP support (statistics, peer restrictions)
- Feel free to propose features in the Issues
There are 3 main ways of running ExTracker currently
For this method to work you need to have Erlang and Elixir installed on your system
- Clone the repository:
git clone https://github.com/Dahrkael/ExTracker.git && cd ExTracker
- If needed, modify the configuration in config/runtime.exs to fit your needs
- run
MIX_ENV=prod iex -S mix
Currently there are no official releases built (soonβ’οΈ). You can however make your own and deploy it where needed:
- Clone the repository:
git clone https://github.com/Dahrkael/ExTracker.git && cd ExTracker
- run
MIX_ENV=prod mix release extracker
for Linux orMIX_ENV=prod mix release extrackerw
for Windows - Find the release files inside the _build/prod/rel/extracker folder (if its a different machine make sure the OS and architecture is the same!)
- Copy the folder to its final destination
- If needed, modify the configuration in releases/{VERSION}/runtime.exs to fit your needs
- Run
bin/extracker start
For this method you can directly run the available docker image: docker run ghcr.io/dahrkael/extracker:latest
or use it as part of docker-compose. Theres an example compose file available.
Note
Since modifying the runtime.exs file to tune the configuration inside the container is not easy you can also configure it using Environment Variables, see the example compose file for the complete list.
Copyright (c) Dahrkael <dahrkael at outlook dot com>
Distributed under the terms of the Apache License, Version 2.0. Please refer to the LICENSE file in the repository root directory for details.