2024-09-19 23:56:49 +03:00
{ config , pkgs , . . . }: {
2023-01-26 00:23:55 +03:00
# TODO: enable websocket (--rpc-certificate)
2024-09-19 23:56:49 +03:00
home-manager . users . ${ config . mainuser } = { config , . . . }:
let
homeDir = config . home . homeDirectory ;
in {
# home.packages = [ pkgs.ariang ];
2024-02-08 23:21:10 +03:00
programs . aria2 = {
enable = true ;
settings = {
2024-09-19 23:56:49 +03:00
### Basic ###
dir = " ${ homeDir } / D o w n l o a d s " ;
input-file = " ${ homeDir } / . c o n f i g / a r i a 2 / a r i a 2 . s e s s i o n " ;
save-session = " ${ homeDir } / . c o n f i g / a r i a 2 / a r i a 2 . s e s s i o n " ;
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 = " 6 4 M " ;
file-allocation = " f a l l o c " ;
no-file-allocation-limit = " 8 M " ;
# Set log level to output to console. LEVEL is either debug, info, notice, warn or error. Default: notice
console-log-level = " n o t i c e " ;
# Set log level to output. LEVEL is either debug, info, notice, warn or error. Default: debug
log-level = " w a r n " ;
log = " ${ homeDir } / . c o n f i g / a r i a 2 / a r i a 2 . l o g " ;
### 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 = " 8 M " ;
split = 32 ;
# user-agent = "Transmission/4.0.2";
### BitTorrent ###
# bt-save-metadata=false
listen-port = " 4 9 1 0 1 - 4 9 1 0 9 " ;
# 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 = " 4 9 1 0 1 - 4 9 1 0 9 " ;
dht-entry-point = " d h t . t r a n s m i s s i o n b t . c o m : 6 8 8 1 " ;
dht-entry-point6 = " d h t . t r a n s m i s s i o n b t . c o m : 6 8 8 1 " ;
dht-file-path = " ${ homeDir } / . c o n f i g / a r i a 2 / d h t . d a t " ;
dht-file-path6 = " ${ homeDir } / . c o n f i g / a r i a 2 / d h t 6 . d a t " ;
enable-peer-exchange = true ;
# peer-id-prefix = "-TR2770-";
peer-agent = " T r a n s m i s s i o n / 4 . 0 . 2 " ;
# bt-tracker = "";
2024-02-08 23:21:10 +03:00
} ;
} ;
2024-09-19 23:56:49 +03:00
systemd . user . services . aria2 = {
Unit . Description = " a r i a 2 i s a d o w n l o a d u t i l i t y o p e r a t e d i n c o m m a n d - l i n e " ;
Service = {
Restart = " o n - f a i l u r e " ;
ExecStart = " ${ pkgs . aria2 } / b i n / a r i a 2 c " ;
} ;
Install . WantedBy = [ " d e f a u l t . t a r g e t " ] ;
} ;
2023-01-26 00:23:55 +03:00
} ;
2024-02-08 23:21:10 +03:00
2024-09-19 23:56:49 +03:00
systemd . tmpfiles . rules = [
" f / h o m e / ${ config . mainuser } / . c o n f i g / a r i a 2 / a r i a 2 . s e s s i o n 0 6 4 4 ${ config . mainuser } u s e r s - "
" f / h o m e / ${ config . mainuser } / . c o n f i g / a r i a 2 / d h t . d a t 0 6 4 4 ${ config . mainuser } u s e r s - "
" f / h o m e / ${ config . mainuser } / . c o n f i g / a r i a 2 / d h t 6 . d a t 0 6 4 4 ${ config . mainuser } u s e r s - "
] ;
persist . state . homeDirectories = [ " . c o n f i g / a r i a 2 " ] ;
2023-01-26 00:23:55 +03:00
}