- Do not abuse service from Heroku or your account could get banned. Deploy at your own risk.
- Aria2 & qBittorrent download speed is limited to 5MB/s on default.
- The Heroku filesystem is ephemeral - that means that any changes to the filesystem whilst the dyno is running only last until that dyno is shut down or restarted. In addition, dynos will restart every day.
- To prevent Heroku dyno from auto-sleeping, use website monitoring service such as uptimerobot to http ping your heroku domain every 10 mins.
This project integrates yt-dlp, gallery-dl, Aria2 + WebUI, qBittorrent + VueTorrent WebUI, pyLoad Download Manager, Rclone + WebUI with auto-upload function, Rclone Serve HTTP & Webdav, customizable portal page, OliveTin WebUI for shell commands, Filebrowser, ttyd web terminal, Xray Vmess proxy protocol.
- Rclone auto-upload function only needs to prepare rclone.conf file, and all other configurations are set to go.
- Rclone runs on daemon mode, easy to manually transfer files and monitor transfers in real time on WebUI.
- You can connect Aria2, qBittorrent and Rclone from frontends/services running on other hosts, including flexget/Radarr/Sonarr.
- Auto-backup configuration files to Cloudflare Workers KV, and try to restore when dyno restarts.
- Execute predefined yt-dlp, gallery-dl & Rclone commands from OliveTin WebUI.
- ttyd web terminal, which can execute yt-dlp and other commands on the command line.
- There are independent logs for each service in the log directory.
Do not deploy directly from this repository
KV is used as config files storage. Some updates needs to manully update config files.
Alternatively you can delete KV data from Cloudflare dashboard to reset config files of your deployment. IMAGE
- Fork this this repository, then click Setting on fork repository page and check Template repository.
- Click new button: Use this template,create a new repository。
- For example, your Github username is bobby, and the new repository name is green. After logging in to heroku, visit https://dashboard.heroku.com/new?template=https://github.com/bobby/green to deploy.
-
Visit your_heroku_domain + ${GLOBAL_PORTAL_PATH} to reach portal page.
-
Click AriaNg, then authentication failure warning will pop up, fill in Aria2 secret RPC token with password set during deployment.
-
Click qBittorrent or VueTorrent, then login in with default user admin and default password adminadmin. Change default user/password to your own. Recommend strong password.
-
Upload rclone.conf file to config folder via Filebrowser, you can edit script.conf file to change Rclone auto-upload settings.
-
yt-dlp, gallery-dl & other commands can be executed through ttyd web terminal.
Built-in alias:
dlpr:Use yt-dlp to download videos to videos folder, then send task to Rclone after downloads completed.
gdlr: Use gallery-dl to download files to gallery_dl_downloads folder, then send task to Rclone after downloads completed.
-
Hit shift+F5 to force refresh if web services don't work properly. If app still doesn't work, clear cache and cookie of your heroku domain from browser.
-
Known pyLoad bugs:
- Redirect to http after login,solution: close the pyLoad page and reopen it.
- Fail to delete archives after extraction, solution: Settings--Plugins--ExtractArchive, set "Move to trash instead delete" to off.
-
After adding following content to rclone.conf file, you can use local heroku storage as a Rclone remote for manually uploading via Rclone Web UI.
[local] type = alias remote = /mnt/data
-
For apps which don't support custom path for qBittorrent, uncomment followings line in Caddyfile under config/caddy folder before deployment:
handle /api* { reverse_proxy * localhost:61804 }
-
Aria2 JSON-RPC path: ${GLOBAL_PORTAL_PATH}/jsonrpc
Aria2 XML-RPC path: ${GLOBAL_PORTAL_PATH}/rpc -
It is not possible to configure a Rclone remote which requires web authentication through Rclone web UI in this app.
-
Vmess proxy protocol: AlterID is 0, you can connect to either Vmess WS port 80 or Vmess WS tls port 443. Xray settings can be modified via content/xray.yaml file in repository. Heroku is difficult to connect in mainland China.