Install and Use exatorrent BitTorrent Client with Web UI

Exatorrent is a simple and rich in feature BitTorrent client written in Go language. Exatorrent is lightweight and comes with a beautiful web client written in Svelte and Typescript. This program can be hosted on a remote server or locally.

Exatorrent has WebSocket API support that allows one to write their own client as well as multiple ways of adding torrents i.e info hash, magnet, or torrent file.

The other features associated with exatorrent are:

  • Peer blocklist
  • Stop torrents when reaching a certain ration
  • Single Executable File with No Dependencies
  • Start, stop, remove or delete torrents
  • Multi-user support
  • Open and stream audio / video torrents in your web browser or using VLC, mpv and other media players
  • Retrieve or Stream Files via HTTP
  • Uses Sqlite3 (embedded database with no setup and no configuration) by Default for Database but PostgreSQL can be used instead too
  • Fetch torrent metainfo from online cache
  • Add trackers to torrent from trackerlist URLs
  • Besides streaming, files downloaded by exatorrent can be shared (with authentication) – directories can be retrieved as zip / tarballs

Exatorrent is a cross-platform tool supported on Linux, Windows, macOS, and Android (via Termux). This guide will illustrate how you can install and use exatorrent BitTorrent Client with Web UI.

Install exatorrent BitTorrent Client on Linux

Exatorrent can be installed on your system in multiple ways:

  • Using binaries
  • Using Docker

Option 1 – Install exatorrent BitTorrent Client from a Binary file

With this method, you first have to download the latest exatorrent binary file from the official exatorrent GitHub release page.

This process can as well be accomplished by pulling the latest exatorrent binary file using Wget as below.

wget https://github.com/varbhat/exatorrent/releases/latest/download/exatorrent-linux-amd64

With a successful download, make the file executable:

chmod u+x ./exatorrent-linux-amd64

Now install exatorrent BitTorrent Client on your system as below.

./exatorrent-linux-amd64

In the above command, replace the IP Address with your system’s IP address

Sample Output:

[INFO] 2025/02/07 22:35:50 Starting server on :5000
Directory => exadir

[INFO] 2025/02/07 07:22:39 Adding Admin user with username "adminuser" and password "adminpassword"
[INFO] 2025/02/07 07:22:39 Torrent Client Created
[INFO] 2025/02/07 07:22:39 Starting server on 192.168.1.188:5000
[INFO] 2025/02/07 07:22:39 Loaded  20  trackers from  https://ngosang.github.io/trackerslist/trackers_best.txt
[INFO] 2025/02/07 07:22:39 Loaded  20  trackers in total , eliminating duplicates
[INFO] 2025/02/07 07:22:39 Added Loaded Trackers to Torrents

At this point, exatorrent is listening on the default port 5000 and can be accessed via the web.

Option 2 – Install exatorrent BitTorrent Client using Docker.

This is another option to get exatorrent BitTorrent Client installed on your system. The greatest requirement to be met here is installing Docker on your system.

There is a quick method to install docker on your Linux system.

curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Verify your installation.

$ docker --version
Docker version 27.5.1, build 9f9e405

With Docker installed successfully, start and enable Docker as below.

sudo systemctl enable --now docker
sudo usermod -aG docker $USER
newgrp docker

Verify the status of the service.

$ systemctl status docker
 docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; preset: enabled)
     Active: active (running) since Fri 2025-02-07 18:35:50 EAT; 2min 17s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 4291 (dockerd)
      Tasks: 11
     Memory: 26.7M
        CPU: 511ms
     CGroup: /system.slice/docker.service
             └─4291 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Feb 07 18:35:49 debian systemd[1]: Starting docker.service - Docker Application Container Engine...

Create a persistent volume for exatorrent:

mkdir ~/exatorrent

For RHEL based systems, allow the directory to be accessed by modifying SELinux.

sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Proceed and pull the latest exatorrent docker image:

docker pull ghcr.io/varbhat/exatorrent:latest

Sample output:

latest: Pulling from varbhat/exatorrent
619be1103602: Pull complete 
c1b92c1782b6: Pull complete 
979dd101a122: Pull complete 
5f46554c1017: Pull complete 
6d2ef1799d3a: Pull complete 
Digest: sha256:554c79e764e2e85e032f30ba530301c4ab072acc0e3af5a4a0abbfc2b99cf846
Status: Downloaded newer image for ghcr.io/varbhat/exatorrent:latest
ghcr.io/varbhat/exatorrent:latest

Now run the exatorrent docker container.

docker run -d --name exatorrent \
  -p 5000:5000 -p 42069:42069 \
  -v ~/exatorrent:/exa/exadir \
  ghcr.io/varbhat/exatorrent:latest

Sample output:

$ sudo docker run -d --name exatorrent -p 5000:5000 -p 42069:42069 -v /opt/exatorrent ghcr.io/varbhat/exatorrent:latest
383487b037bb3cf56b049962929312bc35061dd1ca2f45c8acfadca89542fda6
$ sudo docker ps
CONTAINER ID   IMAGE                               COMMAND         CREATED          STATUS          PORTS                                                                                      NAMES
383487b037bb   ghcr.io/varbhat/exatorrent:latest   "/exatorrent"   30 seconds ago   Up 29 seconds   0.0.0.0:5000->5000/tcp, :::5000->5000/tcp, 0.0.0.0:42069->42069/tcp, :::42069->42069/tcp   exatorrent

Manage the exatorrent docker container as below.

## Stop exatorrent
docker stop exatorrent

## Start exatorrent
docker start exatorrent

Use exatorrent BitTorrent Client with Web UI.

Now regardless of the method you used to install exatorrent on your system, you can proceed and access the web UI using the URL http://SERVER_IP:5000

You need to allow the port through the firewall.

##For firewalld
sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp 
sudo firewall-cmd --reload

##For UFW
sudo ufw allow 5000

You will be granted the below page:

Default login credentials:

Username: adminuser
Password: adminpassword

Login with the default credentials and proceed to the exatorrent dashboard:

Add new user and delete default admin user

Click on “Users” icon to create new user. The “Add User” section is where you create a new user.

Input new username, Password and role.

Logout from adminuser and login with the created account.

Using exatorrent BitTorrent Client

You can now delete default admin user account.

Add a magnet or Info hash on exatorrent.

With the required magnet or Info hash entered, click Add. You will see a window pop up as below. Click Ok to add the magnet or Infohash.

The download will commence and can be viewed by clicking on Torrents.

Here, you can pause/resume, or stop a download. From the main exatorrent dashboard, you can manage users and change passwords under the users and settings tabs respectively.

Conclusion.

AT this point, it is safe to assume that we have succeeded in installing and using exatorrent BitTorrent Client with Web UI. I hope this was helpful.

See more guides:

Your IT Journey Starts Here!

Ready to level up your IT skills? Our new eLearning platform is coming soon to help you master the latest technologies.

Be the first to know when we launch! Join our waitlist now.

Join our Linux and open source community. Subscribe to our newsletter for tips, tricks, and collaboration opportunities!

Recent Post

Leave a Comment

Your email address will not be published. Required fields are marked *

Related Post

Android Studio, which is based on IntelliJ IDEA, is the official Integrated Development Environment for developing Android apps. On top […]

In this guide, we will walk through how to install Webmin on AlmaLinux 9 or Oracle Linux 9. Webmin is […]

Grub, an acronym of Grand Unified Bootloader is the most preferred boot loader on Linux systems although there are others […]

Let's Connect

Unleash the full potential of your business with CloudSpinx. Our expert solutions specialists are standing by to answer your questions and tailor a plan that perfectly aligns with your unique needs.
You will get a response from our solutions specialist within 12 hours
We understand emergencies can be stressful. For immediate assistance, chat with us now

Contact CloudSpinx today!

Download CloudSpinx Profile

Discover the full spectrum of our expertise and services by downloading our detailed Company Profile. Simply enter your first name, last name, and email address.