Rtorrent: Difference between revisions

From NixOS Wiki
Makefu (talk | contribs)
add link to flood web service
Makefu (talk | contribs)
add server category
 
Line 34: Line 34:
  }
  }
After performing '''nixos-rebuild switch''' on port http://localhost:8112 the flood service should run.
After performing '''nixos-rebuild switch''' on port http://localhost:8112 the flood service should run.
[[Category:Server]]

Latest revision as of 23:55, 30 December 2024

rtorrent is a bittorrent client. This article discusses integrations of rtorrent with other graphical interfaces such as flood.

Integration with flood-js via UNIX sockets

rtorrent can open a socket which other software can use to interface with. No unprotected RPC socket of rtorrent is required with this setup and it therefore provides a higher security standard.

{ config, lib, pkgs, ... }:

let
  peer-port = 51412;
  web-port = 8112;
in {
  
  services.rtorrent = {
    enable = true;
    port = peer-port;
    package = pkgs.jesec-rtorrent; # currently (2024-12-30) rtorrent 0.15.0 in nixpkgs unstable is incompatible with flood, this is why a fork is used
    openFirewall = true;
  };

  services.flood = {
    enable = true;
    port = web-port;
    openFirewall = true;
    extraArgs = ["--rtsocket=${config.services.rtorrent.rpcSocket}"];
  };
  # allow access to the socket by putting it in the same group as rtorrent service
  # the socket will have g+w permissions
  systemd.services.flood.serviceConfig.SupplementaryGroups = [ config.services.rtorrent.group ];
}

Sample configuration is to be put into rtorrent.nix and imported in your configuration.nix via:

{
  imports = [ ./rtorrent.nix ];
}

After performing nixos-rebuild switch on port http://localhost:8112 the flood service should run.