/exatorrent

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

Primary LanguageGoGNU General Public License v3.0GPL-3.0

exatorrent

🧲 self-hostable torrent client

GitHub Repo stars Latest Release GitHub go.mod Go version GitHub License

Linux macOS Windows Docker Podman

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


  • 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 →


Usage

Exatorrent can be operated using either of the following methods:

  • Releases: You can download precompiled binary for your Operating System from Releases. Mark it as executable and run it. Refer Usage.
    wget https://github.com/varbhat/exatorrent/releases/latest/download/exatorrent-linux-amd64
    chmod u+x ./exatorrent-linux-amd64
    ./exatorrent-linux-amd64
  • Docker: Docker images of exatorrent are also provided which lets exatorrent to be run in a Docker container. See Docker Docs.
    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
  • Manual Build: exatorrent is open source and can be built from sources. See Build Docs.
    make web && make app

Notes:

  • 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 Releases and 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

License

GPL-v3