diff --git a/Dockerfile.arm b/Dockerfile.arm index 4f05924..2907a7c 100644 --- a/Dockerfile.arm +++ b/Dockerfile.arm @@ -1,19 +1,18 @@ FROM resin/rpi-raspbian # less priviledge user, the id should map the user the downloaded files belongs to -RUN groupadd -r aria && useradd -r -g aria aria -u 1000 +RUN groupadd -r aria && useradd -m -r -g aria aria -u 1000 # webui + aria2 RUN apt-get update \ - && apt-get install -y busybox curl \ - git \ + && apt-get install -y busybox curl git \ make g++ libssl-dev nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libxml2-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool \ - && ARIA2_VERSION="1.31.0" \ + && ARIA2_VERSION="1.32.0" \ && mkdir aria_build && cd aria_build \ && curl -L https://github.com/aria2/aria2/releases/download/release-"$ARIA2_VERSION"/aria2-"$ARIA2_VERSION".tar.gz > aria2.tar.gz \ && tar -xzf aria2.tar.gz \ && cd aria2-$ARIA2_VERSION \ - && autoreconf -i && ./configure && make \ + && autoreconf -i && ./configure && make \ && mv src/aria2c /usr/bin/ \ && cd ../.. \ && rm -rf aria_build \ @@ -30,7 +29,7 @@ RUN GITHUB_REPO="https://github.com/tianon/gosu" \ && chmod +x /usr/local/bin/gosu # goland install (compile source code for ARM since no version are currently available) -RUN curl -L "https://storage.googleapis.com/golang/go1.8.linux-armv6l.tar.gz" > go.tar.gz \ +RUN curl -L "https://storage.googleapis.com/golang/go1.9.1.linux-armv6l.tar.gz" > go.tar.gz \ && tar -xzf go.tar.gz -C /usr/local \ && export GOROOT="/usr/local/go" && export GOPATH=`pwd` \ && $GOROOT/bin/go get github.com/mattn/goreman && $GOROOT/bin/go build -o /usr/local/bin/goreman github.com/mattn/goreman \ @@ -39,10 +38,12 @@ RUN curl -L "https://storage.googleapis.com/golang/go1.8.linux-armv6l.tar.gz" > && unset GOROOT && unset GOPATH # goreman setup -RUN echo "web: gosu aria /bin/busybox httpd -f -p 8080 -h /webui-aria2\nbackend: gosu aria /usr/bin/aria2c --conf-path=/data/.aria2/aria2.conf" > Procfile +RUN echo "web: gosu aria /bin/busybox httpd -f -p 8080 -h /webui-aria2\nbackend: gosu aria /usr/bin/aria2c --conf-path=/home/aria/.aria2/aria2.conf /data/downloads/*.torrent" > Procfile # aria2 downloads directory -VOLUME /data +VOLUME /data/downloads +# aria2 conf directory +VOLUME /home/aria/.aria2 # aria2 RPC port, map as-is or reconfigure webui EXPOSE 6800/tcp diff --git a/README.md b/README.md index 9942055..e3e1cb0 100644 --- a/README.md +++ b/README.md @@ -63,22 +63,27 @@ sudo docker run -v /Downloads:/data -p 6800:6800 -p 9100:8080 --name="webui-aria This image contains both aria2 and webui-aria2. -Build it (may take several hours due to the aria2 compilation process. Don't panic and grap a coffee) +Build it (may take several hours due to the aria2 compilation process. Don't panic and grab a coffee) ``` docker build -f Dockerfile.arm -t yourname/webui-aria2 . ``` Prepare the host volume: -This image required few file to be mounted in the container's `/data` folder. +This image required few file to be mounted in the container. ``` -.aria2/session.txt (empty file) -.aria2/aria2.log (empty file) -.aria2/aria2.conf (aria2 configuration file, not webui-aria2 conf) must contains at least `enable-rpc=true` and `rpc-listen-all=true` -./downloads/ (where the downloaded files goes) +/home/aria/aria2/session.txt (empty file) +/home/aria/aria2/aria2.log (empty file) +/home/aria/aria2/aria2.conf (aria2 configuration file, not webui-aria2 conf) must contains at least `enable-rpc=true` and `rpc-listen-all=true` +/data/downloads/ (where the downloaded files goes) ``` Run it ``` -docker run --restart=always -d -v /home//data/aria2:/data -p 6800:6800 -p 9100:8080 --name="webui-aria2" yourname/webui-aria2 +docker run --restart=always \ + -v /home//data/aria2/downloads:/data/downloads \ + -v /home//data/aria2/.aria2:/home/aria/.aria2 \ + -p 6800:6800 -p 9100:8080 \ + --name="webui-aria2" \ + -d yourname/webui-aria2 ``` Support diff --git a/index.html b/index.html index 4caa7af..d59693e 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,7 @@ + Aria2 WebUI diff --git a/js/ctrls/modal.js b/js/ctrls/modal.js index a3c6df3..55d9c6d 100644 --- a/js/ctrls/modal.js +++ b/js/ctrls/modal.js @@ -79,15 +79,15 @@ angular parse: function() { return _ .chain(this.uris.trim().split(/\r?\n/g)) - .map(function(d) { + .map(function(d) { return _(d) - .replace(/("[^"]*")/g, function(c) { - return c.replace('%','%25').replace(' ','%20'); + .replace(/["'][^"']*["']/g, function(c) { + return c.replace(/%/g,'%25').replace(/ /g,'%20'); }) .trim() .split(/\s+/g) .map(function(c) { - return c.replace('%20',' ').replace('%25','%').replace(/"/g,''); + return c.replace(/%20/g,' ').replace(/%25/g,'%').replace(/["']/g,''); }); }) .filter(function(d) { return d.length }) diff --git a/js/services/rpc/rpc.js b/js/services/rpc/rpc.js index 8b57c3b..9cba9c5 100644 --- a/js/services/rpc/rpc.js +++ b/js/services/rpc/rpc.js @@ -107,7 +107,7 @@ function(syscall, globalTimeout, alerts, utils, rootScope, uri, authconf, filter alerts.addAlert('' + filter('translate')('Oh Snap!') + ' ' + filter('translate')('Could not connect to the aria2 RPC server. Will retry in 10 secs. You might want to check the connection settings by going to Settings > Connection Settings') , 'error'); - timeout = setTimeout(update, globalTimeout); +// timeout = setTimeout(update, globalTimeout); } }; @@ -189,10 +189,9 @@ function(syscall, globalTimeout, alerts, utils, rootScope, uri, authconf, filter else configurations = [conf]; - if (timeout) { + if (timeout) clearTimeout(timeout); - timeout = setTimeout(update, 0); - } + timeout = setTimeout(update, 0); }, // get current configuration being used