Personal-use NixOS configuration
at main 55 lines 1.0 kB view raw
1{ 2 hosts ? [ ], 3}: 4 5{ 6 config, 7 lib, 8 flakeLib, 9 pkgs, 10 utils ? pkgs.utils, 11 ... 12}: 13 14let 15 socket = "/run/flood/flood.sock"; 16in 17{ 18 services.flood = { 19 enable = true; 20 21 extraArgs = [ 22 "--rtsocket=${config.services.rtorrent.rpcSocket}" 23 ]; 24 }; 25 26 # Override service to support listening on sockets 27 systemd.services.flood.serviceConfig = { 28 ExecStart = lib.mkForce ( 29 utils.escapeSystemdExecArgs ( 30 [ 31 (lib.getExe config.services.flood.package) 32 "--port" 33 socket 34 "--rundir=/var/lib/flood" 35 ] 36 ++ config.services.flood.extraArgs 37 ) 38 ); 39 40 RuntimeDirectory = "flood"; 41 RuntimeDirectoryMode = "0750"; 42 UMask = "0007"; 43 44 Group = config.users.groups.flood-proxy.name; 45 }; 46 47 users.groups.flood-proxy = { }; 48 49 # Caddy reverse proxy configuration 50 users.users.caddy.extraGroups = [ config.users.groups.flood-proxy.name ]; 51 52 services.caddy.virtualHosts = flakeLib.mkProxies hosts '' 53 reverse_proxy unix/${socket} 54 ''; 55}