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). Features Implementation Legend: 🔲 Not Yet 🔰 Partially ✅ Done ❌ Won't do Important Features ✅ 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) Tracker-related BitTorrent Enhancement Proposals Final and Active Process BEPs ✅ BEP 0: The BitTorrent Protocol Specification Accepted BEPs Draft BEPs Deferred BEPs ❌ BEP 8: Tracker Peer Obfuscation Other Features ✅ 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 Setup There are 3 main ways of running ExTracker currently Straight from source code 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 From Releases 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 or MIX_ENV=prod mix release extrackerw for Windows for Linux or 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 Docker 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 and license Copyright (c) Dahrkael Distributed under the terms of the Apache License, Version 2.0. Please refer to the LICENSE file in the repository root directory for details.