Aria2 WebUI: Clean Web Frontend for aria2

Last Updated on September 1, 2020

Aria2 WebUI is an open source web frontend for aria2. The software bills itself as the finest interface to interact with aria2. That’s a lofty goal considering the competition from the likes of uGet Download Manager (which offers an aria2 plugin).

Aria2 WebUI started as part of the GSOC program 2012. But a lot has changed since the software’s creation under that initiative. While the pace of development has lessened considerably in recent years, the software has not been abandoned.

If you didn’t know, aria2 is a popular, cross-platform, lightweight, open source, command-line software that lets you download files from multiple sources and protocols. It’s highly praised software with a raft of useful features. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink. aria2 can be manipulated via built-in JSON-RPC and XML-RPC interfaces. aria2’s most compelling feature is that it maximizes your download bandwidth, yet remains frugal with your system resources.


As you’d expect, you’ll need to have aria2 installed on your system. There are aria2 packages available for popular Linux distributions, so installation is trivial. For example, if you’re running a Debian/Ubuntu based distro, type:

sudo apt install aria2

If you get stuck installing aria2 on a specific distro, let me know.

At a shell, clone the webui-aria2 repository to a convenient directory with the following command.

git clone

There’s nothing to compile. The website says you can start aria2 in the background by typing at the shell:

aria2c –enable-rpc –rpc-listen-all

But you’ll get a warning message stating “Neither –rpc-secret nor a combination of –rpc-user and –rpc-passwd is set. This is insecure. It is extremely recommended to specify –rpc-secret with the adequate secrecy or now deprecated –rpc-user and –rpc-passwd.”

You can generate the Aria2 RPC secret token with openssl, and append –rpc-secret to the aria2c command with the secret token. You should also add the secret token in the Connection Settings dialog.

In operation

The purpose of the project is to make the downloading experience more user friendly. There’s a lot of functionality available from aria2, but many users will only need a subset of features.

The image below shows Aria2 WebUI with 4 downloads in operation. You add URIs via the Add drop down. URIs can consist of HTTP(s), FTP, and BitTorrent-Magnets. There’s also the option to add torrents, and metalinks.

The web interface lets you pause, and stop each download as well as configure a variety of settings. In the left pane, there’s a global statistics graph which shows the total download/upload transfer rate, together with some useful download filters. You can also configure the download directory, the location of aria2’s conf-path, as well as whether to enable auto-file-renaming, and set the maximum number of connections per server.


One way to maximize the download speed is to add multiple URIs (mirrors) for the same file. To do this, when adding the URIs from the Add menu, URIs are separated by a space. The image above shows a download of Linux Mint 19 “Tara” Xfce in operation with 3 URIs for the same file.


The image below shows the quick access settings in the first column. And again, I added multiple URIs for the same file — this time the download is a snapshot of openSUSE Tumbleweed.


The image below shows a download of Fedora Workstation in progress. This time only a single URI is added.


Other features

  • Download settings let you add http user, http password, the download directory (handy if you want to bypass the default directory for a specific download), and the maximum connections per server.
  • Pause all downloads.
  • Advanced settings which can be set globally or per download. These include:
    • Use a proxy server.
    • Many BitTorrent settings including peer speed limit, cryptography, specify the maximum number of peers per torrent, set the maximum upload speed for each torrent, specify seeding time in minutes.
    • Check file integrity by validating piece hashes or a hash of entire file.
    • Run as daemon.
    • Enable IPv6 name resolution in asynchronous DNS resolver.
    • Enable IPv4 DHT functionality. It also enables UDP tracker support.
    • Enable JSON-RPC/XML-RPC server.
    • Set maximum download speed per each download in bytes/sec.
    • Enable parameterized URI support.
    • Specify URI selection algorithm. The possible values are inorder, feedback and adaptive.
    • and many more.
  • Docker support – including arm32v7 platforms (such as the Raspberry Pi).
  • Internationalization support – there are translations for Chinese (Simplified), Chinese (Traditional), Czech, Dutch, Farsi, French, German, Indonesian, Italian, Polish, Portuguese (Brazilian), Russian, Spanish, Thai, and Turkish.


Aria2 WebUI offers a clean and uncluttered frontend to the wonderful aria2 download utility. While it doesn’t offer the functionality provided by uGet (my GUI download manager of choice), it embodies simplicity.

Even though the project has been in development for many years, there’s still no official release version. If you’re looking for an open source JavaScript project to contribute to, there’s lots of enhancements that would help make the project’s objective come true.

Support: aria2
Developer: Hamza Zia and many contributors
License: MIT License

Aria2 WebUI is written in JavaScript. Learn JavaScript with our recommended free books and free tutorials.

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments