diff --git a/modules/lnd.nix b/modules/lnd.nix index 651883f..7cead2e 100644 --- a/modules/lnd.nix +++ b/modules/lnd.nix @@ -50,19 +50,25 @@ in { description = "Port on which to listen for gRPC connections."; }; extraConfig = mkOption { - type = types.lines; - default = ""; - example = '' - autopilot.active=1 - ''; - description = "Additional configurations to be appended to lnd.conf."; - }; + type = types.lines; + default = ""; + example = '' + autopilot.active=1 + ''; + description = "Additional configurations to be appended to lnd.conf."; + }; + package = mkOption { + type = types.package; + default = pkgs.nix-bitcoin.lnd; + defaultText = "pkgs.nix-bitcoin.lnd"; + description = "The package providing lnd binaries."; + }; cli = mkOption { readOnly = true; default = pkgs.writeScriptBin "lncli" # Switch user because lnd makes datadir contents readable by user only '' - exec sudo -u lnd ${pkgs.nix-bitcoin.lnd}/bin/lncli --tlscertpath ${secretsDir}/lnd-cert \ + exec sudo -u lnd ${cfg.package}/bin/lncli --tlscertpath ${secretsDir}/lnd-cert \ --macaroonpath '${cfg.dataDir}/chain/bitcoin/mainnet/admin.macaroon' "$@" ''; description = "Binary to connect with the lnd instance."; @@ -71,6 +77,7 @@ in { }; config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; systemd.services.lnd = { description = "Run LND"; path = [ pkgs.nix-bitcoin.bitcoind ]; @@ -86,7 +93,7 @@ in { ''; serviceConfig = { PermissionsStartOnly = "true"; - ExecStart = "${pkgs.nix-bitcoin.lnd}/bin/lnd --configfile=${cfg.dataDir}/lnd.conf"; + ExecStart = "${cfg.package}/bin/lnd --configfile=${cfg.dataDir}/lnd.conf"; User = "lnd"; Restart = "on-failure"; RestartSec = "10s";