Using forogo to manage mutliple processes

This commit is contained in:
2019-07-13 13:16:16 +10:00
parent 54faacb741
commit 5f3d232f3a
7 changed files with 57 additions and 48 deletions
+13 -10
View File
@@ -2,38 +2,41 @@ FROM alpine:edge
LABEL AUTHOR=Junv<wahyd4@gmail.com>
WORKDIR /root
WORKDIR /app
ENV RPC_SECRET=Hello
ENV ENABLE_AUTH=false
ENV DOMAIN=0.0.0.0:80
ENV ARIA2_USER=user
ENV ARIA2_PWD=password
ENV SSL=false
RUN apk update \
&& apk add wget bash curl openrc gnupg screen aria2 tar --no-cache
&& apk add wget bash curl openrc gnupg aria2 tar --no-cache
RUN curl https://getcaddy.com | bash -s personal
RUN curl -fsSL https://filebrowser.xyz/get.sh | bash
RUN wget -N https://bin.equinox.io/c/ekMN3bCZFUn/forego-stable-linux-amd64.tgz && tar -zxvf forego-stable-linux-amd64.tgz && rm -rf forego-stable-linux-amd64.tgz
RUN mkdir -p /usr/local/www && mkdir -p /usr/local/www/aria2
ADD conf /root/conf
COPY aria2c.sh /root
ADD conf /app/conf
COPY aria2c.sh caddy.sh Procfile /app/
COPY Caddyfile SecureCaddyfile /usr/local/caddy/
# AriaNg
RUN mkdir /usr/local/www/aria2/Download && cd /usr/local/www/aria2 \
&& chmod +rw /root/conf/aria2.session \
&& chmod +rw /app/conf/aria2.session \
&& version=1.1.0 \
&& wget -N --no-check-certificate https://github.com/mayswind/AriaNg/releases/download/${version}/AriaNg-${version}.zip && unzip AriaNg-${version}.zip && rm -rf AriaNg-${version}.zip \
&& chmod -R 755 /usr/local/www/aria2 \
&& chmod +x /root/aria2c.sh
&& sed -i 's/6800/80/g' /usr/local/www/aria2/js/aria-ng*.js
#The folder to store ssl keys
VOLUME /root/conf/key
# User downloaded files
# folder for storing ssl keys
VOLUME /app/conf/key
# file downloading folder
VOLUME /data
EXPOSE 80 443
CMD ["/bin/sh", "/root/aria2c.sh" ]
CMD ["./forego", "start" ]
+3
View File
@@ -0,0 +1,3 @@
filebrowser: /usr/local/bin/filebrowser -p 8080 -d /app/filebrowser.db -r /data
caddy: /app/caddy.sh
aria2c: /app/aria2c.sh
Regular → Executable
+6 -19
View File
@@ -1,30 +1,17 @@
#! /bin/bash -eu
echo "Run aria2c and ariaNG"
if [ "$ENABLE_AUTH" = "true" ]; then
echo "Using Basic Auth config file "
CADDY_FILE=/usr/local/caddy/SecureCaddyfile
else
echo "Using caddy without Basic Auth"
CADDY_FILE=/usr/local/caddy/Caddyfile
fi
if [ "$SSL" = "true" ]; then
echo "Start aria2 with secure config"
/usr/bin/aria2c --conf-path="/root/conf/aria2.conf" -D \
--enable-rpc --rpc-listen-all \
--rpc-certificate=/root/conf/key/aria2.crt \
--rpc-private-key=/root/conf/key/aria2.key \
/usr/bin/aria2c --conf-path="/app/conf/aria2.conf" \
--enable-rpc --rpc-listen-all \
--rpc-certificate=/app/conf/key/aria2.crt \
--rpc-private-key=/app/conf/key/aria2.key \
--rpc-secret="$RPC_SECRET" --rpc-secure \
&& (nohup sh -c "/usr/local/bin/filebrowser -p 8080 -d /root/filebrowser.db -l /var/log/file-browser/out.log -r /data" &)\
&& /usr/local/bin/caddy -quic --conf ${CADDY_FILE}
else
echo "Start aria2 with standard mode"
/usr/bin/aria2c --conf-path="/root/conf/aria2.conf" -D \
--enable-rpc --rpc-listen-all \
&& (nohup sh -c "/usr/local/bin/filebrowser -p 8080 -d /root/filebrowser.db -l /var/log/file-browser/out.log -r /data" &)\
&& /usr/local/bin/caddy -quic --conf ${CADDY_FILE}
/usr/bin/aria2c --conf-path="/app/conf/aria2.conf" --enable-rpc --rpc-listen-all
fi
+10 -8
View File
@@ -2,38 +2,40 @@ FROM arm32v6/alpine:edge
LABEL AUTHOR=Junv<wahyd4@gmail.com>
WORKDIR /root
WORKDIR /app
ENV RPC_SECRET=Hello
ENV ENABLE_AUTH=false
ENV DOMAIN=0.0.0.0:80
ENV ARIA2_USER=user
ENV ARIA2_PWD=password
ENV SSL=false
RUN apk update \
&& apk add wget bash curl openrc gnupg screen aria2 tar --no-cache
&& apk add wget bash curl openrc gnupg aria2 tar --no-cache
RUN curl https://getcaddy.com | bash -s personal
RUN curl -fsSL https://filebrowser.xyz/get.sh | bash
RUN wget -N https://bin.equinox.io/c/ekMN3bCZFUn/forego-stable-linux-arm.tgz && tar -zxvf forego-stable-linux-arm.tgz && rm -rf forego-stable-linux-arm.tgz
RUN mkdir -p /usr/local/www && mkdir -p /usr/local/www/aria2
ADD conf /root/conf
COPY aria2c.sh /root
ADD conf /app/conf
COPY aria2c.sh caddy.sh Procfile /app/
COPY Caddyfile SecureCaddyfile /usr/local/caddy/
# AriaNg
RUN mkdir /usr/local/www/aria2/Download && cd /usr/local/www/aria2 \
&& chmod +rw /root/conf/aria2.session \
&& chmod +rw /app/conf/aria2.session \
&& version=1.1.0 \
&& wget -N --no-check-certificate https://github.com/mayswind/AriaNg/releases/download/${version}/AriaNg-${version}.zip && unzip AriaNg-${version}.zip && rm -rf AriaNg-${version}.zip \
&& chmod -R 755 /usr/local/www/aria2 \
&& chmod +x /root/aria2c.sh
&& sed -i 's/6800/80/g' /usr/local/www/aria2/js/aria-ng*.js
#The folder to store ssl keys
VOLUME /root/conf/key
VOLUME /app/conf/key
# User downloaded files
VOLUME /data
EXPOSE 80 443
CMD ["/bin/sh", "/root/aria2c.sh" ]
CMD ["./forego", "start" ]
+11 -9
View File
@@ -1,39 +1,41 @@
FROM arm64v8/alpine:edge
FROM arm64v8/alpine:3.8
LABEL AUTHOR=Junv<wahyd4@gmail.com>
WORKDIR /root
WORKDIR /app
ENV RPC_SECRET=Hello
ENV ENABLE_AUTH=false
ENV DOMAIN=0.0.0.0:80
ENV ARIA2_USER=user
ENV ARIA2_PWD=password
ENV SSL=false
RUN apk update \
&& apk add wget bash curl openrc gnupg screen aria2 tar --no-cache
&& apk add wget bash curl openrc gnupg aria2 tar --no-cache
RUN curl https://getcaddy.com | bash -s personal
RUN curl -fsSL https://filebrowser.xyz/get.sh | bash
RUN wget -N https://bin.equinox.io/c/ekMN3bCZFUn/forego-stable-linux-arm64.tgz && tar -zxvf forego-stable-linux-arm64.tgz && rm -rf forego-stable-linux-arm64.tgz
RUN mkdir -p /usr/local/www && mkdir -p /usr/local/www/aria2
ADD conf /root/conf
COPY aria2c.sh /root
ADD conf /app/conf
COPY aria2c.sh caddy.sh Procfile /app/
COPY Caddyfile SecureCaddyfile /usr/local/caddy/
# AriaNg
RUN mkdir /usr/local/www/aria2/Download && cd /usr/local/www/aria2 \
&& chmod +rw /root/conf/aria2.session \
&& chmod +rw /app/conf/aria2.session \
&& version=1.1.0 \
&& wget -N --no-check-certificate https://github.com/mayswind/AriaNg/releases/download/${version}/AriaNg-${version}.zip && unzip AriaNg-${version}.zip && rm -rf AriaNg-${version}.zip \
&& chmod -R 755 /usr/local/www/aria2 \
&& chmod +x /root/aria2c.sh
&& sed -i 's/6800/80/g' /usr/local/www/aria2/js/aria-ng*.js
#The folder to store ssl keys
VOLUME /root/conf/key
VOLUME /app/conf/key
# User downloaded files
VOLUME /data
EXPOSE 80 443
CMD ["/bin/sh", "/root/aria2c.sh" ]
CMD ["./forego", "start" ]
Executable
+12
View File
@@ -0,0 +1,12 @@
#! /bin/bash -eu
echo "Run aria2c and ariaNG"
if [ "$ENABLE_AUTH" = "true" ]; then
echo "Using Basic Auth config file "
export CADDY_FILE=/usr/local/caddy/SecureCaddyfile
else
echo "Using caddy without Basic Auth"
export CADDY_FILE=/usr/local/caddy/Caddyfile
fi
/usr/local/bin/caddy -quic --conf ${CADDY_FILE}
+2 -2
View File
@@ -57,9 +57,9 @@ log-level=notice
## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file=/root/conf/aria2.session
input-file=/app/conf/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/root/conf/aria2.session
save-session=/app/conf/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=10