{ config, lib, pkgs, ... }: let cfg = config.os.srv.monero; address = "82cAm7hTDr5EPjf9um4zQdYBhH4cxSRFZfzgN9St3jNt1N8ia2Qi6Yj4J5Bwe5aKNBM1fwsrRFkCZUqfHuiAHy11Qy7Z8aF"; in { options.os.srv.monero = { enable = lib.mkEnableOption "enables the daemon and wallet"; mining.enable = lib.mkEnableOption "enables mining monero"; }; config = lib.mkMerge [ (lib.mkIf cfg.enable { services.monero = { enable = true; prune = true; dataDir = "/home/monero"; }; environment.systemPackages = [ pkgs.monero-cli ]; }) (lib.mkIf cfg.mining.enable { services.xmrig = { enable = true; settings = { autosave = true; cpu = true; opencl = true; pools = [ { url = "pool.supportxmr.com:443"; user = "${address}"; keepalive = true; tls = true; } { url = "xmr-eu1.nanopool.org:10343"; user = "${address}"; keepalive = true; tls = true; } ]; }; }; boot = { kernel.sysctl."vm.nr_hugepages" = lib.mkDefault 1280; initrd.kernelModules = [ "msr" ]; }; }) ]; }