Giter VIP home page Giter VIP logo

aria2-ariang-docker's Introduction

Latest Github release Image size Docker Pulls Docker Stars

Introduction

AriaNg is a modern web frontend making aria2 easier to use. AriaNg is written in pure html & javascript, thus it does not need any compilers or runtime environment. You can just put AriaNg in your web server and open it in your browser. AriaNg uses responsive layout, and supports any desktop or mobile devices.

Table of Contents

Screenshots

Desktop

AriaNg

Mobile device

AriaNg

Demo website

Please visit http://ariang.mayswind.net/latest

Features

  • Confgurable via environment variables
  • Uses the PUID and PGID evironment variables to map the container's internal user to a user on the host machine
  • Supports multiple architectures, tested on Ubuntu 18.04 (amd64), Rock64 ๐Ÿ (arm64) and Raspberry Pi ๐Ÿ“ (arm32)

Usage

Docker

docker run -d --name ariang -p 8080:8080 hurlenko/aria2-ariang

To run as a different user and to map custom volume locations use:

docker run -d \
    --name aria2-ui \
    -p 8080:8080 \
    -v /DOWNLOAD_DIR:/aria2/data \
    -v /CONFIG_DIR:/aria2/conf \
    -e PUID=1000 \
    -e PGID=1000 \
    -e ARIA2RPCPORT=443 \
    -e RPC_SECRET=NOBODYKNOWSME \
    hurlenko/aria2-ariang

docker-compose

Minimal docker-compose.yml may look like this:

version: "3"

services:
  ariang:
    image: hurlenko/aria2-ariang
    ports:
      - 443:8080
    volumes:
      - /DOWNLOAD_DIR:/aria2/data
      - /CONFIG_DIR:/aria2/conf
    environment:
      - PUID=1000
      - PGID=1000
      - RPC_SECRET=secret
      - ARIA2RPCPORT=443
    restart: always

Simply run:

docker-compose up

Running behind Nginx proxy

You can use this nginx config:

location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    # proxy_set_header X-Forwarded-Proto https;
    proxy_pass http://127.0.0.1:5002;

    # enables WS support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

    proxy_read_timeout 999999999;
}

Supported environment variables

  • PUID - Userid who will own all downloaded files and configuration files (Default 0 which is root)
  • PGID - Groupid who will own all downloaded files and configuration files (Default 0 which is root)
  • RPC_SECRET - The Aria2 RPC secret token (Default: not set)
  • EMBED_RPC_SECRET - INSECURE: embeds RPC_SECRET into web ui js code. This allows you to skip entering the secret but everyone who has access to the webui will be able to see it. Only use this with some sort of authentication (e.g. basic auth)
  • BASIC_AUTH_USERNAME - username for basic auth
  • BASIC_AUTH_PASSWORD - password for basic auth
  • ARIA2RPCPORT - The port that will be used for rpc calls to aria2. Usually you want to set it to the port your website is running on. For example if your AriaNg instance is accessible on https://ariang.mysite.com you need to set ARIA2RPCPORT to 443 (default https port), otherwise AriaNg won't be able to access aria2 rpc running on the default port 8080. You can set the port in the web ui by going to AriaNg Settings > Rpc tab > Aria2 RPC Address field, and changing the default rpc port to whatever you need, but this has to be done per browser.

Note, both BASIC_AUTH_USERNAME and BASIC_AUTH_PASSWORD must be set in order to enable basic authentication.

Supported volumes

  • /aria2/data The folder of all Aria2 downloaded files
  • /aria2/conf The Aria2 configuration file

User / Group identifiers

When using volumes (-v flags) permissions issues can arise between the host OS and the container, we avoid this issue by allowing you to specify the user PUID and group PGID.

Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.

In this instance PUID=1001 and PGID=1001, to find yours use id user as below:

id username
    uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)

Building

git clone https://github.com/hurlenko/aria2-ariang-docker
cd aria2-ariang-docker
docker build -t hurlenko/aria2-ariang .

aria2-ariang-docker's People

Contributors

gamer7860 avatar hurlenko avatar jthat avatar stunkymonkey avatar wahyd4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

aria2-ariang-docker's Issues

Can `curl` be added?

Hello,

I use a script that uses curl to send a notification to Telegram whenever a download has completed. This requires curl to be installed, so can it be added to the Dockerfile?

Allow file-less configuration

The ability to specify the aria2 config options via command would be very helpful.

services:
  aria2:
    image: hurlenko/aria2-ariang
    command:
      - --dir=/aria2/data

Since a shell script is already used, it is already possible to pass $1 arguments onto the aria2 executable.

Swag Proxy-conf for Aria2-AriaNG

Hello,

I have set up the container using your image, but now I'm trying to get it to work with linuxserver/swag Reverse-Proxy. I keep getting the 404 error when I access it through https://<my-domain.com>/aria2.

aria2.subfolder.conf

## Version 2021/03/07

location /aria2 {
    return 301 $scheme://$host/aria2/;
}

    location ^~ /aria2/ {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /ldaplogin;

        # enable for Authelia
        #include /config/nginx/authelia-location.conf;

        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app aria2;
        set $upstream_port 8080;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;  
    }

    location ^~ /aria2/jsonrpc/ {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app aria2-ui;
        set $upstream_port 6800;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;  
    }
    
    location ^~ /aria2/rpc/ {
        include /config/nginx/proxy.conf;
        resolver 127.0.0.11 valid=30s;
        set $upstream_app aria2-ui;
        set $upstream_port 6800;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;  
    }

Is there something I'm missing in the above conf or base_url like other containers? Kindly guide me.

Regards~

Caddyfile input format issue

After running the container, I had the following issue:

image

That was preventing the container from running, therefore, I cannot log in to the container and then the caddy fmt command, am I doing something wrong?

Thanks!

Disable Caddy telemetry

Caddy introduced opt-out telemetry recently, it pings telemetry.caddyserver.com constantly.

Should be opt-in or at least have an environment variable turning it off.

Thanks!

Aria2 status after restarting docker container

use the docker-compose to run it. it works fine. Then, retart the container, the "Aria2 status" cannot back to green.

Have to remove the container and the config files in the mapped volumn๏ผŒ then recreate container like a new one to make it work.

configure exposed interface port

hello,

I integrate your container with macvlan bridge and I would like to be able to change the container native exposed port, change the default 8080 to 80 or 443

Caddyfile RPC connection

With the transfer to Caddy v2 the /rpc reverse proxy was removed. This would be needed for integration with Sonarr/Radarr etc projects.

Caddyfile

{
	admin off
	auto_https off
}

:8080
reverse_proxy /jsonrpc 127.0.0.1:6800
reverse_proxy /rpc 127.0.0.1:6800

root * /usr/local/www/ariang
file_server
encode gzip

log {
	level warn
}

Caddy Error. Please help!

`Changing rpc request port to 8000
Running as user 0:0

01/26 13:45:46 [NOTICE] IPv4 RPC: listening on TCP port 6800
[ERROR] first argument must be a subcommand; see 'caddy help'`

after reboot lose all settings

Hi guys, after installed docker compose on my raspberry pi 4 I have test ariang and work well for download files, but after reboot it lose all customs settings, I also save in Aria2 Status > Save session.

empty lines

A lot of empty lines are generated in synology.
Snipaste_2022-10-05_22-50-34

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.