nixos-config/2configs/dcpp/airdcpp.nix
2018-10-14 23:47:18 +02:00

50 lines
1.6 KiB
Nix

{ config, ... }:
{
krebs.airdcpp = {
enable = true;
extraGroups = [ "download" ];
web.port = 5600;
web.users.makefu.password = builtins.readFile <secrets/airdcpp-makefu.pw>; # watch out for newline!
hubs."krebshub" =
{ Nick = "makefu-${config.krebs.build.host.name}";
Password = builtins.readFile <secrets/krebshub.pw>;
Server = "adcs://hub.nsupdate.info:411";
AutoConnect = true;
};
dcpp = {
shares = {
# Incoming must be writeable!
incoming = { path = config.makefu.dl-dir + "/finished/dcpp"; incoming = true; };
audiobooks.path = config.makefu.dl-dir + "/finished/audiobooks";
};
Nick = "makefu";
DownloadSpeed = "1000";
UploadSpeed = "1000";
};
};
networking.firewall.allowedTCPPorts =
[ config.krebs.airdcpp.dcpp.InPort
config.krebs.airdcpp.dcpp.TLSPort
];
networking.firewall.allowedUDPPorts = [ config.krebs.airdcpp.dcpp.UDPPort ];
services.nginx.virtualHosts."dcpp.${config.krebs.build.host.name}.r".locations."/" =
{ proxyPass = "http://localhost:${toString config.krebs.airdcpp.web.port}/";
extraConfig = ''
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
gzip_types text/plain application/javascript;
# Proxy websockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
'';
};
state = map (f: "${config.krebs.airdcpp.stateDir}/${f}")
[ "Favorites.xml" "DCPlusPlus.xml" "WebServer.xml" "Recents.xml" "IgnoredUsers.xml" ];
}