{ self, config, lib, pkgs, ... }: with self.lib.nginx; { imports = [ ./rutorrent.nix ./rtorrent.nix ]; security.acme.certs = { "media.cocaine.farm" = { extraDomainNames = [ "*.media.cocaine.farm" ]; }; }; users = { users.media = { isSystemUser = true; group = "media"; }; groups.media = {}; }; services.jellyfin = { enable = true; user = "media"; group = "media"; }; services.radarr = { enable = true; user = "media"; group = "media"; }; services.sonarr = { enable = true; package = pkgs.callPackage ./sonarr.nix {}; user = "media"; group = "media"; }; services.prowlarr = { enable = true; }; services.rutorrent = { enable = true; hostName = "torrent.media.cocaine.farm"; plugins = lib.mkForce [ "data" "diskspace" "edit" "erasedata" "theme" "trafic" ]; nginx.enable = true; }; virtualisation.oci-containers.containers = { flaresolverr = { image = "ghcr.io/flaresolverr/flaresolverr:v3.3.21"; autoStart = true; ports = [ "10.10.0.2:8191:8191" ]; }; }; services.nginx = { enable = true; virtualHosts = { "media.cocaine.farm" = (proxyDomain "media.cocaine.farm" "http://127.0.0.1:8096/"); "sonarr.media.cocaine.farm" = proxyDomainAuth "media.cocaine.farm" "http://127.0.0.1:8989"; "radarr.media.cocaine.farm" = proxyDomainAuth "media.cocaine.farm" "http://127.0.0.1:7878"; "prowlarr.media.cocaine.farm" = proxyDomainAuth "media.cocaine.farm" "http://127.0.0.1:9696"; "torrent.media.cocaine.farm" = domainAuth "media.cocaine.farm"; "torrent.local" = { listen = [{ addr = "10.10.0.2"; port = 80; }]; locations."/RPC2" = { extraConfig = '' include ${pkgs.nginx}/conf/scgi_params; scgi_pass unix:/run/rtorrent/rpc.sock; ''; }; }; }; }; networking.hosts = { "10.10.0.2" = [ "torrent.local" ]; }; }