summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/torrent/rtorrent.nix
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2022-03-02 16:37:48 +0100
committerlassulus <lassulus@lassul.us>2022-03-02 16:37:48 +0100
commit44a42bb268e163e3fa43fe6ea6c4b979da0f49e9 (patch)
tree0e9475b0a40464b8122ac19ddcc63fe0daab3cd4 /makefu/2configs/torrent/rtorrent.nix
parent6002189225e347418f07a99d6a85b033fa0edaf7 (diff)
parent81817007edda4601c95a8f95aa99ce15320e224a (diff)
Merge remote-tracking branch 'gum/master'
Diffstat (limited to 'makefu/2configs/torrent/rtorrent.nix')
-rw-r--r--makefu/2configs/torrent/rtorrent.nix48
1 files changed, 48 insertions, 0 deletions
diff --git a/makefu/2configs/torrent/rtorrent.nix b/makefu/2configs/torrent/rtorrent.nix
new file mode 100644
index 000000000..79325bfc7
--- /dev/null
+++ b/makefu/2configs/torrent/rtorrent.nix
@@ -0,0 +1,48 @@
+{ config, lib, pkgs, ... }:
+
+let
+ basicAuth = import <torrent-secrets/auth.nix>;
+ peer-port = 51412;
+ web-port = 8112;
+ daemon-port = 58846;
+ dldir = config.makefu.dl-dir;
+in {
+ services.rtorrent.enable = true;
+ services.rtorrent.user = "rtorrent";
+ services.rtorrent.group = "download";
+ services.rtorrent.downloadDir = dldir;
+ services.rtorrent.configText = ''
+ schedule2 = watch_start, 10, 10, ((load.start, (cat, (cfg.watch), "/media/cloud/watch/*.torrent")))
+ '';
+
+ services.rtorrent.openFirewall = true;
+
+ systemd.services.flood = {
+ wantedBy = [ "multi-user.target" ];
+ wants = [ "rtorrent.service" ];
+ after = [ "rtorrent.service" ];
+ serviceConfig = {
+ User = "rtorrent";
+ ExecStart = "${pkgs.nodePackages.flood}/bin/flood --auth none --port ${toString web-port} --rtsocket ${config.services.rtorrent.rpcSocket}";
+ };
+ };
+
+ #security.acme.certs."torrent.${config.krebs.build.host.name}.r".server = config.krebs.ssl.acmeURL;
+
+ services.nginx = {
+ enable = true;
+ virtualHosts."torrent.${config.krebs.build.host.name}.r" = {
+ # TODO
+ inherit basicAuth;
+ #enableACME = true;
+ #addSSL = true;
+ root = "${pkgs.nodePackages.flood}/lib/node_modules/flood/dist/assets";
+ locations."/api".extraConfig = ''
+ proxy_pass http://localhost:${toString web-port};
+ '';
+ locations."/".extraConfig = ''
+ try_files $uri /index.html;
+ '';
+ };
+ };
+}