96 lines
3.3 KiB
Nix
96 lines
3.3 KiB
Nix
{ config, pkgs, ... }: {
|
|
# TODO: enable websocket (--rpc-certificate)
|
|
home-manager.users.${config.mainuser} = { config, ...}:
|
|
let
|
|
homeDir = config.home.homeDirectory;
|
|
in {
|
|
# home.packages = [ pkgs.ariang ];
|
|
programs.aria2 = {
|
|
enable = true;
|
|
settings = {
|
|
### Basic ###
|
|
dir = "${homeDir}/Downloads";
|
|
input-file = "${homeDir}/.config/aria2/aria2.session";
|
|
save-session = "${homeDir}/.config/aria2/aria2.session";
|
|
save-session-interval = 60;
|
|
max-concurrent-downloads = 5;
|
|
continue = true;
|
|
max-overall-download-limit = 0;
|
|
max-download-limit = 0;
|
|
quiet = true;
|
|
|
|
### Advanced ###
|
|
allow-overwrite = true;
|
|
allow-piece-length-change = true;
|
|
always-resume = true;
|
|
async-dns = false;
|
|
auto-file-renaming = true;
|
|
content-disposition-default-utf8 = true;
|
|
disk-cache = "64M";
|
|
file-allocation = "falloc";
|
|
no-file-allocation-limit = "8M";
|
|
# Set log level to output to console. LEVEL is either debug, info, notice, warn or error. Default: notice
|
|
console-log-level = "notice";
|
|
# Set log level to output. LEVEL is either debug, info, notice, warn or error. Default: debug
|
|
log-level = "warn";
|
|
log = "${homeDir}/.config/aria2/aria2.log";
|
|
|
|
### RPC ###
|
|
enable-rpc = true;
|
|
pause = false;
|
|
rpc-save-upload-metadata = true;
|
|
rpc-allow-origin-all = true;
|
|
rpc-listen-all = false;
|
|
rpc-listen-port = 49100;
|
|
# rpc-secret=
|
|
# The certificate must be either in PKCS12 (.p12, .pfx) or in PEM format. When using PEM, you have to specify the private key via --rpc-private-key as well.
|
|
# rpc-certificate=
|
|
# rpc-private-key=
|
|
rpc-secure = false;
|
|
|
|
### HTTP/FTP/SFTP ###
|
|
max-connection-per-server = 16;
|
|
min-split-size = "8M";
|
|
split = 32;
|
|
# user-agent = "Transmission/4.0.2";
|
|
|
|
### BitTorrent ###
|
|
# bt-save-metadata=false
|
|
listen-port = "49101-49109";
|
|
# max-overall-upload-limit=256K
|
|
# max-upload-limit=0
|
|
seed-ratio = 0.1;
|
|
seed-time = 0;
|
|
# bt-enable-lpd = false;
|
|
enable-dht = true;
|
|
enable-dht6 = true;
|
|
dht-listen-port = "49101-49109";
|
|
dht-entry-point = "dht.transmissionbt.com:6881";
|
|
dht-entry-point6 = "dht.transmissionbt.com:6881";
|
|
dht-file-path = "${homeDir}/.config/aria2/dht.dat";
|
|
dht-file-path6 = "${homeDir}/.config/aria2/dht6.dat";
|
|
enable-peer-exchange = true;
|
|
# peer-id-prefix = "-TR2770-";
|
|
peer-agent = "Transmission/4.0.2";
|
|
# bt-tracker = "";
|
|
};
|
|
};
|
|
|
|
systemd.user.services.aria2 = {
|
|
Unit.Description = "aria2 is a download utility operated in command-line";
|
|
Service = {
|
|
Restart = "on-failure";
|
|
ExecStart = "${pkgs.aria2}/bin/aria2c";
|
|
};
|
|
Install.WantedBy = [ "default.target" ];
|
|
};
|
|
};
|
|
|
|
systemd.tmpfiles.rules = [
|
|
"f /home/${config.mainuser}/.config/aria2/aria2.session 0644 ${config.mainuser} users -"
|
|
"f /home/${config.mainuser}/.config/aria2/dht.dat 0644 ${config.mainuser} users -"
|
|
"f /home/${config.mainuser}/.config/aria2/dht6.dat 0644 ${config.mainuser} users -"
|
|
];
|
|
|
|
persist.state.homeDirectories = [ ".config/aria2" ];
|
|
} |