summaryrefslogtreecommitdiff
path: root/os/srv/monero.nix
blob: e09bc50c97cd0c66653011102aa460cd01cf5575 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{
  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" ];
      };
    })
  ];
}