webui-aria2
The aim for this project is to create the worlds best and hottest interface to interact with aria2. Very simple to use, just download and open index.html in any web browser.
Top Related Projects
AriaNg, a modern web frontend making aria2 easier to use.
Aria2 Pro | A perfect Aria2 Docker image | 更好用的 Aria2 Docker 容器镜像
aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Yet Another Aria2 Webui in pure HTML/CSS/Javascirpt
Persepolis is a download manager written in Python.
Quick Overview
webui-aria2 is a web interface for aria2, a lightweight multi-protocol & multi-source command-line download utility. This project provides a user-friendly, browser-based interface for managing downloads with aria2, offering features like real-time updates, multiple language support, and responsive design.
Pros
- Easy to use web interface for aria2, making it accessible to non-technical users
- Supports multiple languages, enhancing its global usability
- Responsive design that works well on both desktop and mobile devices
- Real-time updates of download progress and status
Cons
- Requires aria2 to be installed and running separately
- Limited advanced features compared to some native download managers
- May require additional setup for secure remote access
- Dependent on browser support and JavaScript functionality
Getting Started
- Install aria2 on your system if not already installed.
- Clone the webui-aria2 repository:
git clone https://github.com/ziahamza/webui-aria2.git
- Navigate to the project directory:
cd webui-aria2
- Open
index.html
in your web browser or serve the directory using a web server. - Configure the connection settings in the web interface to connect to your aria2 instance.
Note: For remote access, you may need to set up a web server and configure aria2 to accept RPC connections.
Competitor Comparisons
AriaNg, a modern web frontend making aria2 easier to use.
Pros of AriaNg
- Modern and responsive user interface with a cleaner design
- Supports multiple languages and themes
- Better performance and faster loading times
Cons of AriaNg
- Lacks some advanced features present in webui-aria2
- May have a steeper learning curve for new users
Code Comparison
AriaNg:
angular.module('ariaNg').controller('MainController', ['$rootScope', '$scope', '$route', '$window', '$location', '$document', '$interval', 'clipboard', 'aria2RpcErrors', 'ariaNgCommonService', 'ariaNgNotificationService', 'ariaNgLocalizationService', 'ariaNgSettingService', 'ariaNgMonitorService', 'ariaNgTitleService', function ($rootScope, $scope, $route, $window, $location, $document, $interval, clipboard, aria2RpcErrors, ariaNgCommonService, ariaNgNotificationService, ariaNgLocalizationService, ariaNgSettingService, ariaNgMonitorService, ariaNgTitleService) {
// Controller logic
}]);
webui-aria2:
angular.module('webui.services.rpc.syscall', ['webui.services.deps', 'webui.services.base64', 'webui.services.utils'])
.factory('$syscall', ['$_', '$json', '$name', '$utils', '$alerts', function(_, JSON, name, utils, alerts) {
// Factory logic
}]);
Both projects use AngularJS, but AriaNg's code appears more modern and organized, while webui-aria2's code structure is older and potentially more complex.
Aria2 Pro | A perfect Aria2 Docker image | 更好用的 Aria2 Docker 容器镜像
Pros of Aria2-Pro-Docker
- Includes a pre-configured Aria2 setup with optimized settings
- Offers additional features like auto-update and HTTPS support
- Provides a more comprehensive solution with integrated WebUI
Cons of Aria2-Pro-Docker
- May be more complex to set up and customize
- Larger image size due to additional features and dependencies
- Less flexibility for users who prefer a minimal Aria2 setup
Code Comparison
Aria2-Pro-Docker (docker-compose.yml):
version: "3"
services:
aria2-pro:
image: p3terx/aria2-pro
container_name: aria2-pro
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
webui-aria2 (Dockerfile):
FROM node:14-alpine
WORKDIR /webui-aria2
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8888
The Aria2-Pro-Docker project provides a more feature-rich and pre-configured solution, while webui-aria2 offers a simpler, more lightweight approach focused primarily on the web interface. Aria2-Pro-Docker includes additional optimizations and integrations, making it potentially more suitable for users seeking a comprehensive out-of-the-box solution. On the other hand, webui-aria2 may be preferable for those who want more control over their Aria2 setup or require a minimal installation.
aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Pros of aria2
- Core functionality: aria2 is the actual download manager, providing powerful and flexible download capabilities
- Performance: Optimized for high-speed downloads and efficient resource usage
- Cross-platform support: Available for various operating systems and architectures
Cons of aria2
- Lack of user interface: Primarily a command-line tool, which may be less intuitive for some users
- Steeper learning curve: Requires more technical knowledge to configure and use effectively
Code comparison
aria2:
int DownloadEngine::run(bool oneshot)
{
while(!commands_.empty() || !downloadHandlers_.empty()) {
if(oneshot && commands_.empty()) {
return 0;
}
waitData();
executeCommand();
}
return 0;
}
webui-aria2:
function addUri(uris, options) {
var params = [uris, options];
return invoke('aria2.addUri', params);
}
The aria2 code snippet shows the core download engine implementation, while the webui-aria2 code demonstrates how it interfaces with aria2's API to add download tasks through the web interface.
Yet Another Aria2 Webui in pure HTML/CSS/Javascirpt
Pros of YAAW
- Lightweight and minimalistic interface
- Supports multiple aria2 RPC servers
- Offers a dark theme option
Cons of YAAW
- Less actively maintained (last update in 2017)
- Fewer advanced features compared to webui-aria2
- Limited customization options
Code Comparison
webui-aria2:
$scope.getProgress = function(d) {
var percentage = (d.completedLength / d.totalLength) * 100;
percentage = percentage.toFixed(2);
if (!percentage) percentage = 0;
return percentage;
};
YAAW:
YAAW.prototype.getProgress = function(task) {
var percentage = (task.completedLength / task.totalLength * 100).toFixed(2);
return percentage === "NaN" ? 0 : percentage;
};
Both projects implement a similar function to calculate download progress, but webui-aria2 uses AngularJS scope, while YAAW uses a prototype-based approach.
Summary
While YAAW offers a lightweight and minimalistic interface with multi-server support, webui-aria2 provides a more feature-rich and actively maintained solution. YAAW's simplicity may appeal to users who prefer a straightforward interface, but webui-aria2's ongoing development and broader feature set make it a more robust choice for those seeking advanced functionality and regular updates.
Persepolis is a download manager written in Python.
Pros of Persepolis
- Native desktop application with a more user-friendly interface
- Supports scheduling downloads and setting time limitations
- Integrates with browsers via extensions for easy download management
Cons of Persepolis
- Limited to desktop platforms, lacking web-based access
- May require more system resources compared to a lightweight web UI
- Less flexibility for remote management of downloads
Code Comparison
While both projects serve different purposes, here's a brief comparison of how they handle download management:
webui-aria2:
aria2.addUri([url], options, function(err, gid) {
console.log("Download added with GID " + gid);
});
Persepolis:
download = DownloadLink(url, options)
persepolis_db.addLinkToDB(download)
webui-aria2 uses JavaScript and directly interacts with aria2 for download management, while Persepolis uses Python and manages downloads through its own database system.
Both projects aim to improve the download experience, but Persepolis offers a more comprehensive desktop solution, while webui-aria2 provides a lightweight, web-based interface for aria2.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
WebUI-Aria2
The aim for this project is to create the worlds best and hottest interface to interact with aria2. aria2 is the worlds best file downloader, but sometimes the command line brings more power than necessary. The project was initially created as part of the GSOC scheme, however it has rapidly grown and changed with tremendous support and feedback from the aria2 community.
Very simple to use, no build scripts, no installation scripts. First start aria2 in the background either in your local machine or in a remote one. You can do that as follows:
aria2c --enable-rpc --rpc-listen-all
If aria2 is not installed in your local machine then head on to https://aria2.github.io/ and follow the instructions there.
Then to use the WebUI-Aria2,
- You can either download this repository and open index.html from
docs
folder. - Or you could just head on to https://ziahamza.github.io/webui-aria2 and start downloading files! Once you have visited the URL thanks to Progressive Web Apps you can open the same URL even when you are offline.
- Or you can also use NodeJS to create simple server by using the following command from the project folder.
node node-server.js
Tips
- You can always select which files to download in case of torrents or metalinks. Just pause a download and a list icon should appear next to the settings button. To select which files to download before starting the download, give the flag --pause-metadata to aria2. See link
Configuration
Read and edit configuration.js.
DirectURL
This feature allows users to download files that they download from aria2 directly from the webui dashboard. If you are familiar with how webservers work, setup a http server that points at the configured aria2 download directory, check permissions. Then Specify a full url: http://server:port/
in the webui directURL configuration.
If the above is not obvious, keep reading what this is about in directurl.md
Dependencies
Well, you need aria2. And a web browser (if that even counts!)
Docker support
There is two Dockerfile in this project, one is a common Dockerfile, which can be use for testing purpose.
The second is a production ready Dockerfile for arm32v7 platforms (including Raspberry Pi).
For testing purpose
You can also try or use webui-aria2 in your LAN inside a Docker sandbox.
Build the image
sudo docker build -t yourname/webui-aria2 .
..and run it! It will be available at: http://localhost:9100
sudo docker run -v /Downloads:/data -p 6800:6800 -p 9100:8080 --name="webui-aria2" yourname/webui-aria2
/Downloads
is the directory in the host where you want to keep the downloaded files
Production ready (ARM platform)
This image contains both aria2 and webui-aria2.
Build it (may take several hours due to the aria2 compilation process. Don't panic and grab a coffee).
docker build -f Dockerfile.arm32v7 -t yourname/webui-aria2 .
This command will ends up building three images:
- The first one is just about compiling aria2 and goreman binaries. It MUST be deleted each time the
ARIA2_VERSION
is changed in the Dockerfile, otherwise you won't benefit from the update. - The second is about building and downloading some go dependencies (goreman and gosu).
- The second one is the acutal aria2 container, the one you must use.
Prepare the host volume: This image required few file to be mounted in the container. ``` /home/aria/aria2/session.txt (empty file) /home/aria/aria2/aria2.log (empty file) /home/aria/aria2/aria2.conf (aria2 configuration file, not webui-aria2 conf) must contains at least `enable-rpc=true` and `rpc-listen-all=true` /data/downloads/ (where the downloaded files goes) ```
Run it
docker run --restart=always \
-v /home/<USER>/data/aria2/downloads:/data/downloads \
-v /home/<USER>/data/aria2/.aria2:/home/aria/.aria2 \
-p 6800:6800 -p 9100:8080 \
--name="webui-aria2" \
-d yourname/webui-aria2
Contributing
Checkout contributor's guide to know more about how to contribute to this project.
Deploy to Heroku
Support
For any support, feature request and bug report add an issue in the github project. link
License
Refer to the LICENSE file (MIT License). If the more liberal license is needed then add it as an issue
Top Related Projects
AriaNg, a modern web frontend making aria2 easier to use.
Aria2 Pro | A perfect Aria2 Docker image | 更好用的 Aria2 Docker 容器镜像
aria2 is a lightweight multi-protocol & multi-source, cross platform download utility operated in command-line. It supports HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink.
Yet Another Aria2 Webui in pure HTML/CSS/Javascirpt
Persepolis is a download manager written in Python.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot