• Stars
    star
    1,831
  • Rank 25,349 (Top 0.5 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created about 3 years ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Easy to Use Torrent Client. Can be hosted in Cloud. Files can be streamed in Browser/Media Player.

exatorrent

self-hostable torrent client


Screenshots • Releases • Features • Installation • Usage • Docker • Build • License


Introduction

  • exatorrent is Elegant BitTorrent Client written in Go.
  • It is Simple, easy to use, yet feature rich.
  • It can be run locally or be hosted in Remote Server with good resources.
  • It is Single Completely Statically Linked Binary with Zero External Dependencies.
  • It is lightweight and light on resources.
  • It comes with Beautiful Responsive Web Client written in Svelte and Typescript.
  • Thanks to documented WebSocket API of exatorrent, custom client can be created.
  • It supports Single User Mode and Multi User Mode.
  • Torrented Files are stored in local disk can be downloaded and streamed via HTTP/Browser/Media Players.

exatorrent web client

More Screenshots →


Installation

  • Docker: exatorrent can be run inside Docker. See Docker Docs. Docker supports Linux, MacOS and Windows.

    docker pull ghcr.io/varbhat/exatorrent:latest
    docker run -p 5000:5000 -p 42069:42069 -v /path/to/directory:/exa/exadir ghcr.io/varbhat/exatorrent:latest
  • Build: exatorrent is open source and can be built from sources. See Build Docs.

    make web && make app
  • Note that Username and Password of Default User created on first run are adminuser and adminpassword respectively.

  • You can change Password later but Username of Account can't be changed after creation. Refer Usage.

  • Github Actions is used to build and publish Docker Images of exatorrent.

Features

  • Single Executable File with No Dependencies
  • Small in Size
  • Cross Platform
  • Download (or Build ) Single Executable Binary and run. That's it
  • Open and Stream Torrents in your Browser
  • Add Torrents by Magnet or by Infohash or Torrent File
  • Individual File Control (Start, Stop or Delete )
  • Stop, Remove or Delete Torrent
  • Persistent between Sessions
  • Stop Torrent once SeedRatio is reached (Optional)
  • Perform Actions on Torrent Completion (Optional)
  • Powered by anacrolix/torrent
  • Download/Upload Rate limiter (Optional)
  • Apply Blocklist (Optional)
  • Configurable via Config File but works fine with Zero Configuration
  • Share Files by Unlocking Torrent or Lock Torrent (protect by Auth) to prevent External Access
  • Retrieve or Stream Files via HTTP
  • Multi-Users with Authentication
  • Auto Add Trackers to Torrent from TrackerList URL
  • Auto Fetch Torrent Metainfo from Online/Local Metainfo Cache
  • Download Directory as Zip or as Tarball
  • Stream directly on Browser or VLC or mpv or other Media Players
  • Documented API
  • Uses Sqlite3 (embedded database with no setup and no configuration) by Default for Database but PostgreSQL can be used instead too

Help

Communication about the project is primarily through the Issues.

Contribute

You are welcome to contribute. If you want to implement any significant feature, please discuss it first.

Thanks

Special Thanks to anacrolix/torrent, Programming Languages and Libraries used in exatorrent and Users for making this project happen.

License

GPL-v3