Git Product home page Git Product logo

torrust-tracker's Introduction

Torrust Tracker

README HEADER

Test

Open Source Cool Nautilus Sponsored

📢Important Updates 📢


Index


Project Description

Torrust Tracker is a lightweight but incredibly powerful and feature-rich BitTorrent tracker made using Rust.

Features

  • Multiple UDP server and HTTP(S) server blocks for socket binding possible
  • Full IPv4 and IPv6 support for both UDP and HTTP(S)
  • Private & Whitelisted mode
  • Built-in API
  • Torrent whitelisting
  • Peer authentication using time-bound keys
  • newTrackon check supported for both HTTP, UDP, where IPv4 and IPv6 is properly handled
  • SQLite3 Persistent loading and saving of the torrent hashes and completed count
  • MySQL support added as engine option
  • Periodically saving added, interval can be configured

Implemented BEPs

  • BEP 3: The BitTorrent Protocol
  • BEP 7: IPv6 Support
  • BEP 15: UDP Tracker Protocol for BitTorrent
  • BEP 23: Tracker Returns Compact Peer Lists
  • BEP 27: Private Torrents
  • BEP 41: UDP Tracker Protocol Extensions
  • BEP 48: Tracker Protocol Extension: Scrape

Roadmap

Coming soon.


Installation

You can get the latest binaries from releases or follow the install from scratch instructions below.

  1. Clone the repo.

    git clone https://github.com/torrust/torrust-tracker.git
    cd torrust-tracker
  2. Build the source code.

    cargo build --release

Usage

  • Run the torrust-tracker once to create the config.toml file:

    ./target/release/torrust-tracker
  • Edit the newly created config.toml file according to your liking, see configuration documentation. Eg:

    log_level = "info"
    mode = "public"
    db_driver = "Sqlite3"
    db_path = "data.db"
    announce_interval = 120
    min_announce_interval = 120
    max_peer_timeout = 900
    on_reverse_proxy = false
    external_ip = "0.0.0.0"
    tracker_usage_statistics = true
    persistent_torrent_completed_stat = false
    inactive_peer_cleanup_interval = 600
    remove_peerless_torrents = true
    
    [[udp_trackers]]
    enabled = false
    bind_address = "0.0.0.0:6969"
    
    [[http_trackers]]
    enabled = true
    bind_address = "0.0.0.0:6969"
    ssl_enabled = false
    ssl_cert_path = ""
    ssl_key_path = ""
    
    [http_api]
    enabled = true
    bind_address = "127.0.0.1:1212"
    
    [http_api.access_tokens]
    admin = "MyAccessToken"
  • Run the torrust-tracker again:

    ./target/release/torrust-tracker

Tracker URL

Your tracker announce URL will be dependent on your bindings:

udp://{tracker-ip:port} 

and/or

http://{tracker-ip:port}/announce

and/or

https://{tracker-ip:port}/announce

In private & private_listed mode, tracker keys are added after the tracker URL like:

https://{tracker-ip:port}/announce/{key}

Built-in API

Read the API documentation here.

Contact

If you have any issues and suggestions please feel free to contact us via:

Message Warm Beer#3352 on Discord or email [email protected].

or

Create an issue


Credits

This project was developed by Dutch Bits for Nautilus Cyberneering GmbH.

The project has been possible through the support and contribution of both Nautilus Cyberneering, its team and collaborators, as well as that of our great open source contributors.

Special thanks to Naim A. and greatest-ape for some parts of the code. Also special thanks to further added features and functions by Power2All.

Thank you again to you all!

torrust-tracker's People

Contributors

mickvandijke avatar naim94a avatar power2all avatar dependabot[bot] avatar pataquets avatar aimless321 avatar cgbosse avatar makefu avatar ftsimas avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.