This post is regarding how to use wahyd4/aria2-ui's docker image to achieve a downloading and file managing / sharing center. In just one docker image, you can do downloading (Aria2), Web GUI management for your downloading task (AriaNG) , File Managing (FileBrowser), supporting multi-type file view, and saving to Google Drive.
Pre-requirement:
- for tcp 8000
iptables -A INPUT -p tcp --dport 8000 -j ACCEPTservice iptables saveservice iptables restartfirewall-cmd --zone=public --add-port=8000/tcp --permanentfirewall-cmd --reload
Github Project and Docker Image Information
Github project :
Other related GitHub Sites:
- https://github.com/wahyd4/aria2-ariang-x-docker-compose
- https://github.com/51sec/aria2-ariang-x-docker-compose
Features
- Aria2 (SSL support)
- AriaNg
- Rclone
- File Browser: Files mangement and videos playing
- Auto HTTPS (Let's Encrypt)
- Bind non root user into container, so non root user can also manage downloaded files.
- Basic Auth
- Support ARM CPUs as well, all supported CPU platforms can be found here
- Cloud Storage platforms synchronization
Quick Run for Testing
docker run -d --name aria2-ui -p 80:80 wahyd4/aria2-ui
- Aria2: http://yourip
- FileManger: http://yourip/files
- Rclone: http://yourip/rclone
- Please use
admin
/admin
as username and password to loginFilebrowser
for the first time. And if rclone enabled, please useuser
/password
to loginRclone
if you didn't updateARIA2_USER
andARIA2_PWD
- ENABLE_RCLONE set to false to disable Rclone in the docker
Modified Docker Run Command Based Requirements
docker run -d --name aria2-ui \ --restart=unless-stopped \ -p 8000:80 \ -e ENABLE_AUTH=true \ -e ARIA2_SSL=false \ -e ARIA2_USER=user \ -e ARIA2_PWD=password \ -e ARIA2_EXTERNAL_PORT=8000 \ -e ENABLE_RCLONE=False \ -v ~/data:/data \ -v ~/gdrive:/gdrive \ wahyd4/aria2-ui
- /data folder is aria2 downloading folder. After finished downloading, file will be transferred to /gdrive folder automatically with a script.
- /gdrive folder is host's Rclone mounted Google Drive folder, which is mapped to ~/gdrive folder (/root/gdrive).
Configure FileBrowser to Manage Gdrive folder
Change File Browser's folder. vi /app/Procfile
Change default /data folder to /gdrive. So File Browser will open /gdrive when you log in. You can mange your Google Drive from File Browser directly. It is not necessary to do this step if you does not want to manage your Google Drive folder from FileBrowser page.
[root@centos-nextcloud-aria2 ~]docker exec -it aria2-ui /bin/bash
bash-5.0# cd /app
bash-5.0# ls
Procfile aria2c.sh caddy.sh conf filebrowser filebrowser.db forego init.sh start.sh
bash-5.0# vi Procfile
filebrowser: /app/filebrowser -p 8080 -d /app/filebrowser.db -r /gdrive
caddy: /app/caddy.sh
aria2c: /app/aria2c.sh [root@centos-nextcloud-aria2 ~]# docker restart aria2-ui
Configure Aria2 to Move Completed File to /Gdrive
[root@centos-nextcloud-aria2 ~]docker exec -it aria2-ui /bin/bashrcloneupload.sh,
with following code:chmod +x rcloneupload.sh
Aria2 configuration file
(/app/conf/aria2.conf)
to add one following line at the file end
:
on-download-complete=/app/conf/rcloneupload.sh
Restart aria2-ui docker to take change into effect
[root@centos-nextcloud-aria2 ~]# docker restart aria2-ui
bash-4.3# cd /app/conf/
bash-4.3# ls
aria2.conf aria2.session aria2c.sh key
bash-4.3# vi /app/conf/aria2.conf
# Bit Torrent: The amount of time and the upload-to-download ratio you wish to
# seed to. If either the time limit ( seconds ) or the seed ratio is reached,
# torrent seeding will stop. You can set seed-time to zero(0) to disable
# seeding completely.
seed-ratio=0.01
seed-time=1
on-download-complete=/app/conf/rcloneupload.sh
Configure Host Rclone to mount Google Drive
2 Install some components
yum -y install wget unzip screen fuse fuse-devel
3 Install rclone
[root@centos7-test1 data]# curl https://ift.tt/3p61n1s | sudo bash
4 configure rclone
rclone config
create a new remote and name it as google-drive
Other steps can check post: https://blog.51sec.org/2020/05/use-rclone-to-mount-google-drive-and.html
5 mount Google Drive using rclone
- create a new folder at /home/gdrive
- mount system
Note: google-drive is the Rclone configuration name.
6 create rclone.service
To make rclone mount the google drive even after rebooted the vps, create /usr/lib/systemd/system/rclone.service with following information:
vi /usr/lib/systemd/system/rclone.service
[Unit]
Description=rclone
[Service]
User=root
ExecStart=/usr/bin/rclone mount google-drive: /home/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes
Restart=on-abort
7 systemctl enable rclone.service
8 Using browser to access system
FileBrowser: http://ip/files
aria2ng: http://ip
Default FileBrowser username/password will be admin/admin.
Aria will download files to docker's local /data folder . Once completed downloading, the file will be moved to /gdrive folder.
Gdrive folder has been mounted with Google Drive, which will be managed by FileBrowser.
Cloudflare Configuration
Remove Installed Docker
#Delete Docker ContainerID=`docker ps|grep wahyd4/aria2-ui|awk '{print $1}'` docker kill ${ContainerID} docker rm ${ContainerID} docker rmi `docker images|grep wahyd4/aria2-ui|awk '{print $3}'` #Remove Download Folder rm -rf ~/datarm -rf /home/gdrive
References
via Blogger https://ift.tt/3fxrZVZ
May 29, 2021 at 03:42PM Cloud, Docker