Compare commits

..
Author SHA1 Message Date
junv 0b667a5f3c Rollback caddy to 2.0.0 2021-01-04 23:17:01 +11:00
junv cd4bba07a5 rollback caddy 2021-01-04 23:09:46 +11:00
junv ee1c069aec try to fix X-Forwarded-For issue 2021-01-04 23:03:28 +11:00
junv 9c43cd515d Merge branch 'master' into x-forwarded-headers 2021-01-04 22:47:56 +11:00
junv 728f30eda2 removing X-Forwarded headers from incoming requests 2021-01-04 22:46:42 +11:00
junv 7cb68b4746 tidy up 2021-01-01 22:26:07 +11:00
14 changed files with 59 additions and 191 deletions
-12
View File
@@ -1,12 +0,0 @@
# These are supported funding model platforms
github: [wahyd4]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: https://www.paypal.me/junvzhao
+2 -9
View File
@@ -36,12 +36,8 @@ jobs:
--build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
--build-arg VCS_REF=${GITHUB_SHA::8} \
${TAGS} --file Dockerfile .
-
name: Set up QEMU
uses: docker/setup-qemu-action@v1
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Set up Docker Buildx
uses: crazy-max/ghaction-docker-buildx@v3
-
name: Cache Docker layers
uses: actions/cache@v2
@@ -57,18 +53,15 @@ jobs:
docker buildx build --output "type=image,push=false" ${{ steps.prepare.outputs.buildx_args }}
-
name: Login to DockerHub
if: contains(github.ref, '/heads/master') || contains(github.ref, '/tags/v')
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_PASS }}
-
name: Push docker images to Dockerhub
if: contains(github.ref, '/heads/master') || contains(github.ref, '/tags/v')
run: |
docker buildx build --output "type=image,push=true" ${{ steps.prepare.outputs.buildx_args }}
-
name: Inspect image
if: contains(github.ref, '/heads/master') || contains(github.ref, '/tags/v')
run: |
docker buildx imagetools inspect ${{ steps.prepare.outputs.docker_image }}:${{ steps.prepare.outputs.version }}
+8 -11
View File
@@ -4,25 +4,22 @@
{$DOMAIN}
redir /ui / 301
redir /ui/ / 301
redir /ui /ui/ 301
redir /rclone /rclone/ 301
redir /files /files/ 301
reverse_proxy /jsonrpc 127.0.0.1:6800
route /rclone/* {
uri strip_prefix /rclone
reverse_proxy 127.0.0.1:5572
reverse_proxy http://localhost:5572
}
route /files/* {
uri strip_prefix /files
reverse_proxy 127.0.0.1:8080
route /ui/* {
uri strip_prefix /ui
root * /usr/local/www/aria2
file_server
}
root * /usr/local/www/aria2
file_server
reverse_proxy 127.0.0.1:8080
reverse_proxy /jsonrpc 127.0.0.1:6800
encode gzip
log {
+3 -4
View File
@@ -1,4 +1,4 @@
FROM alpine:edge
FROM alpine:latest
LABEL AUTHOR=Junv<wahyd4@gmail.com>
@@ -6,8 +6,7 @@ WORKDIR /app
ENV RPC_SECRET=""
ENV ENABLE_AUTH=false
ENV ENABLE_RCLONE=true
ENV DOMAIN=:80
ENV DOMAIN=http://localhost
ENV ARIA2_USER=user
ENV ARIA2_PWD=password
ENV ARIA2_SSL=false
@@ -21,7 +20,7 @@ ENV XDG_CONFIG_HOME=/app/.caddy/config
ADD install.sh aria2c.sh caddy.sh Procfile init.sh start.sh rclone.sh /app/
ADD conf /app/conf
ADD Caddyfile SecureCaddyfile HerokuCaddyfile /usr/local/caddy/
ADD Caddyfile SecureCaddyfile /usr/local/caddy/
RUN ./install.sh
-36
View File
@@ -1,36 +0,0 @@
{
debug
admin off
auto_https off
}
:PORT
basicauth / {
ARIA2_USER ARIA2_PWD_ENCRYPT
}
redir /ui / 301
redir /ui/ / 301
redir /rclone /rclone/ 301
redir /files /files/ 301
reverse_proxy /jsonrpc 127.0.0.1:6800
route /rclone/* {
uri strip_prefix /rclone
reverse_proxy 127.0.0.1:5572
}
route /files/* {
uri strip_prefix /files
reverse_proxy 127.0.0.1:8080
}
root * /usr/local/www/aria2
file_server
encode gzip
log {
output stderr
}
+1 -1
View File
@@ -1,4 +1,4 @@
filebrowser: /app/filebrowser -p 8080 -d /app/filebrowser.db -r /data
caddy: /app/caddy.sh
filebrowser: /app/filebrowser -p 8080 -d /app/filebrowser.db -r /data -b /files
aria2c: /app/aria2c.sh
rclone: /app/rclone.sh
+5 -10
View File
@@ -5,11 +5,7 @@ Aria2 + AriaNg
[![](https://images.microbadger.com/badges/image/wahyd4/aria2-ui.svg)](https://microbadger.com/images/wahyd4/aria2-ui "Get your own image badge on microbadger.com")
[![Docker Pulls](https://img.shields.io/docker/pulls/wahyd4/aria2-ui.svg)](https://hub.docker.com/r/wahyd4/aria2-ui/)
[![Github Build](https://github.com/wahyd4/aria2-ariang-docker/workflows/Docker%20Image%20CI/badge.svg)](https://github.com/wahyd4/aria2-ariang-docker/actions)
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/wahyd4/aria2-ariang-docker/tree/master)
[![Page Views Count](https://badges.toozhao.com/badges/01EJ791D8BB43PDS8D7PP7H0YE/green.svg)](https://badges.toozhao.com/stats/01EJ791D8BB43PDS8D7PP7H0YE "Get your own page views count badge on badges.toozhao.com")
[![Page Views Count](https://badges.toozhao.com/badges/01EJ791D8BB43PDS8D7PP7H0YE/green.svg)](https://badges.toozhao.com/badges/01EJ791D8BB43PDS8D7PP7H0YE/green.svg "Get your own page views count badge on badges.toozhao.com")
<img src="https://raw.githubusercontent.com/wahyd4/work-in-australia/766592ac6318027d7b3c334d8c50ca80818eeff8/wepay.jpg" alt="buy me a drink" width="120"/>
@@ -44,7 +40,7 @@ File Browser
* 自动 HTTPS Let's Encrypt
* 支持绑定自定义用户ID,可以主机上的非`root`用户,也可以管理下载的文件
* Basic Auth 用户认证
* 文件管理和视频播放 ([FileBrowser](https://filebrowser.xyz/),注意默认情况下,只能访问和管理 `/data` 目录下的文件)
* 文件管理和视频播放 ([File Browser](https://filebrowser.xyz/),注意默认情况下,只能访问和管理 `/data` 目录下的文件)
* 支持ARM CPU 架构,因此可以在树莓派等设备上运行,
## 推荐使用的docker image tag
@@ -61,10 +57,10 @@ File Browser
docker buildx build --platform linux/arm/v7,linux/arm64,linux/amd64 -t aria2-ui .
```
* Aria2: <http://yourip>
* Filebrowser: <http://yourip/files>
* Aria2: <http://yourip/ui/>
* FileManger: <http://yourip>
* Rclone: <http://yourip/rclone>
* 请使用 admin/admin 进行登录Filebrowser, 在如果没有修改`ARIA2_USER`,`ARIA2_PWD`的情况下,请使用`user`/`password`登录`Rclone`
* 请使用 admin/admin 进行登录, 在如果没有修改`ARIA2_USER`,`ARIA2_PWD`的情况下,请使用`user`/`password`登录`Rclone`
### 开启所有功能
```bash
docker run -d --name ariang \
@@ -107,7 +103,6 @@ services:
### 支持的 Docker 环境变量
* ENABLE_AUTH 启用 Basic auth(网页简单认证) 用户认证
* ENABLE_RCLONE 是否启用 RCLONE,由于Rclone 的初次运行需要从Github 下载文件,由于你懂的原因,可能文件下载失败,进而导致整个程序崩溃,这时你需要设置为`false`
* ARIA2_USER Basic Auth 用户认证用户名,Rclone也使用该参数
* ARIA2_PWD Basic Auth 密码,Rclone也使用该参数
* ARIA2_EXTERNAL_PORT 从外部可以访问到的 Aria2 端口,默认为 HTTP 的`80`
+7 -13
View File
@@ -5,12 +5,7 @@ English | [简体中文](https://github.com/wahyd4/aria2-ariang-docker/blob/mast
[![](https://images.microbadger.com/badges/image/wahyd4/aria2-ui.svg)](https://microbadger.com/images/wahyd4/aria2-ui "Get your own image badge on microbadger.com")
[![Docker Pulls](https://img.shields.io/docker/pulls/wahyd4/aria2-ui.svg)](https://hub.docker.com/r/wahyd4/aria2-ui/)
[![Github Build](https://github.com/wahyd4/aria2-ariang-docker/workflows/Docker%20Image%20CI/badge.svg)](https://github.com/wahyd4/aria2-ariang-docker/actions)
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/wahyd4/aria2-ariang-docker/tree/master)
[![Page Views Count](https://badges.toozhao.com/svg/aria2-ariang-docker)](https://badges.toozhao.com/stats/aria2-ariang-docker "Page Views Count")
[![Page Views Count](https://badge.home.toozhao.com/svg/aria2-ariang-docker)](https://badge.home.toozhao.com/svg/aria2-ariang-docker "Page Views Count")
**If you like this project, please consider support me / 如果喜欢本项目,请考虑打赏,谢谢!**
@@ -47,11 +42,11 @@ File Browser
* [Aria2 (SSL support)](https://aria2.github.io)
* [AriaNg](https://github.com/mayswind/AriaNg)
* [Rclone](https://rclone.org/)
* [File Browser](https://filebrowser.xyz/): 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](https://cloud.docker.com/repository/docker/wahyd4/aria2-ui/tags)
* File indexing and video playing ([File Browser](https://filebrowser.xyz/))
* Support ARM CPUs, but please choose a proper [docker image TAG](https://cloud.docker.com/repository/docker/wahyd4/aria2-ui/tags)
* Cloud Storage platforms synchronization
## Recommended versions
@@ -68,10 +63,10 @@ File Browser
docker run -d --name aria2-ui -p 80:80 wahyd4/aria2-ui
```
* Aria2: <http://yourip>
* FileManger: <http://yourip/files>
* Aria2: <http://yourip/ui/>
* FileManger: <http://yourip>
* Rclone: <http://yourip/rclone>
* Please use `admin`/`admin` as username and password to login `Filebrowser` for the first time. And use `user`/`password` to login `Rclone` if you don't update `ARIA2_USER` and `ARIA2_PWD`
* Please use `admin`/`admin` as username and password to login for the first time, and `user`/`password` to login `Rclone` if you don't update `ARIA2_USER` and `ARIA2_PWD`
### Full features run
@@ -86,7 +81,7 @@ File Browser
-e DOMAIN=https://example.com \
-e ARIA2_SSL=false \
-e ARIA2_USER=user \
-e ARIA2_PWD=password \
-e ARIA2_PWD=pwd \
-e ARIA2_EXTERNAL_PORT=443 \
-v /yourdata:/data \
-v /app/a.db:/app/filebrowser.db \
@@ -118,7 +113,6 @@ Then simply run `docker-compose up -d`, that's it!
### Supported Environment Variables
* ENABLE_AUTH whether to enable Basic auth
* ENABLE_RCLONE whether to disable Rclone, if you running this container offline or do not have stable connection to Github, please set to `false`
* ARIA2_USER Basic Auth username, Rclone GUI uses it as well.
* ARIA2_PWD Basic Auth password, Rclone GUI uses it as well.
* ARIA2_EXTERNAL_PORT The Aria2 port which exposed to public to access to
+15 -15
View File
@@ -1,29 +1,29 @@
#{
# auto_https off
#}
{$DOMAIN}
basicauth / {
ARIA2_USER ARIA2_PWD_ENCRYPT
}
redir /ui / 301
redir /ui/ / 301
redir /ui /ui/ 301
redir /rclone /rclone/ 301
redir /files /files/ 301
reverse_proxy /jsonrpc 127.0.0.1:6800
route /rclone/* {
uri strip_prefix /rclone
reverse_proxy 127.0.0.1:5572
reverse_proxy http://localhost:5572
}
route /files/* {
uri strip_prefix /files
reverse_proxy 127.0.0.1:8080
route /ui/* {
uri strip_prefix /ui
root * /usr/local/www/aria2
file_server
}
root * /usr/local/www/aria2
file_server
basicauth /ui/* {
ARIA2_USER ARIA2_PWD_ENCRYPT
}
reverse_proxy 127.0.0.1:8080
reverse_proxy /jsonrpc 127.0.0.1:6800
encode gzip
log {
-40
View File
@@ -1,40 +0,0 @@
{
"name": "wahyd4/aria2-ariang-docker demo",
"description": "A demo of Aria2 + AriaNg + Filebrowser + Rclone",
"repository": "https://github.com/wahyd4/aria2-ariang-docker",
"keywords": ["docker", "aria2", "rclone", "fllebrowser", "ariang"],
"stack": "container",
"success_url": "/",
"env": {
"ENABLE_AUTH": {
"description": "This value must be heroku when running in Heroku",
"value": "heroku",
"required": false
},
"ARIA2_USER": {
"description": "Username to login to AriaNg",
"value": "user",
"required": false
},
"ARIA2_PWD": {
"description": "Password to login to AriaNg",
"value": "password",
"required": false
},
"ARIA2_EXTERNAL_PORT": {
"description": "External port for apps, it should be 443 when running in Heroku",
"value": "443",
"required": false
},
"PUID": {
"description": "The Linux user's ID that to run the app",
"value": "0",
"required": false
},
"PGID": {
"description": "The Linux group's ID that to run the app",
"value": "0",
"required": false
}
}
}
+7 -21
View File
@@ -1,31 +1,17 @@
#! /bin/bash -eu
echo "Run aria2c and ariaNG"
echo "**** Generate basic auth password for caddy ****"
ARIA2_PWD_ENCRYPT=$(caddy hash-password -plaintext ${ARIA2_PWD})
case $ENABLE_AUTH in
true)
if [ "$ENABLE_AUTH" = "true" ]; then
echo "Using Basic Auth config file "
export CADDY_FILE=/usr/local/caddy/SecureCaddyfile
sed -i 's/ARIA2_USER/'"${ARIA2_USER}"'/g' ${CADDY_FILE}
sed -i 's/ARIA2_PWD_ENCRYPT/'"${ARIA2_PWD_ENCRYPT}"'/g' ${CADDY_FILE}
;;
heroku)
echo "Running in Heroku mode"
export CADDY_FILE=/usr/local/caddy/HerokuCaddyfile
sed -i 's/ARIA2_USER/'"${ARIA2_USER}"'/g' ${CADDY_FILE}
sed -i 's/ARIA2_PWD_ENCRYPT/'"${ARIA2_PWD_ENCRYPT}"'/g' ${CADDY_FILE}
sed -i 's/PORT/'"${PORT}"'/g' ${CADDY_FILE}
;;
*)
echo "**** generate basic auth password for caddy ****"
ARIA2_PWD_ENCRYPT=`caddy hash-password -plaintext ${ARIA2_PWD}`
sed -i 's/ARIA2_USER/'"${ARIA2_USER}"'/g' /usr/local/caddy/SecureCaddyfile
sed -i 's/ARIA2_PWD_ENCRYPT/'"${ARIA2_PWD_ENCRYPT}"'/g' /usr/local/caddy/SecureCaddyfile
else
echo "Using caddy without Basic Auth"
export CADDY_FILE=/usr/local/caddy/Caddyfile
;;
esac
fi
/usr/local/bin/caddy run -config ${CADDY_FILE} -adapter=caddyfile
-3
View File
@@ -1,3 +0,0 @@
build:
docker:
web: Dockerfile
+4 -4
View File
@@ -2,10 +2,10 @@
echo "Set variables for $(arch)"
caddy_version=2.4.1
filebrowser_version=v2.15.0
rclone_version=v1.55.0
ariang_version=1.2.1
caddy_version=2.0.0
filebrowser_version=v2.11.0
rclone_version=v1.53.3
ariang_version=1.1.7
case "$(arch)" in
+7 -12
View File
@@ -1,14 +1,9 @@
#! /bin/bash -eu
if [ "$ENABLE_RCLONE" = "true" ]; then
echo "Start Rclone, please make sure you can connect to Github website. if not, please set docker env ENABLE_RCLONE=false"
rclone rcd --rc-web-gui \
--rc-web-gui-no-open-browser \
--rc-addr :5572 \
--rc-user $ARIA2_USER \
--rc-pass $ARIA2_PWD \
--cache-dir /app/.cache
else
echo "Skip starting Rclone as it's been disabled"
sleep 3650d
fi
echo "Start Rclone"
rclone rcd --rc-web-gui \
--rc-web-gui-no-open-browser \
--rc-addr :5572 \
--rc-user $ARIA2_USER \
--rc-pass $ARIA2_PWD \
--cache-dir /app/.cache