Merge #285: Add CLBOSS
196e3c9dbb
clboss: add test todo (nixbitcoin)f89498d4fc
clboss: add module (nixbitcoin)9423eadcee
clboss: add pkg (nixbitcoin) Pull request description: ACKs for top commit: erikarvstedt: ACK196e3c9dbb
jonasnick: utACK196e3c9dbb
Tree-SHA512: 1c3e0dd23f45554cd423d1a4d57f936c1a3fd9e25b8332acef67ce6a648b38e55e780e4d393f93a1cbb1e342773e0f4aa039216c6d10641fe7436e7b155cc83f
This commit is contained in:
commit
4d1150a671
26
modules/clightning-plugins/clboss.nix
Normal file
26
modules/clightning-plugins/clboss.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
let cfg = config.services.clightning.plugins.clboss; in
|
||||
{
|
||||
options.services.clightning.plugins.clboss = {
|
||||
enable = mkEnableOption "CLBOSS (clightning plugin)";
|
||||
min-onchain = mkOption {
|
||||
type = types.ints.positive;
|
||||
default = 30000;
|
||||
description = ''
|
||||
Specify target amount (in satoshi) that CLBOSS will leave onchain.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.clightning.extraConfig = ''
|
||||
plugin=${config.nix-bitcoin.pkgs.clboss}/bin/clboss
|
||||
clboss-min-onchain=${toString cfg.min-onchain}
|
||||
'';
|
||||
systemd.services.clightning.path = [
|
||||
pkgs.dnsutils
|
||||
] ++ optional config.services.clightning.enforceTor (hiPrio config.nix-bitcoin.torify);
|
||||
};
|
||||
}
|
@ -6,6 +6,7 @@ let
|
||||
pluginPkgs = config.nix-bitcoin.pkgs.clightning-plugins;
|
||||
in {
|
||||
imports = [
|
||||
./clboss.nix
|
||||
./prometheus.nix
|
||||
./summary.nix
|
||||
./zmq.nix
|
||||
|
@ -1,5 +1,6 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
imports = [
|
||||
# Core modules
|
||||
@ -33,14 +34,27 @@
|
||||
disabledModules = [ "services/networking/bitcoind.nix" ];
|
||||
|
||||
options = {
|
||||
nix-bitcoin-services = lib.mkOption {
|
||||
nix-bitcoin-services = mkOption {
|
||||
readOnly = true;
|
||||
default = import ./nix-bitcoin-services.nix lib pkgs;
|
||||
};
|
||||
|
||||
nix-bitcoin.pkgs = lib.mkOption {
|
||||
type = lib.types.attrs;
|
||||
default = (import ../pkgs { inherit pkgs; }).modulesPkgs;
|
||||
nix-bitcoin = {
|
||||
pkgs = mkOption {
|
||||
type = types.attrs;
|
||||
default = (import ../pkgs { inherit pkgs; }).modulesPkgs;
|
||||
};
|
||||
|
||||
# Torify binary that works with custom Tor SOCKS addresses
|
||||
# Related issue: https://github.com/NixOS/nixpkgs/issues/94236
|
||||
torify = mkOption {
|
||||
readOnly = true;
|
||||
default = pkgs.writeScriptBin "torify" ''
|
||||
${pkgs.tor}/bin/torify \
|
||||
--address ${head (splitString ":" config.services.tor.client.socksListenAddress)} \
|
||||
"$@"
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
26
pkgs/clboss/default.nix
Normal file
26
pkgs/clboss/default.nix
Normal file
@ -0,0 +1,26 @@
|
||||
{ stdenv, fetchurl, pkgconfig, curl, libev, sqlite }:
|
||||
|
||||
let
|
||||
curlWithGnuTLS = curl.override { gnutlsSupport = true; sslSupport = false; };
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "clboss";
|
||||
version = "0.10";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/ZmnSCPxj/clboss/releases/download/v${version}/clboss-${version}.tar.gz";
|
||||
sha256 = "1bmlpfhsjs046qx2ikln15rj4kal32752zs1s5yjklsq9xwnbciz";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig libev curlWithGnuTLS sqlite ];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Automated C-Lightning Node Manager";
|
||||
homepage = "https://github.com/ZmnSCPxj/clboss";
|
||||
maintainers = with maintainers; [ nixbitcoin ];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
@ -14,6 +14,7 @@ let self = {
|
||||
lightning-loop = pkgs.callPackage ./lightning-loop { };
|
||||
extra-container = pkgs.callPackage ./extra-container { };
|
||||
clightning-plugins = import ./clightning-plugins pkgs self.nbPython3Packages;
|
||||
clboss = pkgs.callPackage ./clboss { };
|
||||
|
||||
nbPython3Packages = (pkgs.python3.override {
|
||||
packageOverrides = pySelf: super: import ./python-packages self pySelf;
|
||||
|
@ -79,6 +79,7 @@ let testEnv = rec {
|
||||
}
|
||||
(mkIf config.test.features.clightningPlugins {
|
||||
services.clightning.plugins = {
|
||||
# TODO: add clboss when https://github.com/ZmnSCPxj/clboss/issues/49 is closed
|
||||
helpme.enable = true;
|
||||
monitor.enable = true;
|
||||
prometheus.enable = true;
|
||||
|
Loading…
Reference in New Issue
Block a user