Skip to content

s0cks/jsonnet-aria2-conf

Repository files navigation

aria2.conf

This repository contains Jsonnet for generating an aria2.conf file. See below for usage instructions

Table of Contents

Usage

Prerequisites

In order to generate an aria2.conf you will need the following:

Generating a configuration

To generate an aria2.conf you can do the following:

# using Taskfile:
task    # defaults to: task generate

# manually using Jsonnet:
jsonnet -J . -S -m . aria2.jsonnet \
    --ext-str ARIA2_SECRET="$(./bin/generate-rpc-secret)" \
    --ext-str ARIA2_USER_AGENT="$USER_AGENT" \
    --ext-str ARIA2_HOME="/usr/local/share/aria2"

Example generated configuration

aria2.conf
allow-overwrite = true
allow-piece-length-change = true
always-resume = true
async-dns = true
auto-file-renaming = true
bt-enable-lpd = false
bt-save-metadata = true
bt-tracker = udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://9.rarbg.to:2710/announce,udp://exodus.desync.com:6969/announce,udp://tracker.openbittorrent.com:80/announce,udp://tracker.tiny-vps.com:6969/announce,udp://retracker.lanta-net.ru:2710/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.cyberia.is:6969/announce,udp://torrentclub.tech:6969/announce,udp://open.stealth.si:80/announce,udp://denis.stalker.upeer.me:6969/announce,udp://tracker.moeking.me:6969/announce,udp://open.demonii.si:1337/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://tracker3.itzmx.com:6961/announce,udp://explodie.org:6969/announce,udp://valakas.rollo.dnsabr.com:2710/announce,udp://tracker.nyaa.uk:6969/announce,udp://tracker.iamhansen.xyz:2000/announce,udp://tracker.filepit.to:6969/announce,udp://tracker-udp.gbitt.info:80/announce,udp://retracker.netbynet.ru:2710/announce,udp://retracker.akado-ural.ru:80/announce,udp://opentor.org:2710/announce,udp://tracker.yoshi210.com:6969/announce,udp://tracker.filemail.com:6969/announce,udp://tracker.ds.is:6969/announce,udp://newtoncity.org:6969/announce,udp://bt2.archive.org:6969/announce,udp://bt1.archive.org:6969/announce,https://tracker.fastdownload.xyz:443/announce,https://opentracker.xyz:443/announce,https://opentracker.co:443/announce,http://tracker.bt4g.com:2095/announce,http://opentracker.xyz:80/announce,http://open.trackerlist.xyz:80/announce,http://h4.trakx.nibba.trade:80/announce,udp://xxxtor.com:2710/announce,udp://tracker.uw0.xyz:6969/announce,udp://tracker.tvunderground.org.ru:3218/announce,udp://tracker.nextrp.ru:6969/announce,udp://tracker.msm8916.com:6969/announce,udp://tracker.lelux.fi:6969/announce,udp://retracker.sevstar.net:2710/announce,udp://npserver.intranet.pw:4201/announce,https://tracker.nanoha.org:443/announce,https://tracker.hama3.net:443/announce,http://www.proxmox.com:6969/announce,http://tracker.tvunderground.org.ru:3218/announce,http://tracker.opentrackr.org:1337/announce,http://tracker.bz:80/announce,http://torrentclub.tech:6969/announce,http://t.nyaatracker.com:80/announce,http://retracker.sevstar.net:2710/announce,http://open.acgtracker.com:1096/announce,http://explodie.org:6969/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker2.itzmx.com:6961/announce,udp://tracker.swateam.org.uk:2710/announce,udp://tr.bangumi.moe:6969/announce,udp://qg.lorzl.gq:2710/announce,udp://chihaya.toss.li:9696/announce,https://tracker.vectahosting.eu:2053/announce,https://tracker.lelux.fi:443/announce,https://tracker.gbitt.info:443/announce,https://opentracker.acgnx.se:443/announce,http://www.loushao.net:8080/announce,http://vps02.net.orel.ru:80/announce,http://tracker4.itzmx.com:2710/announce,http://tracker3.itzmx.com:6961/announce,http://tracker2.itzmx.com:6961/announce,http://tracker1.itzmx.com:8080/announce,http://tracker01.loveapp.com:6789/announce,http://tracker.yoshi210.com:6969/announce,http://tracker.torrentyorg.pl:80/announce,http://tracker.lelux.fi:80/announce,http://tracker.gbitt.info:80/announce,http://tracker.frozen-layer.net:6969/announce,http://sukebei.tracker.wf:8888/announce,http://pow7.com:80/announce,http://opentracker.acgnx.se:80/announce,http://open.acgnxtracker.com:80/announce,http://newtoncity.org:6969/announce,http://mail2.zelenaya.net:80/announce,http://bt-tracker.gamexp.ru:2710/announce,http://acg.rip:6699/announce
console-log-level = notice
content-disposition-default-utf8 = true
continue = true
daemon = false
dht-entry-point = dht.transmissionbt.com:6881
dht-entry-point6 = dht.transmissionbt.com:6881
dht-file-path = /usr/local/share/aria2/data/dht.dat
dht-file-path6 = /usr/local/share/aria2/data/dht6.dat
dht-listen-port = 50101-50109
dir = $HOME/Downloads/
disk-cache = 64M
enable-dht = true
enable-dht6 = true
enable-peer-exchange = true
enable-rpc = true
file-allocation = falloc
listen-port = 50101-50109
log = -
log-level = warn
max-concurrent-downloads = 10
max-connection-per-server = 16
max-download-limit = 0
max-overall-download-limit = 0
max-overall-upload-limit = 256K
max-upload-limit = 0
min-split-size = 8M
no-file-allocation-limit = 8M
pause = false
peer-agent = Transmission/2.77
peer-id-prefix = -TR2770-
quiet = false
rpc-allow-origin-all = true
rpc-listen-all = false
rpc-listen-port = 6800
rpc-save-upload-metadata = true
rpc-secret = cYCqugffbRD5QOrWFKAQ8CzD
save-session = /usr/local/share/aria2/sessions
save-session-interval = 60
seed-ratio = 0.1
seed-time = 0
split = 32
user-agent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36

Customizing the configuration

You can also custommize the generated configuration like such:

// aria2-custom.jsonnet
local aria2 = import 'lib/aria2.libsonnet';
local trackers = import 'trackers.json';
local secret = std.extVar('ARIA2_SECRET');
local user_agent = std.extVar('ARIA2_USER_AGENT');
local aria2_home = std.extVar("ARIA2_HOME");
local sessions_dir = aria2_home + "/sessions";
local dht_storage_dir = aria2_home + "/data";
{
  ["aria2.conf"]: aria2.manifest(
        // here you can mix and match various components of the config:
        aria2.CoreConfig() + 
        aria2.LogConfig() +
        aria2.FileAllocConfig() +
        aria2.SessionsConfig(sessions_dir) + 
        aria2.RpcConfig(secret) + 
        // uncomment the folowing line to configure tls to the rpc listener:
        // aria2.RpcTlsConfig("my_cert", "my_key") +
        // .....or change the aria2.RpcConfig(seret) section to:
        // aria2.SecureRpcConfig(secret, "my_cert", "my_key") + 
        aria2.HttpConfig(user_agent) +
        aria2.SplitConfig() +
        // the default config will configure aria2 to download Torrents
        // if you would like to remove this behaviour, comment the lines below this, and add the following:
        aria2.TorrentConfig() +
        // instead of configuring aria2 to look like Transmission to torrent peers - default behaviour:
        // aria2.TransmissionPeerConfig() +
        // you can make your own config:
        aria2.PeerConfig("my_agent", "my_id_prefix") + // See aria2.PeerConfig and aria2.TransmissionPeerConfig
        aria2.DhtConfig(dht_storage_dir) +
        aria2.Dht6Config(dht_storage_dir) +
        aria2.TorrentTrackers(trackers),
        // you can even add your own properties to the config by appending to the above config like:
        // .... +
        // {
        //      ["my-property"]: "my-property-value",
        // }, 
        // this will mix these properties into the main configuration, just be sure to append using + operator
    )
}

LICENSE

See LICENSE

About

Generate an aria2.conf file using Jsonnet

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors