From 8e4de29da2223554e66f8d162b590e5a42b8a21a Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Fri, 21 May 2021 07:11:12 +1000 Subject: [PATCH] use dynamic port for heroku mode --- Dockerfile | 2 +- HerokuCaddyfile | 36 ++++++++++++++++++++++++++++++++++++ SecureCaddyfile | 3 --- caddy.sh | 28 +++++++++++++++++++++------- install.sh | 2 +- 5 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 HerokuCaddyfile diff --git a/Dockerfile b/Dockerfile index 3ff9613..7bf61ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,7 +21,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 /usr/local/caddy/ +ADD Caddyfile SecureCaddyfile HerokuCaddyfile /usr/local/caddy/ RUN ./install.sh diff --git a/HerokuCaddyfile b/HerokuCaddyfile new file mode 100644 index 0000000..f7e4fab --- /dev/null +++ b/HerokuCaddyfile @@ -0,0 +1,36 @@ +{ + debug + admin off + auto_https off +} + +:CADDY_HTTP_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 +} diff --git a/SecureCaddyfile b/SecureCaddyfile index 3b7ac3f..b4a5ab6 100644 --- a/SecureCaddyfile +++ b/SecureCaddyfile @@ -1,6 +1,3 @@ -#{ -# auto_https off -#} {$DOMAIN} diff --git a/caddy.sh b/caddy.sh index 4da206b..281daac 100755 --- a/caddy.sh +++ b/caddy.sh @@ -1,17 +1,31 @@ #! /bin/bash -eu echo "Run aria2c and ariaNG" -if [ "$ENABLE_AUTH" = "true" ]; then + +echo "**** Generate basic auth password for caddy ****" +ARIA2_PWD_ENCRYPT=$(caddy hash-password -plaintext ${ARIA2_PWD}) + +case $ENABLE_AUTH in +true) 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} + ;; - 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 +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/CADDY_HTTP_PORT/'"${CADDY_HTTP_PORT}"'/g' ${CADDY_FILE} + + ;; +*) echo "Using caddy without Basic Auth" export CADDY_FILE=/usr/local/caddy/Caddyfile -fi + ;; +esac /usr/local/bin/caddy run -config ${CADDY_FILE} -adapter=caddyfile diff --git a/install.sh b/install.sh index 24a04b2..c1c1551 100755 --- a/install.sh +++ b/install.sh @@ -2,7 +2,7 @@ echo "Set variables for $(arch)" -caddy_version=2.3.0 +caddy_version=2.4.1 filebrowser_version=v2.15.0 rclone_version=v1.55.0 ariang_version=1.2.1