treewide: use mdDoc
for descriptions
Enable markdown syntax (instead of docbook) for descriptions. This only affects external doc tooling that renders the descriptions.
This commit is contained in:
parent
a9c1995ed9
commit
109dccca27
@ -6,7 +6,7 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Enable backups of node data.
|
Enable backups of node data.
|
||||||
This uses the NixOS duplicity service.
|
This uses the NixOS duplicity service.
|
||||||
To further configure the backup, you can set NixOS options `services.duplicity.*`.
|
To further configure the backup, you can set NixOS options `services.duplicity.*`.
|
||||||
@ -16,34 +16,34 @@ let
|
|||||||
with-bulk-data = mkOption {
|
with-bulk-data = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Whether to also backup Bitcoin blockchain and other bulk data.
|
Whether to also backup Bitcoin blockchain and other bulk data.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
destination = mkOption {
|
destination = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "file:///var/lib/localBackups";
|
default = "file:///var/lib/localBackups";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Where to back up to.
|
Where to back up to.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
frequency = mkOption {
|
frequency = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Run backup with the given frequency. If null, do not run automatically.
|
Run backup with the given frequency. If null, do not run automatically.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
postgresqlDatabases = mkOption {
|
postgresqlDatabases = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
description = "List of database names to backup.";
|
description = mdDoc "List of database names to backup.";
|
||||||
};
|
};
|
||||||
extraFiles = mkOption {
|
extraFiles = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "/var/lib/nginx" ];
|
example = [ "/var/lib/nginx" ];
|
||||||
description = "Additional files to be appended to filelist.";
|
description = mdDoc "Additional files to be appended to filelist.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,19 +8,19 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen for peer connections.";
|
description = mdDoc "Address to listen for peer connections.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8333;
|
default = 8333;
|
||||||
description = "Port to listen for peer connections.";
|
description = mdDoc "Port to listen for peer connections.";
|
||||||
};
|
};
|
||||||
onionPort = mkOption {
|
onionPort = mkOption {
|
||||||
type = types.nullOr types.port;
|
type = types.nullOr types.port;
|
||||||
# When the bitcoind onion service is enabled, add an onion-tagged socket
|
# When the bitcoind onion service is enabled, add an onion-tagged socket
|
||||||
# to distinguish local connections from Tor connections
|
# to distinguish local connections from Tor connections
|
||||||
default = if (config.nix-bitcoin.onionServices.bitcoind.enable or false) then 8334 else null;
|
default = if (config.nix-bitcoin.onionServices.bitcoind.enable or false) then 8334 else null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Port to listen for Tor peer connections.
|
Port to listen for Tor peer connections.
|
||||||
If set, inbound connections to this port are tagged as onion peers.
|
If set, inbound connections to this port are tagged as onion peers.
|
||||||
'';
|
'';
|
||||||
@ -28,15 +28,15 @@ let
|
|||||||
listen = mkOption {
|
listen = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Listen for peer connections at `address:port`
|
Listen for peer connections at `address:port`
|
||||||
and `address:onionPort` (if `onionPort` is set).
|
and `address:onionPort` (if {option}`onionPort` is set).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
listenWhitelisted = mkOption {
|
listenWhitelisted = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Listen for peer connections at `address:whitelistedPort`.
|
Listen for peer connections at `address:whitelistedPort`.
|
||||||
Peers connected through this socket are automatically whitelisted.
|
Peers connected through this socket are automatically whitelisted.
|
||||||
'';
|
'';
|
||||||
@ -44,12 +44,12 @@ let
|
|||||||
whitelistedPort = mkOption {
|
whitelistedPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8335;
|
default = 8335;
|
||||||
description = "See `listenWhitelisted`.";
|
description = mdDoc "See `listenWhitelisted`.";
|
||||||
};
|
};
|
||||||
getPublicAddressCmd = mkOption {
|
getPublicAddressCmd = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Bash expression which outputs the public service address to announce to peers.
|
Bash expression which outputs the public service address to announce to peers.
|
||||||
If left empty, no address is announced.
|
If left empty, no address is announced.
|
||||||
'';
|
'';
|
||||||
@ -58,7 +58,7 @@ let
|
|||||||
type = types.package;
|
type = types.package;
|
||||||
default = config.nix-bitcoin.pkgs.bitcoind;
|
default = config.nix-bitcoin.pkgs.bitcoind;
|
||||||
defaultText = "config.nix-bitcoin.pkgs.bitcoind";
|
defaultText = "config.nix-bitcoin.pkgs.bitcoind";
|
||||||
description = "The package providing bitcoin binaries.";
|
description = mdDoc "The package providing bitcoin binaries.";
|
||||||
};
|
};
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
@ -67,41 +67,41 @@ let
|
|||||||
par=16
|
par=16
|
||||||
logips=1
|
logips=1
|
||||||
'';
|
'';
|
||||||
description = "Extra lines appended to <filename>bitcoin.conf</filename>.";
|
description = mdDoc "Extra lines appended to {file}`bitcoin.conf`.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/bitcoind";
|
default = "/var/lib/bitcoind";
|
||||||
description = "The data directory for bitcoind.";
|
description = mdDoc "The data directory for bitcoind.";
|
||||||
};
|
};
|
||||||
rpc = {
|
rpc = {
|
||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Address to listen for JSON-RPC connections.
|
Address to listen for JSON-RPC connections.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8332;
|
default = 8332;
|
||||||
description = "Port to listen for JSON-RPC connections.";
|
description = mdDoc "Port to listen for JSON-RPC connections.";
|
||||||
};
|
};
|
||||||
threads = mkOption {
|
threads = mkOption {
|
||||||
type = types.nullOr types.ints.u16;
|
type = types.nullOr types.ints.u16;
|
||||||
default = null;
|
default = null;
|
||||||
description = "The number of threads to service RPC calls.";
|
description = mdDoc "The number of threads to service RPC calls.";
|
||||||
};
|
};
|
||||||
allowip = mkOption {
|
allowip = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ "127.0.0.1" ];
|
default = [ "127.0.0.1" ];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Allow JSON-RPC connections from specified sources.
|
Allow JSON-RPC connections from specified sources.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
users = mkOption {
|
users = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Allowed users for JSON-RPC connections.
|
Allowed users for JSON-RPC connections.
|
||||||
'';
|
'';
|
||||||
example = {
|
example = {
|
||||||
@ -116,16 +116,16 @@ let
|
|||||||
type = types.str;
|
type = types.str;
|
||||||
default = name;
|
default = name;
|
||||||
example = "alice";
|
example = "alice";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Username for JSON-RPC connections.
|
Username for JSON-RPC connections.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
passwordHMAC = mkOption {
|
passwordHMAC = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
|
example = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Password HMAC-SHA-256 for JSON-RPC connections. Must be a string of the
|
Password HMAC-SHA-256 for JSON-RPC connections. Must be a string of the
|
||||||
format `salt-hex$hmac-hex`.
|
format `<SALT-HEX>$<HMAC-HEX>`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
passwordHMACFromFile = mkOption {
|
passwordHMACFromFile = mkOption {
|
||||||
@ -136,7 +136,7 @@ let
|
|||||||
rpcwhitelist = mkOption {
|
rpcwhitelist = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
List of allowed rpc calls for each user.
|
List of allowed rpc calls for each user.
|
||||||
If empty list, rpcwhitelist is disabled for that user.
|
If empty list, rpcwhitelist is disabled for that user.
|
||||||
'';
|
'';
|
||||||
@ -148,7 +148,7 @@ let
|
|||||||
regtest = mkOption {
|
regtest = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable regtest mode.";
|
description = mdDoc "Enable regtest mode.";
|
||||||
};
|
};
|
||||||
network = mkOption {
|
network = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
@ -161,12 +161,12 @@ let
|
|||||||
proxy = mkOption {
|
proxy = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
||||||
description = "Connect through SOCKS5 proxy";
|
description = mdDoc "Connect through SOCKS5 proxy";
|
||||||
};
|
};
|
||||||
i2p = mkOption {
|
i2p = mkOption {
|
||||||
type = types.enum [ false true "only-outgoing" ];
|
type = types.enum [ false true "only-outgoing" ];
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Enable peer connections via i2p.
|
Enable peer connections via i2p.
|
||||||
With `only-outgoing`, incoming i2p connections are disabled.
|
With `only-outgoing`, incoming i2p connections are disabled.
|
||||||
'';
|
'';
|
||||||
@ -174,7 +174,7 @@ let
|
|||||||
dataDirReadableByGroup = mkOption {
|
dataDirReadableByGroup = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
If enabled, data dir content is readable by the bitcoind service group.
|
If enabled, data dir content is readable by the bitcoind service group.
|
||||||
Warning: This disables bitcoind's wallet support.
|
Warning: This disables bitcoind's wallet support.
|
||||||
'';
|
'';
|
||||||
@ -182,7 +182,7 @@ let
|
|||||||
sysperms = mkOption {
|
sysperms = mkOption {
|
||||||
type = types.nullOr types.bool;
|
type = types.nullOr types.bool;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Create new files with system default permissions, instead of umask 077
|
Create new files with system default permissions, instead of umask 077
|
||||||
(only effective with disabled wallet functionality)
|
(only effective with disabled wallet functionality)
|
||||||
'';
|
'';
|
||||||
@ -190,7 +190,7 @@ let
|
|||||||
disablewallet = mkOption {
|
disablewallet = mkOption {
|
||||||
type = types.nullOr types.bool;
|
type = types.nullOr types.bool;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Do not load the wallet and disable wallet RPC calls
|
Do not load the wallet and disable wallet RPC calls
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -198,13 +198,13 @@ let
|
|||||||
type = types.nullOr (types.ints.between 4 16384);
|
type = types.nullOr (types.ints.between 4 16384);
|
||||||
default = null;
|
default = null;
|
||||||
example = 4000;
|
example = 4000;
|
||||||
description = "Override the default database cache size in MiB.";
|
description = mdDoc "Override the default database cache size in MiB.";
|
||||||
};
|
};
|
||||||
prune = mkOption {
|
prune = mkOption {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 0;
|
default = 0;
|
||||||
example = 10000;
|
example = 10000;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Automatically prune block files to stay under the specified target size in MiB.
|
Automatically prune block files to stay under the specified target size in MiB.
|
||||||
Value 0 disables pruning.
|
Value 0 disables pruning.
|
||||||
'';
|
'';
|
||||||
@ -212,25 +212,25 @@ let
|
|||||||
txindex = mkOption {
|
txindex = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable the transaction index.";
|
description = mdDoc "Enable the transaction index.";
|
||||||
};
|
};
|
||||||
zmqpubrawblock = mkOption {
|
zmqpubrawblock = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "tcp://127.0.0.1:28332";
|
example = "tcp://127.0.0.1:28332";
|
||||||
description = "ZMQ address for zmqpubrawblock notifications";
|
description = mdDoc "ZMQ address for zmqpubrawblock notifications";
|
||||||
};
|
};
|
||||||
zmqpubrawtx = mkOption {
|
zmqpubrawtx = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "tcp://127.0.0.1:28333";
|
example = "tcp://127.0.0.1:28333";
|
||||||
description = "ZMQ address for zmqpubrawtx notifications";
|
description = mdDoc "ZMQ address for zmqpubrawtx notifications";
|
||||||
};
|
};
|
||||||
assumevalid = mkOption {
|
assumevalid = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "00000000000000000000e5abc3a74fe27dc0ead9c70ea1deb456f11c15fd7bc6";
|
example = "00000000000000000000e5abc3a74fe27dc0ead9c70ea1deb456f11c15fd7bc6";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
If this block is in the chain assume that it and its ancestors are
|
If this block is in the chain assume that it and its ancestors are
|
||||||
valid and potentially skip their script verification.
|
valid and potentially skip their script verification.
|
||||||
'';
|
'';
|
||||||
@ -239,28 +239,28 @@ let
|
|||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "ecoc5q34tmbq54wl.onion" ];
|
example = [ "ecoc5q34tmbq54wl.onion" ];
|
||||||
description = "Add nodes to connect to and attempt to keep the connections open";
|
description = mdDoc "Add nodes to connect to and attempt to keep the connections open";
|
||||||
};
|
};
|
||||||
discover = mkOption {
|
discover = mkOption {
|
||||||
type = types.nullOr types.bool;
|
type = types.nullOr types.bool;
|
||||||
default = null;
|
default = null;
|
||||||
description = "Discover own IP addresses";
|
description = mdDoc "Discover own IP addresses";
|
||||||
};
|
};
|
||||||
addresstype = mkOption {
|
addresstype = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "bech32";
|
example = "bech32";
|
||||||
description = "The type of addresses to use";
|
description = mdDoc "The type of addresses to use";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "bitcoin";
|
default = "bitcoin";
|
||||||
description = "The user as which to run bitcoind.";
|
description = mdDoc "The user as which to run bitcoind.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run bitcoind.";
|
description = mdDoc "The group as which to run bitcoind.";
|
||||||
};
|
};
|
||||||
cli = mkOption {
|
cli = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
@ -269,7 +269,7 @@ let
|
|||||||
exec ${cfg.package}/bin/bitcoin-cli -datadir='${cfg.dataDir}' "$@"
|
exec ${cfg.package}/bin/bitcoin-cli -datadir='${cfg.dataDir}' "$@"
|
||||||
'';
|
'';
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "Binary to connect with the bitcoind instance.";
|
description = mdDoc "Binary to connect with the bitcoind instance.";
|
||||||
};
|
};
|
||||||
tor = nbLib.tor;
|
tor = nbLib.tor;
|
||||||
};
|
};
|
||||||
|
@ -8,12 +8,12 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen on.";
|
description = mdDoc "Address to listen on.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 23000;
|
default = 23000;
|
||||||
description = "Port to listen on.";
|
description = mdDoc "Port to listen on.";
|
||||||
};
|
};
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
@ -22,38 +22,38 @@ let
|
|||||||
else
|
else
|
||||||
config.nix-bitcoin.pkgs.btcpayserver;
|
config.nix-bitcoin.pkgs.btcpayserver;
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "The package providing btcpayserver binaries.";
|
description = mdDoc "The package providing btcpayserver binaries.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/btcpayserver";
|
default = "/var/lib/btcpayserver";
|
||||||
description = "The data directory for btcpayserver.";
|
description = mdDoc "The data directory for btcpayserver.";
|
||||||
};
|
};
|
||||||
lightningBackend = mkOption {
|
lightningBackend = mkOption {
|
||||||
type = types.nullOr (types.enum [ "clightning" "lnd" ]);
|
type = types.nullOr (types.enum [ "clightning" "lnd" ]);
|
||||||
default = null;
|
default = null;
|
||||||
description = "The lightning node implementation to use.";
|
description = mdDoc "The lightning node implementation to use.";
|
||||||
};
|
};
|
||||||
lbtc = mkOption {
|
lbtc = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable liquid support in btcpayserver.";
|
description = mdDoc "Enable liquid support in btcpayserver.";
|
||||||
};
|
};
|
||||||
rootpath = mkOption {
|
rootpath = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "btcpayserver";
|
example = "btcpayserver";
|
||||||
description = "The prefix for root-relative btcpayserver URLs.";
|
description = mdDoc "The prefix for root-relative btcpayserver URLs.";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "btcpayserver";
|
default = "btcpayserver";
|
||||||
description = "The user as which to run btcpayserver.";
|
description = mdDoc "The user as which to run btcpayserver.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.btcpayserver.user;
|
default = cfg.btcpayserver.user;
|
||||||
description = "The group as which to run btcpayserver.";
|
description = mdDoc "The group as which to run btcpayserver.";
|
||||||
};
|
};
|
||||||
tor.enforce = nbLib.tor.enforce;
|
tor.enforce = nbLib.tor.enforce;
|
||||||
};
|
};
|
||||||
@ -63,7 +63,7 @@ let
|
|||||||
# This option is only used by netns-isolation
|
# This option is only used by netns-isolation
|
||||||
internal = true;
|
internal = true;
|
||||||
default = cfg.btcpayserver.enable;
|
default = cfg.btcpayserver.enable;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
nbxplorer is always enabled when btcpayserver is enabled.
|
nbxplorer is always enabled when btcpayserver is enabled.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -71,32 +71,32 @@ let
|
|||||||
type = types.package;
|
type = types.package;
|
||||||
default = config.nix-bitcoin.pkgs.nbxplorer;
|
default = config.nix-bitcoin.pkgs.nbxplorer;
|
||||||
defaultText = "config.nix-bitcoin.pkgs.nbxplorer";
|
defaultText = "config.nix-bitcoin.pkgs.nbxplorer";
|
||||||
description = "The package providing nbxplorer binaries.";
|
description = mdDoc "The package providing nbxplorer binaries.";
|
||||||
};
|
};
|
||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen on.";
|
description = mdDoc "Address to listen on.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 24444;
|
default = 24444;
|
||||||
description = "Port to listen on.";
|
description = mdDoc "Port to listen on.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/nbxplorer";
|
default = "/var/lib/nbxplorer";
|
||||||
description = "The data directory for nbxplorer.";
|
description = mdDoc "The data directory for nbxplorer.";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "nbxplorer";
|
default = "nbxplorer";
|
||||||
description = "The user as which to run nbxplorer.";
|
description = mdDoc "The user as which to run nbxplorer.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.nbxplorer.user;
|
default = cfg.nbxplorer.user;
|
||||||
description = "The group as which to run nbxplorer.";
|
description = mdDoc "The group as which to run nbxplorer.";
|
||||||
};
|
};
|
||||||
tor.enforce = nbLib.tor.enforce;
|
tor.enforce = nbLib.tor.enforce;
|
||||||
};
|
};
|
||||||
|
@ -9,18 +9,17 @@ let
|
|||||||
type = listOf str;
|
type = listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "--verbose" "--dry-run" ];
|
example = [ "--verbose" "--dry-run" ];
|
||||||
description = "Extra flags to pass to the charge-lnd command.";
|
description = mdDoc "Extra flags to pass to the charge-lnd command.";
|
||||||
};
|
};
|
||||||
|
|
||||||
interval = mkOption {
|
interval = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
default = "*-*-* 04:00:00";
|
default = "*-*-* 04:00:00";
|
||||||
example = "hourly";
|
example = "hourly";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Systemd calendar expression when to adjust fees.
|
Systemd calendar expression when to adjust fees.
|
||||||
|
|
||||||
See <citerefentry><refentrytitle>systemd.time</refentrytitle>
|
See {man}`systemd.time(7)` for possible values.
|
||||||
<manvolnum>7</manvolnum></citerefentry> for possible values.
|
|
||||||
|
|
||||||
Default is once a day.
|
Default is once a day.
|
||||||
'';
|
'';
|
||||||
@ -29,7 +28,7 @@ let
|
|||||||
randomDelay = mkOption {
|
randomDelay = mkOption {
|
||||||
type = str;
|
type = str;
|
||||||
default = "1h";
|
default = "1h";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Random delay to add to scheduled time.
|
Random delay to add to scheduled time.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -55,7 +54,7 @@ let
|
|||||||
[default]
|
[default]
|
||||||
strategy = ignore
|
strategy = ignore
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Policy definitions in INI format.
|
Policy definitions in INI format.
|
||||||
|
|
||||||
See https://github.com/accumulator/charge-lnd/blob/master/README.md#usage
|
See https://github.com/accumulator/charge-lnd/blob/master/README.md#usage
|
||||||
@ -126,7 +125,6 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
systemd.timers.charge-lnd = {
|
systemd.timers.charge-lnd = {
|
||||||
description = "Adjust LND routing fees";
|
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = [ "timers.target" ];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
OnCalendar = cfg.interval;
|
OnCalendar = cfg.interval;
|
||||||
|
@ -7,7 +7,7 @@ let cfg = config.services.clightning.plugins.clboss; in
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Whether to enable CLBOSS (clightning plugin).
|
Whether to enable CLBOSS (clightning plugin).
|
||||||
See also: https://github.com/ZmnSCPxj/clboss#operating
|
See also: https://github.com/ZmnSCPxj/clboss#operating
|
||||||
'';
|
'';
|
||||||
@ -15,7 +15,7 @@ let cfg = config.services.clightning.plugins.clboss; in
|
|||||||
min-onchain = mkOption {
|
min-onchain = mkOption {
|
||||||
type = types.ints.positive;
|
type = types.ints.positive;
|
||||||
default = 30000;
|
default = 30000;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Target amount (in satoshi) that CLBOSS will leave on-chain.
|
Target amount (in satoshi) that CLBOSS will leave on-chain.
|
||||||
clboss will only open new channels if this amount is smaller than
|
clboss will only open new channels if this amount is smaller than
|
||||||
the funds in your clightning wallet.
|
the funds in your clightning wallet.
|
||||||
@ -24,27 +24,27 @@ let cfg = config.services.clightning.plugins.clboss; in
|
|||||||
min-channel = mkOption {
|
min-channel = mkOption {
|
||||||
type = types.ints.positive;
|
type = types.ints.positive;
|
||||||
default = 500000;
|
default = 500000;
|
||||||
description = "The minimum size (in satoshi) of channels created by CLBOSS.";
|
description = mdDoc "The minimum size (in satoshi) of channels created by CLBOSS.";
|
||||||
};
|
};
|
||||||
max-channel = mkOption {
|
max-channel = mkOption {
|
||||||
type = types.ints.positive;
|
type = types.ints.positive;
|
||||||
default = 16777215;
|
default = 16777215;
|
||||||
description = "The maximum size (in satoshi) of channels created by CLBOSS.";
|
description = mdDoc "The maximum size (in satoshi) of channels created by CLBOSS.";
|
||||||
};
|
};
|
||||||
zerobasefee = mkOption {
|
zerobasefee = mkOption {
|
||||||
type = types.enum [ "require" "allow" "disallow" ];
|
type = types.enum [ "require" "allow" "disallow" ];
|
||||||
default = "allow";
|
default = "allow";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
require: set `base_fee` to 0.
|
`require`: set `base_fee` to 0.
|
||||||
allow: set `base_fee` according to the CLBOSS heuristics, which may include value 0.
|
`allow`: set `base_fee` according to the CLBOSS heuristics, which may include value 0.
|
||||||
disallow: set `base_fee` to according to the CLBOSS heuristics, with a minimum value of 1.
|
`disallow`: set `base_fee` to according to the CLBOSS heuristics, with a minimum value of 1.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = config.nix-bitcoin.pkgs.clboss;
|
default = config.nix-bitcoin.pkgs.clboss;
|
||||||
defaultText = "config.nix-bitcoin.pkgs.clboss";
|
defaultText = "config.nix-bitcoin.pkgs.clboss";
|
||||||
description = "The package providing clboss binaries.";
|
description = mdDoc "The package providing clboss binaries.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Enable feeaduster (clightning plugin).
|
Enable feeaduster (clightning plugin).
|
||||||
This plugin auto-updates channel fees to keep channels balanced.
|
This plugin auto-updates channel fees to keep channels balanced.
|
||||||
|
|
||||||
@ -18,17 +18,17 @@ let
|
|||||||
fuzz = mkOption {
|
fuzz = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = "Enable update threshold randomization and hysteresis.";
|
description = mdDoc "Enable update threshold randomization and hysteresis.";
|
||||||
};
|
};
|
||||||
adjustOnForward = mkOption {
|
adjustOnForward = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Automatically update fees on forward events.";
|
description = mdDoc "Automatically update fees on forward events.";
|
||||||
};
|
};
|
||||||
method = mkOption {
|
method = mkOption {
|
||||||
type = types.enum [ "soft" "default" "hard" ];
|
type = types.enum [ "soft" "default" "hard" ];
|
||||||
default = "default";
|
default = "default";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Adjustment method to calculate channel fees.
|
Adjustment method to calculate channel fees.
|
||||||
`soft`: less difference when adjusting fees.
|
`soft`: less difference when adjusting fees.
|
||||||
`hard`: greater difference when adjusting fees.
|
`hard`: greater difference when adjusting fees.
|
||||||
@ -37,7 +37,7 @@ let
|
|||||||
adjustDaily = mkOption {
|
adjustDaily = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = "Automatically update fees daily.";
|
description = mdDoc "Automatically update fees daily.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -8,22 +8,22 @@ let cfg = config.services.clightning.plugins.summary; in
|
|||||||
currency = mkOption {
|
currency = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "USD";
|
default = "USD";
|
||||||
description = "The currency to look up on btcaverage.";
|
description = mdDoc "The currency to look up on btcaverage.";
|
||||||
};
|
};
|
||||||
currencyPrefix = mkOption {
|
currencyPrefix = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "USD $";
|
default = "USD $";
|
||||||
description = "The prefix to use for the currency.";
|
description = mdDoc "The prefix to use for the currency.";
|
||||||
};
|
};
|
||||||
availabilityInterval = mkOption {
|
availabilityInterval = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 300;
|
default = 300;
|
||||||
description = "How often in seconds the availability should be calculated.";
|
description = mdDoc "How often in seconds the availability should be calculated.";
|
||||||
};
|
};
|
||||||
availabilityWindow = mkOption {
|
availabilityWindow = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 72;
|
default = 72;
|
||||||
description = "How many hours the availability should be averaged over.";
|
description = mdDoc "How many hours the availability should be averaged over.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ let
|
|||||||
mkOption {
|
mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
description = "Endpoint for ${name}";
|
description = mdDoc "Endpoint for ${name}";
|
||||||
};
|
};
|
||||||
|
|
||||||
setEndpoint = ep:
|
setEndpoint = ep:
|
||||||
|
@ -6,7 +6,7 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Enable live replication of the clightning database.
|
Enable live replication of the clightning database.
|
||||||
This prevents losing off-chain funds when the primary wallet file becomes
|
This prevents losing off-chain funds when the primary wallet file becomes
|
||||||
inaccessible.
|
inaccessible.
|
||||||
@ -26,7 +26,7 @@ let
|
|||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "user@10.0.0.1:directory";
|
example = "user@10.0.0.1:directory";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
The SSH destination for which a SSHFS will be mounted.
|
The SSH destination for which a SSHFS will be mounted.
|
||||||
`directory` is relative to the home of `user`.
|
`directory` is relative to the home of `user`.
|
||||||
|
|
||||||
@ -40,12 +40,12 @@ let
|
|||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 22;
|
default = 22;
|
||||||
description = "SSH port of the remote server.";
|
description = mdDoc "SSH port of the remote server.";
|
||||||
};
|
};
|
||||||
sshOptions = mkOption {
|
sshOptions = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [ "reconnect" "ServerAliveInterval=50" ];
|
default = [ "reconnect" "ServerAliveInterval=50" ];
|
||||||
description = "SSH options used for mounting the SSHFS.";
|
description = mdDoc "SSH options used for mounting the SSHFS.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
local = {
|
local = {
|
||||||
@ -53,7 +53,7 @@ let
|
|||||||
type = types.nullOr types.path;
|
type = types.nullOr types.path;
|
||||||
default = null;
|
default = null;
|
||||||
example = "/var/backup/clightning";
|
example = "/var/backup/clightning";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
This option can be specified instead of `sshfs.destination` to enable
|
This option can be specified instead of `sshfs.destination` to enable
|
||||||
replication to a local directory.
|
replication to a local directory.
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ let
|
|||||||
setupDirectory = mkOption {
|
setupDirectory = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Create `local.directory` if it doesn't exist and set write permissions
|
Create `local.directory` if it doesn't exist and set write permissions
|
||||||
for the `clightning` user.
|
for the `clightning` user.
|
||||||
'';
|
'';
|
||||||
@ -78,10 +78,10 @@ let
|
|||||||
encrypt = mkOption {
|
encrypt = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Whether to encrypt the replicated database with gocryptfs.
|
Whether to encrypt the replicated database with gocryptfs.
|
||||||
The encryption password is automatically generated and stored
|
The encryption password is automatically generated and stored
|
||||||
in file `$secretsDir/clightning-replication-password`.
|
in file {file}`$secretsDir/clightning-replication-password`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -7,17 +7,17 @@ let
|
|||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 3001;
|
default = 3001;
|
||||||
description = "REST server port.";
|
description = mdDoc "REST server port.";
|
||||||
};
|
};
|
||||||
docPort = mkOption {
|
docPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 4001;
|
default = 4001;
|
||||||
description = "Swagger API documentation server port.";
|
description = mdDoc "Swagger API documentation server port.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/clightning-rest";
|
default = "/var/lib/clightning-rest";
|
||||||
description = "The data directory for clightning-rest.";
|
description = mdDoc "The data directory for clightning-rest.";
|
||||||
};
|
};
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
@ -25,7 +25,7 @@ let
|
|||||||
example = {
|
example = {
|
||||||
DOMAIN = "mynode.org";
|
DOMAIN = "mynode.org";
|
||||||
};
|
};
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra config options.
|
Extra config options.
|
||||||
See: https://github.com/Ride-The-Lightning/c-lightning-REST#option-1-via-config-file-cl-rest-configjson
|
See: https://github.com/Ride-The-Lightning/c-lightning-REST#option-1-via-config-file-cl-rest-configjson
|
||||||
'';
|
'';
|
||||||
@ -34,7 +34,7 @@ let
|
|||||||
group = mkOption {
|
group = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = clightning.group;
|
default = clightning.group;
|
||||||
description = "The group under which clightning-rest is run.";
|
description = mdDoc "The group under which clightning-rest is run.";
|
||||||
};
|
};
|
||||||
# Rest server address.
|
# Rest server address.
|
||||||
# Not configurable. The server always listens on all interfaces:
|
# Not configurable. The server always listens on all interfaces:
|
||||||
|
@ -7,24 +7,24 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen for peer connections.";
|
description = mdDoc "Address to listen for peer connections.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 9735;
|
default = 9735;
|
||||||
description = "Port to listen for peer connections.";
|
description = mdDoc "Port to listen for peer connections.";
|
||||||
};
|
};
|
||||||
proxy = mkOption {
|
proxy = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Socks proxy for connecting to Tor nodes (or for all connections if option always-use-proxy is set).
|
Socks proxy for connecting to Tor nodes (or for all connections if option always-use-proxy is set).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
always-use-proxy = mkOption {
|
always-use-proxy = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = cfg.tor.proxy;
|
default = cfg.tor.proxy;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Always use the proxy, even to connect to normal IP addresses.
|
Always use the proxy, even to connect to normal IP addresses.
|
||||||
You can still connect to Unix domain sockets manually.
|
You can still connect to Unix domain sockets manually.
|
||||||
This also disables all DNS lookups, to avoid leaking address information.
|
This also disables all DNS lookups, to avoid leaking address information.
|
||||||
@ -33,18 +33,18 @@ let
|
|||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/clightning";
|
default = "/var/lib/clightning";
|
||||||
description = "The data directory for clightning.";
|
description = mdDoc "The data directory for clightning.";
|
||||||
};
|
};
|
||||||
networkDir = mkOption {
|
networkDir = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = "${cfg.dataDir}/${network}";
|
default = "${cfg.dataDir}/${network}";
|
||||||
description = "The network data directory.";
|
description = mdDoc "The network data directory.";
|
||||||
};
|
};
|
||||||
wallet = mkOption {
|
wallet = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "sqlite3:///var/lib/clightning/bitcoin/lightningd.sqlite3";
|
example = "sqlite3:///var/lib/clightning/bitcoin/lightningd.sqlite3";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Wallet data scheme (sqlite3 or postgres) and location/connection
|
Wallet data scheme (sqlite3 or postgres) and location/connection
|
||||||
parameters, as fully qualified data source name.
|
parameters, as fully qualified data source name.
|
||||||
'';
|
'';
|
||||||
@ -55,29 +55,29 @@ let
|
|||||||
example = ''
|
example = ''
|
||||||
alias=mynode
|
alias=mynode
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra lines appended to the configuration file.
|
Extra lines appended to the configuration file.
|
||||||
|
|
||||||
See all available options at
|
See all available options at
|
||||||
https://github.com/ElementsProject/lightning/blob/master/doc/lightningd-config.5.md
|
https://github.com/ElementsProject/lightning/blob/master/doc/lightningd-config.5.md
|
||||||
or by running `lightningd --help`.
|
or by running {command}`lightningd --help`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "clightning";
|
default = "clightning";
|
||||||
description = "The user as which to run clightning.";
|
description = mdDoc "The user as which to run clightning.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run clightning.";
|
description = mdDoc "The group as which to run clightning.";
|
||||||
};
|
};
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = nbPkgs.clightning;
|
default = nbPkgs.clightning;
|
||||||
defaultText = "config.nix-bitcoin.pkgs.clightning";
|
defaultText = "config.nix-bitcoin.pkgs.clightning";
|
||||||
description = "The package providing clightning binaries.";
|
description = mdDoc "The package providing clightning binaries.";
|
||||||
};
|
};
|
||||||
cli = mkOption {
|
cli = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
@ -85,12 +85,12 @@ let
|
|||||||
${cfg.package}/bin/lightning-cli --lightning-dir='${cfg.dataDir}' "$@"
|
${cfg.package}/bin/lightning-cli --lightning-dir='${cfg.dataDir}' "$@"
|
||||||
'';
|
'';
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "Binary to connect with the clightning instance.";
|
description = mdDoc "Binary to connect with the clightning instance.";
|
||||||
};
|
};
|
||||||
getPublicAddressCmd = mkOption {
|
getPublicAddressCmd = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Bash expression which outputs the public service address to announce to peers.
|
Bash expression which outputs the public service address to announce to peers.
|
||||||
If left empty, no address is announced.
|
If left empty, no address is announced.
|
||||||
'';
|
'';
|
||||||
|
@ -7,37 +7,37 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen for RPC connections.";
|
description = mdDoc "Address to listen for RPC connections.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 50001;
|
default = 50001;
|
||||||
description = "Port to listen for RPC connections.";
|
description = mdDoc "Port to listen for RPC connections.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/electrs";
|
default = "/var/lib/electrs";
|
||||||
description = "The data directory for electrs.";
|
description = mdDoc "The data directory for electrs.";
|
||||||
};
|
};
|
||||||
monitoringPort = mkOption {
|
monitoringPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 4224;
|
default = 4224;
|
||||||
description = "Prometheus monitoring port.";
|
description = mdDoc "Prometheus monitoring port.";
|
||||||
};
|
};
|
||||||
extraArgs = mkOption {
|
extraArgs = mkOption {
|
||||||
type = types.separatedString " ";
|
type = types.separatedString " ";
|
||||||
default = "";
|
default = "";
|
||||||
description = "Extra command line arguments passed to electrs.";
|
description = mdDoc "Extra command line arguments passed to electrs.";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "electrs";
|
default = "electrs";
|
||||||
description = "The user as which to run electrs.";
|
description = mdDoc "The user as which to run electrs.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run electrs.";
|
description = mdDoc "The group as which to run electrs.";
|
||||||
};
|
};
|
||||||
tor.enforce = nbLib.tor.enforce;
|
tor.enforce = nbLib.tor.enforce;
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,7 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Enable fulcrum, an Electrum server implemented in C++.
|
Enable fulcrum, an Electrum server implemented in C++.
|
||||||
|
|
||||||
Compared to electrs, fulcrum has a 3x larger database size but
|
Compared to electrs, fulcrum has a 3x larger database size but
|
||||||
@ -17,23 +17,23 @@ let
|
|||||||
|
|
||||||
This module disables peering (a distributed list of electrum servers that can
|
This module disables peering (a distributed list of electrum servers that can
|
||||||
be queried by clients), but you can manually enable it via option
|
be queried by clients), but you can manually enable it via option
|
||||||
`extraConfig`.
|
{option}`extraConfig`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen for RPC connections.";
|
description = mdDoc "Address to listen for RPC connections.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 50001;
|
default = 50001;
|
||||||
description = "Port to listen for RPC connections.";
|
description = mdDoc "Port to listen for RPC connections.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/fulcrum";
|
default = "/var/lib/fulcrum";
|
||||||
description = "The data directory for fulcrum.";
|
description = mdDoc "The data directory for fulcrum.";
|
||||||
};
|
};
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
@ -41,7 +41,7 @@ let
|
|||||||
example = ''
|
example = ''
|
||||||
peering = true
|
peering = true
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra lines appended to the configuration file.
|
Extra lines appended to the configuration file.
|
||||||
|
|
||||||
See all available options at
|
See all available options at
|
||||||
@ -51,12 +51,12 @@ let
|
|||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "fulcrum";
|
default = "fulcrum";
|
||||||
description = "The user as which to run fulcrum.";
|
description = mdDoc "The user as which to run fulcrum.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run fulcrum.";
|
description = mdDoc "The group as which to run fulcrum.";
|
||||||
};
|
};
|
||||||
tor.enforce = nbLib.tor.enforce;
|
tor.enforce = nbLib.tor.enforce;
|
||||||
};
|
};
|
||||||
|
@ -6,21 +6,21 @@ let
|
|||||||
ledger = mkOption {
|
ledger = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
If enabled, the ledger udev rules will be installed.
|
If enabled, the ledger udev rules will be installed.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
trezor = mkOption {
|
trezor = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
If enabled, the trezor udev rules will be installed.
|
If enabled, the trezor udev rules will be installed.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "hardware-wallets";
|
default = "hardware-wallets";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Group the hardware wallet udev rules apply to.
|
Group the hardware wallet udev rules apply to.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -7,27 +7,27 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "HTTP server address.";
|
description = mdDoc "HTTP server address.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 62601;
|
default = 62601;
|
||||||
description = "HTTP server port.";
|
description = mdDoc "HTTP server port.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = "/var/lib/joinmarket-ob-watcher";
|
default = "/var/lib/joinmarket-ob-watcher";
|
||||||
description = "The data directory for JoinMarket orderbook watcher.";
|
description = mdDoc "The data directory for JoinMarket orderbook watcher.";
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "joinmarket-ob-watcher";
|
default = "joinmarket-ob-watcher";
|
||||||
description = "The user as which to run JoinMarket.";
|
description = mdDoc "The user as which to run JoinMarket.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run JoinMarket.";
|
description = mdDoc "The group as which to run JoinMarket.";
|
||||||
};
|
};
|
||||||
# This option is only used by netns-isolation.
|
# This option is only used by netns-isolation.
|
||||||
# Tor is always enabled.
|
# Tor is always enabled.
|
||||||
|
@ -7,7 +7,7 @@ let
|
|||||||
payjoinAddress = mkOption {
|
payjoinAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
The address where payjoin onion connections are forwarded to.
|
The address where payjoin onion connections are forwarded to.
|
||||||
This address is never used directly, it only serves as the internal endpoint
|
This address is never used directly, it only serves as the internal endpoint
|
||||||
for the payjoin onion service.
|
for the payjoin onion service.
|
||||||
@ -18,12 +18,12 @@ let
|
|||||||
payjoinPort = mkOption {
|
payjoinPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 64180; # A random private port
|
default = 64180; # A random private port
|
||||||
description = "The port corresponding to option `payjoinAddress`.";
|
description = mdDoc "The port corresponding to option {option}`payjoinAddress`.";
|
||||||
};
|
};
|
||||||
messagingAddress = mkOption {
|
messagingAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
The address where messaging onion connections are forwarded to.
|
The address where messaging onion connections are forwarded to.
|
||||||
This address is never used directly, it only serves as the internal endpoint
|
This address is never used directly, it only serves as the internal endpoint
|
||||||
for the messaging onion service.
|
for the messaging onion service.
|
||||||
@ -33,29 +33,29 @@ let
|
|||||||
messagingPort = mkOption {
|
messagingPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 64181; # payjoinPort + 1
|
default = 64181; # payjoinPort + 1
|
||||||
description = "The port corresponding to option `messagingAddress`.";
|
description = mdDoc "The port corresponding to option {option}`messagingAddress`.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/joinmarket";
|
default = "/var/lib/joinmarket";
|
||||||
description = "The data directory for JoinMarket.";
|
description = mdDoc "The data directory for JoinMarket.";
|
||||||
};
|
};
|
||||||
rpcWalletFile = mkOption {
|
rpcWalletFile = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = "jm_wallet";
|
default = "jm_wallet";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Name of the watch-only bitcoind wallet the JoinMarket addresses are imported to.
|
Name of the watch-only bitcoind wallet the JoinMarket addresses are imported to.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "joinmarket";
|
default = "joinmarket";
|
||||||
description = "The user as which to run JoinMarket.";
|
description = mdDoc "The user as which to run JoinMarket.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run JoinMarket.";
|
description = mdDoc "The group as which to run JoinMarket.";
|
||||||
};
|
};
|
||||||
cli = mkOption {
|
cli = mkOption {
|
||||||
default = cli;
|
default = cli;
|
||||||
@ -77,57 +77,57 @@ let
|
|||||||
ordertype = mkOption {
|
ordertype = mkOption {
|
||||||
type = types.enum [ "reloffer" "absoffer" ];
|
type = types.enum [ "reloffer" "absoffer" ];
|
||||||
default = "reloffer";
|
default = "reloffer";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Which fee type to actually use
|
Which fee type to actually use.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
cjfee_a = mkOption {
|
cjfee_a = mkOption {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 500;
|
default = 500;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Absolute offer fee you wish to receive for coinjoins (cj) in Satoshis
|
Absolute offer fee you wish to receive for coinjoins (cj) in Satoshis.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
cjfee_r = mkOption {
|
cjfee_r = mkOption {
|
||||||
type = types.float;
|
type = types.float;
|
||||||
default = 0.00002;
|
default = 0.00002;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Relative offer fee you wish to receive based on a cj's amount
|
Relative offer fee you wish to receive based on a cj's amount.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
cjfee_factor = mkOption {
|
cjfee_factor = mkOption {
|
||||||
type = types.float;
|
type = types.float;
|
||||||
default = 0.1;
|
default = 0.1;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Variance around the average cj fee
|
Variance around the average cj fee.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
txfee = mkOption {
|
txfee = mkOption {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 100;
|
default = 100;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
The average transaction fee you're adding to coinjoin transactions
|
The average transaction fee you're adding to coinjoin transactions.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
txfee_contribution_factor = mkOption {
|
txfee_contribution_factor = mkOption {
|
||||||
type = types.float;
|
type = types.float;
|
||||||
default = 0.3;
|
default = 0.3;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Variance around the average tx fee
|
Variance around the average tx fee.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
minsize = mkOption {
|
minsize = mkOption {
|
||||||
type = types.ints.unsigned;
|
type = types.ints.unsigned;
|
||||||
default = 100000;
|
default = 100000;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Minimum size of your cj offer in Satoshis. Lower cj amounts will be disregarded.
|
Minimum size of your cj offer in Satoshis. Lower cj amounts will be disregarded.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
size_factor = mkOption {
|
size_factor = mkOption {
|
||||||
type = types.float;
|
type = types.float;
|
||||||
default = 0.1;
|
default = 0.1;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Variance around all offer sizes
|
Variance around all offer sizes.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -7,56 +7,56 @@ let
|
|||||||
rpcAddress = mkOption {
|
rpcAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = "Address to listen for gRPC connections.";
|
description = mdDoc "Address to listen for gRPC connections.";
|
||||||
};
|
};
|
||||||
rpcPort = mkOption {
|
rpcPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 11010;
|
default = 11010;
|
||||||
description = "Port to listen for gRPC connections.";
|
description = mdDoc "Port to listen for gRPC connections.";
|
||||||
};
|
};
|
||||||
restAddress = mkOption {
|
restAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.rpcAddress;
|
default = cfg.rpcAddress;
|
||||||
description = "Address to listen for REST connections.";
|
description = mdDoc "Address to listen for REST connections.";
|
||||||
};
|
};
|
||||||
restPort = mkOption {
|
restPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8081;
|
default = 8081;
|
||||||
description = "Port to listen for REST connections.";
|
description = mdDoc "Port to listen for REST connections.";
|
||||||
};
|
};
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = config.nix-bitcoin.pkgs.lightning-loop;
|
default = config.nix-bitcoin.pkgs.lightning-loop;
|
||||||
defaultText = "config.nix-bitcoin.pkgs.lightning-loop";
|
defaultText = "config.nix-bitcoin.pkgs.lightning-loop";
|
||||||
description = "The package providing lightning-loop binaries.";
|
description = mdDoc "The package providing lightning-loop binaries.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/lightning-loop";
|
default = "/var/lib/lightning-loop";
|
||||||
description = "The data directory for lightning-loop.";
|
description = mdDoc "The data directory for lightning-loop.";
|
||||||
};
|
};
|
||||||
proxy = mkOption {
|
proxy = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
||||||
description = "host:port of SOCKS5 proxy for connnecting to the loop server.";
|
description = mdDoc "`host:port` of SOCKS5 proxy for connnecting to the loop server.";
|
||||||
};
|
};
|
||||||
certificate = {
|
certificate = {
|
||||||
extraIPs = mkOption {
|
extraIPs = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "60.100.0.1" ];
|
example = [ "60.100.0.1" ];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra `subjectAltName` IPs added to the certificate.
|
Extra `subjectAltName` IPs added to the certificate.
|
||||||
This works the same as loop option `tlsextraip`.
|
This works the same as loop option {option}`tlsextraip`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extraDomains = mkOption {
|
extraDomains = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "example.com" ];
|
example = [ "example.com" ];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra `subjectAltName` domain names added to the certificate.
|
Extra `subjectAltName` domain names added to the certificate.
|
||||||
This works the same as loop option `tlsextradomain`.
|
This works the same as loop option {option}`tlsextradomain`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -66,7 +66,7 @@ let
|
|||||||
example = ''
|
example = ''
|
||||||
debuglevel=trace
|
debuglevel=trace
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra lines appended to the configuration file.
|
Extra lines appended to the configuration file.
|
||||||
See here for all available options:
|
See here for all available options:
|
||||||
https://github.com/lightninglabs/loop/blob/11ab596080e9d36f1df43edbeba0702b25aa7457/loopd/config.go#L119
|
https://github.com/lightninglabs/loop/blob/11ab596080e9d36f1df43edbeba0702b25aa7457/loopd/config.go#L119
|
||||||
@ -80,7 +80,7 @@ let
|
|||||||
--tlscertpath '${secretsDir}/loop-cert' "$@"
|
--tlscertpath '${secretsDir}/loop-cert' "$@"
|
||||||
'';
|
'';
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "Binary to connect with the lightning-loop instance.";
|
description = mdDoc "Binary to connect with the lightning-loop instance.";
|
||||||
};
|
};
|
||||||
tor = nbLib.tor;
|
tor = nbLib.tor;
|
||||||
};
|
};
|
||||||
|
@ -7,38 +7,38 @@ let
|
|||||||
rpcAddress = mkOption {
|
rpcAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = "Address to listen for gRPC connections.";
|
description = mdDoc "Address to listen for gRPC connections.";
|
||||||
};
|
};
|
||||||
rpcPort = mkOption {
|
rpcPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 12010;
|
default = 12010;
|
||||||
description = "Port to listen for gRPC connections.";
|
description = mdDoc "Port to listen for gRPC connections.";
|
||||||
};
|
};
|
||||||
restAddress = mkOption {
|
restAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.rpcAddress;
|
default = cfg.rpcAddress;
|
||||||
description = "Address to listen for REST connections.";
|
description = mdDoc "Address to listen for REST connections.";
|
||||||
};
|
};
|
||||||
restPort = mkOption {
|
restPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8281;
|
default = 8281;
|
||||||
description = "Port to listen for REST connections.";
|
description = mdDoc "Port to listen for REST connections.";
|
||||||
};
|
};
|
||||||
package = mkOption {
|
package = mkOption {
|
||||||
type = types.package;
|
type = types.package;
|
||||||
default = config.nix-bitcoin.pkgs.lightning-pool;
|
default = config.nix-bitcoin.pkgs.lightning-pool;
|
||||||
defaultText = "config.nix-bitcoin.pkgs.lightning-pool";
|
defaultText = "config.nix-bitcoin.pkgs.lightning-pool";
|
||||||
description = "The package providing lightning-pool binaries.";
|
description = mdDoc "The package providing lightning-pool binaries.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/lightning-pool";
|
default = "/var/lib/lightning-pool";
|
||||||
description = "The data directory for lightning-pool.";
|
description = mdDoc "The data directory for lightning-pool.";
|
||||||
};
|
};
|
||||||
proxy = mkOption {
|
proxy = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
||||||
description = "host:port of SOCKS5 proxy for connnecting to the pool auction server.";
|
description = mdDoc "host:port of SOCKS5 proxy for connnecting to the pool auction server.";
|
||||||
};
|
};
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
@ -46,7 +46,7 @@ let
|
|||||||
example = ''
|
example = ''
|
||||||
debuglevel=trace
|
debuglevel=trace
|
||||||
'';
|
'';
|
||||||
description = "Extra lines appended to the configuration file.";
|
description = mdDoc "Extra lines appended to the configuration file.";
|
||||||
};
|
};
|
||||||
cli = mkOption {
|
cli = mkOption {
|
||||||
default = pkgs.writers.writeBashBin "pool" ''
|
default = pkgs.writers.writeBashBin "pool" ''
|
||||||
@ -56,7 +56,7 @@ let
|
|||||||
--basedir '${cfg.dataDir}' "$@"
|
--basedir '${cfg.dataDir}' "$@"
|
||||||
'';
|
'';
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "Binary to connect with the lightning-pool instance.";
|
description = mdDoc "Binary to connect with the lightning-pool instance.";
|
||||||
};
|
};
|
||||||
tor = nbLib.tor;
|
tor = nbLib.tor;
|
||||||
};
|
};
|
||||||
|
@ -8,19 +8,19 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen for peer connections.";
|
description = mdDoc "Address to listen for peer connections.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 7042;
|
default = 7042;
|
||||||
description = "Override the default port on which to listen for connections.";
|
description = mdDoc "Override the default port on which to listen for connections.";
|
||||||
};
|
};
|
||||||
onionPort = mkOption {
|
onionPort = mkOption {
|
||||||
type = types.nullOr types.port;
|
type = types.nullOr types.port;
|
||||||
# When the liquidd onion service is enabled, add an onion-tagged socket
|
# When the liquidd onion service is enabled, add an onion-tagged socket
|
||||||
# to distinguish local connections from Tor connections
|
# to distinguish local connections from Tor connections
|
||||||
default = if (config.nix-bitcoin.onionServices.liquidd.enable or false) then 7043 else null;
|
default = if (config.nix-bitcoin.onionServices.liquidd.enable or false) then 7043 else null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Port to listen for Tor peer connections.
|
Port to listen for Tor peer connections.
|
||||||
If set, inbound connections to this port are tagged as onion peers.
|
If set, inbound connections to this port are tagged as onion peers.
|
||||||
'';
|
'';
|
||||||
@ -28,15 +28,15 @@ let
|
|||||||
listen = mkOption {
|
listen = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Listen for peer connections at `address:port`
|
Listen for peer connections at `address:port`
|
||||||
and `address:onionPort` (if `onionPort` is set).
|
and `address:onionPort` (if {option}`onionPort` is set).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
listenWhitelisted = mkOption {
|
listenWhitelisted = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Listen for peer connections at `address:whitelistedPort`.
|
Listen for peer connections at `address:whitelistedPort`.
|
||||||
Peers connected through this socket are automatically whitelisted.
|
Peers connected through this socket are automatically whitelisted.
|
||||||
'';
|
'';
|
||||||
@ -44,7 +44,7 @@ let
|
|||||||
whitelistedPort = mkOption {
|
whitelistedPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 7044;
|
default = 7044;
|
||||||
description = "See `listenWhitelisted`.";
|
description = mdDoc "See {option}`listenWhitelisted`.";
|
||||||
};
|
};
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.lines;
|
type = types.lines;
|
||||||
@ -54,23 +54,23 @@ let
|
|||||||
rpcthreads=16
|
rpcthreads=16
|
||||||
logips=1
|
logips=1
|
||||||
'';
|
'';
|
||||||
description = "Extra lines appended to <filename>elements.conf</filename>.";
|
description = mdDoc "Extra lines appended to {file}`elements.conf`.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/liquidd";
|
default = "/var/lib/liquidd";
|
||||||
description = "The data directory for liquidd.";
|
description = mdDoc "The data directory for liquidd.";
|
||||||
};
|
};
|
||||||
rpc = {
|
rpc = {
|
||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "Address to listen for JSON-RPC connections.";
|
description = mdDoc "Address to listen for JSON-RPC connections.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 7041;
|
default = 7041;
|
||||||
description = "Port to listen for JSON-RPC connections.";
|
description = mdDoc "Port to listen for JSON-RPC connections.";
|
||||||
};
|
};
|
||||||
users = mkOption {
|
users = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
@ -79,7 +79,7 @@ let
|
|||||||
bob.passwordHMAC = "b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99";
|
bob.passwordHMAC = "b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99";
|
||||||
};
|
};
|
||||||
type = with types; attrsOf (submodule rpcUserOpts);
|
type = with types; attrsOf (submodule rpcUserOpts);
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
RPC user information for JSON-RPC connections.
|
RPC user information for JSON-RPC connections.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -87,25 +87,25 @@ let
|
|||||||
rpcallowip = mkOption {
|
rpcallowip = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
default = [ "127.0.0.1" ];
|
default = [ "127.0.0.1" ];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Allow JSON-RPC connections from specified source.
|
Allow JSON-RPC connections from specified source.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
rpcuser = mkOption {
|
rpcuser = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "liquidrpc";
|
default = "liquidrpc";
|
||||||
description = "Username for JSON-RPC connections";
|
description = mdDoc "Username for JSON-RPC connections";
|
||||||
};
|
};
|
||||||
proxy = mkOption {
|
proxy = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
||||||
description = "Connect through SOCKS5 proxy";
|
description = mdDoc "Connect through SOCKS5 proxy";
|
||||||
};
|
};
|
||||||
dbCache = mkOption {
|
dbCache = mkOption {
|
||||||
type = types.nullOr (types.ints.between 4 16384);
|
type = types.nullOr (types.ints.between 4 16384);
|
||||||
default = null;
|
default = null;
|
||||||
example = 4000;
|
example = 4000;
|
||||||
description = "Override the default database cache size in megabytes.";
|
description = mdDoc "Override the default database cache size in megabytes.";
|
||||||
};
|
};
|
||||||
prune = mkOption {
|
prune = mkOption {
|
||||||
type = types.nullOr (types.coercedTo
|
type = types.nullOr (types.coercedTo
|
||||||
@ -115,13 +115,13 @@ let
|
|||||||
);
|
);
|
||||||
default = null;
|
default = null;
|
||||||
example = 10000;
|
example = 10000;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Reduce storage requirements by enabling pruning (deleting) of old
|
Reduce storage requirements by enabling pruning (deleting) of old
|
||||||
blocks. This allows the pruneblockchain RPC to be called to delete
|
blocks. This allows the pruneblockchain RPC to be called to delete
|
||||||
specific blocks, and enables automatic pruning of old blocks if a
|
specific blocks, and enables automatic pruning of old blocks if a
|
||||||
target size in MiB is provided. This mode is incompatible with -txindex
|
target size in MiB is provided. This mode is incompatible with -txindex
|
||||||
and -rescan. Warning: Reverting this setting requires re-downloading
|
and -rescan. Warning: Reverting this setting requires re-downloading
|
||||||
the entire blockchain. ("disable" = disable pruning blocks, "manual"
|
the entire blockchain. (`disable` = disable pruning blocks, `manual`
|
||||||
= allow manual pruning via RPC, >=550 = automatically prune block files
|
= allow manual pruning via RPC, >=550 = automatically prune block files
|
||||||
to stay under the specified target size in MiB)
|
to stay under the specified target size in MiB)
|
||||||
'';
|
'';
|
||||||
@ -129,19 +129,19 @@ let
|
|||||||
validatepegin = mkOption {
|
validatepegin = mkOption {
|
||||||
type = types.nullOr types.bool;
|
type = types.nullOr types.bool;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Validate pegin claims. All functionaries must run this.
|
Validate pegin claims. All functionaries must run this.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "liquid";
|
default = "liquid";
|
||||||
description = "The user as which to run liquidd.";
|
description = mdDoc "The user as which to run liquidd.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run liquidd.";
|
description = mdDoc "The group as which to run liquidd.";
|
||||||
};
|
};
|
||||||
cli = mkOption {
|
cli = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
@ -149,14 +149,14 @@ let
|
|||||||
${nbPkgs.elementsd}/bin/elements-cli -datadir='${cfg.dataDir}' "$@"
|
${nbPkgs.elementsd}/bin/elements-cli -datadir='${cfg.dataDir}' "$@"
|
||||||
'';
|
'';
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "Binary to connect with the liquidd instance.";
|
description = mdDoc "Binary to connect with the liquidd instance.";
|
||||||
};
|
};
|
||||||
swapCli = mkOption {
|
swapCli = mkOption {
|
||||||
default = pkgs.writers.writeBashBin "liquidswap-cli" ''
|
default = pkgs.writers.writeBashBin "liquidswap-cli" ''
|
||||||
${nbPkgs.liquid-swap}/bin/liquidswap-cli -c '${cfg.dataDir}/elements.conf' "$@"
|
${nbPkgs.liquid-swap}/bin/liquidswap-cli -c '${cfg.dataDir}/elements.conf' "$@"
|
||||||
'';
|
'';
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "Binary for managing liquid swaps.";
|
description = mdDoc "Binary for managing liquid swaps.";
|
||||||
};
|
};
|
||||||
tor = nbLib.tor;
|
tor = nbLib.tor;
|
||||||
};
|
};
|
||||||
@ -215,16 +215,16 @@ let
|
|||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = "alice";
|
example = "alice";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Username for JSON-RPC connections.
|
Username for JSON-RPC connections.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
passwordHMAC = mkOption {
|
passwordHMAC = mkOption {
|
||||||
type = with types; uniq (strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
|
type = with types; uniq (strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
|
||||||
example = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
|
example = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Password HMAC-SHA-256 for JSON-RPC connections. Must be a string of the
|
Password HMAC-SHA-256 for JSON-RPC connections. Must be a string of the
|
||||||
format `salt-hex$hmac-hex`.
|
format `<SALT-HEX>$<HMAC-HEX>`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -7,47 +7,47 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = "Address to listen for peer connections";
|
description = mdDoc "Address to listen for peer connections";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 9735;
|
default = 9735;
|
||||||
description = "Port to listen for peer connections";
|
description = mdDoc "Port to listen for peer connections";
|
||||||
};
|
};
|
||||||
rpcAddress = mkOption {
|
rpcAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = "Address to listen for RPC connections.";
|
description = mdDoc "Address to listen for RPC connections.";
|
||||||
};
|
};
|
||||||
rpcPort = mkOption {
|
rpcPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 10009;
|
default = 10009;
|
||||||
description = "Port to listen for gRPC connections.";
|
description = mdDoc "Port to listen for gRPC connections.";
|
||||||
};
|
};
|
||||||
restAddress = mkOption {
|
restAddress = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = "Address to listen for REST connections.";
|
description = mdDoc "Address to listen for REST connections.";
|
||||||
};
|
};
|
||||||
restPort = mkOption {
|
restPort = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 8080;
|
default = 8080;
|
||||||
description = "Port to listen for REST connections.";
|
description = mdDoc "Port to listen for REST connections.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/lnd";
|
default = "/var/lib/lnd";
|
||||||
description = "The data directory for LND.";
|
description = mdDoc "The data directory for LND.";
|
||||||
};
|
};
|
||||||
networkDir = mkOption {
|
networkDir = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = "${cfg.dataDir}/chain/bitcoin/${bitcoind.network}";
|
default = "${cfg.dataDir}/chain/bitcoin/${bitcoind.network}";
|
||||||
description = "The network data directory.";
|
description = mdDoc "The network data directory.";
|
||||||
};
|
};
|
||||||
tor-socks = mkOption {
|
tor-socks = mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.nullOr types.str;
|
||||||
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
default = if cfg.tor.proxy then config.nix-bitcoin.torClientAddressWithPort else null;
|
||||||
description = "Socks proxy for connecting to Tor nodes";
|
description = mdDoc "Socks proxy for connecting to Tor nodes";
|
||||||
};
|
};
|
||||||
macaroons = mkOption {
|
macaroons = mkOption {
|
||||||
default = {};
|
default = {};
|
||||||
@ -55,18 +55,18 @@ let
|
|||||||
options = {
|
options = {
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = "User who owns the macaroon.";
|
description = mdDoc "User who owns the macaroon.";
|
||||||
};
|
};
|
||||||
permissions = mkOption {
|
permissions = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
example = ''
|
example = ''
|
||||||
{"entity":"info","action":"read"},{"entity":"onchain","action":"read"}
|
{"entity":"info","action":"read"},{"entity":"onchain","action":"read"}
|
||||||
'';
|
'';
|
||||||
description = "List of granted macaroon permissions.";
|
description = mdDoc "List of granted macaroon permissions.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra macaroon definitions.
|
Extra macaroon definitions.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -75,18 +75,18 @@ let
|
|||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "60.100.0.1" ];
|
example = [ "60.100.0.1" ];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra `subjectAltName` IPs added to the certificate.
|
Extra `subjectAltName` IPs added to the certificate.
|
||||||
This works the same as lnd option `tlsextraip`.
|
This works the same as lnd option {option}`tlsextraip`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extraDomains = mkOption {
|
extraDomains = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
example = [ "example.com" ];
|
example = [ "example.com" ];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra `subjectAltName` domain names added to the certificate.
|
Extra `subjectAltName` domain names added to the certificate.
|
||||||
This works the same as lnd option `tlsextradomain`.
|
This works the same as lnd option {option}`tlsextradomain`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -96,8 +96,8 @@ let
|
|||||||
example = ''
|
example = ''
|
||||||
autopilot.active=1
|
autopilot.active=1
|
||||||
'';
|
'';
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra lines appended to `lnd.conf`.
|
Extra lines appended to {file}`lnd.conf`.
|
||||||
See here for all available options:
|
See here for all available options:
|
||||||
https://github.com/lightningnetwork/lnd/blob/master/sample-lnd.conf
|
https://github.com/lightningnetwork/lnd/blob/master/sample-lnd.conf
|
||||||
'';
|
'';
|
||||||
@ -106,7 +106,7 @@ let
|
|||||||
type = types.package;
|
type = types.package;
|
||||||
default = config.nix-bitcoin.pkgs.lnd;
|
default = config.nix-bitcoin.pkgs.lnd;
|
||||||
defaultText = "config.nix-bitcoin.pkgs.lnd";
|
defaultText = "config.nix-bitcoin.pkgs.lnd";
|
||||||
description = "The package providing lnd binaries.";
|
description = mdDoc "The package providing lnd binaries.";
|
||||||
};
|
};
|
||||||
cli = mkOption {
|
cli = mkOption {
|
||||||
default = pkgs.writers.writeBashBin "lncli"
|
default = pkgs.writers.writeBashBin "lncli"
|
||||||
@ -118,12 +118,12 @@ let
|
|||||||
--macaroonpath '${networkDir}/admin.macaroon' "$@"
|
--macaroonpath '${networkDir}/admin.macaroon' "$@"
|
||||||
'';
|
'';
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = "Binary to connect with the lnd instance.";
|
description = mdDoc "Binary to connect with the lnd instance.";
|
||||||
};
|
};
|
||||||
getPublicAddressCmd = mkOption {
|
getPublicAddressCmd = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Bash expression which outputs the public service address to announce to peers.
|
Bash expression which outputs the public service address to announce to peers.
|
||||||
If left empty, no address is announced.
|
If left empty, no address is announced.
|
||||||
'';
|
'';
|
||||||
@ -131,17 +131,17 @@ let
|
|||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "lnd";
|
default = "lnd";
|
||||||
description = "The user as which to run LND.";
|
description = mdDoc "The user as which to run LND.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run LND.";
|
description = mdDoc "The group as which to run LND.";
|
||||||
};
|
};
|
||||||
certPath = mkOption {
|
certPath = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = "${secretsDir}/lnd-cert";
|
default = "${secretsDir}/lnd-cert";
|
||||||
description = "LND TLS certificate path.";
|
description = mdDoc "LND TLS certificate path.";
|
||||||
};
|
};
|
||||||
tor = nbLib.tor;
|
tor = nbLib.tor;
|
||||||
};
|
};
|
||||||
|
@ -6,13 +6,13 @@ let
|
|||||||
services.lnd.lndconnectOnion.enable = mkOption {
|
services.lnd.lndconnectOnion.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Create an onion service for the lnd REST server.
|
Create an onion service for the lnd REST server.
|
||||||
Add a `lndconnect-onion` binary to the system environment.
|
Add a `lndconnect-onion` binary to the system environment.
|
||||||
See: https://github.com/LN-Zap/lndconnect
|
See: https://github.com/LN-Zap/lndconnect
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
```
|
```bash
|
||||||
# Print QR code
|
# Print QR code
|
||||||
lndconnect-onion
|
lndconnect-onion
|
||||||
|
|
||||||
@ -25,13 +25,13 @@ let
|
|||||||
services.clightning-rest.lndconnectOnion.enable = mkOption {
|
services.clightning-rest.lndconnectOnion.enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Create an onion service for clightning-rest.
|
Create an onion service for clightning-rest.
|
||||||
Add a `lndconnect-onion-clightning` binary to the system environment.
|
Add a `lndconnect-onion-clightning` binary to the system environment.
|
||||||
See: https://github.com/LN-Zap/lndconnect
|
See: https://github.com/LN-Zap/lndconnect
|
||||||
|
|
||||||
Usage:
|
Usage:
|
||||||
```
|
```bash
|
||||||
# Print QR code
|
# Print QR code
|
||||||
lndconnect-onion-clightning
|
lndconnect-onion-clightning
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ let
|
|||||||
addressblock = mkOption {
|
addressblock = mkOption {
|
||||||
type = types.ints.u8;
|
type = types.ints.u8;
|
||||||
default = 1;
|
default = 1;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
The address block N in 169.254.N.0/24, used as the prefix for netns addresses.
|
The address block N in 169.254.N.0/24, used as the prefix for netns addresses.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -20,7 +20,7 @@ let
|
|||||||
id = mkOption {
|
id = mkOption {
|
||||||
# TODO: Assert uniqueness
|
# TODO: Assert uniqueness
|
||||||
type = types.ints.between 11 255;
|
type = types.ints.between 11 255;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
id for the netns, used for the IP address host part and
|
id for the netns, used for the IP address host part and
|
||||||
for naming the interfaces. Must be unique. Must be greater than 10.
|
for naming the interfaces. Must be unique. Must be greater than 10.
|
||||||
'';
|
'';
|
||||||
@ -35,7 +35,7 @@ let
|
|||||||
|
|
||||||
allowedUser = mkOption {
|
allowedUser = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
User that is allowed to execute commands in the service network namespaces.
|
User that is allowed to execute commands in the service network namespaces.
|
||||||
The user's group is also authorized.
|
The user's group is also authorized.
|
||||||
'';
|
'';
|
||||||
@ -45,13 +45,13 @@ let
|
|||||||
netns = mkOption {
|
netns = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = netns;
|
default = netns;
|
||||||
description = "Exposes netns parameters.";
|
description = mdDoc "Exposes netns parameters.";
|
||||||
};
|
};
|
||||||
|
|
||||||
bridgeIp = mkOption {
|
bridgeIp = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = bridgeIp;
|
default = bridgeIp;
|
||||||
description = "IP of the netns bridge interface.";
|
description = mdDoc "IP of the netns bridge interface.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ let
|
|||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
default = {};
|
default = {};
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Nodeinfo service definitions.
|
Nodeinfo service definitions.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -27,7 +27,7 @@ let
|
|||||||
readOnly = true;
|
readOnly = true;
|
||||||
default = nodeinfoLib;
|
default = nodeinfoLib;
|
||||||
defaultText = "(See source)";
|
defaultText = "(See source)";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Helper functions for defining nodeinfo services.
|
Helper functions for defining nodeinfo services.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -12,23 +12,25 @@ let
|
|||||||
access = mkOption {
|
access = mkOption {
|
||||||
type = with types; attrsOf (listOf str);
|
type = with types; attrsOf (listOf str);
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
This option controls who is allowed to access onion addresses.
|
This option controls who is allowed to access onion addresses.
|
||||||
For example, the following allows user 'myuser' to access bitcoind
|
For example, the following allows user 'myuser' to access bitcoind
|
||||||
and clightning onion addresses:
|
and clightning onion addresses:
|
||||||
|
```nix
|
||||||
{
|
{
|
||||||
"myuser" = [ "bitcoind" "clightning" ];
|
"myuser" = [ "bitcoind" "clightning" ];
|
||||||
};
|
};
|
||||||
|
```
|
||||||
The onion hostnames can then be read from
|
The onion hostnames can then be read from
|
||||||
/var/lib/onion-addresses/myuser.
|
{file}`/var/lib/onion-addresses/myuser`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
services = mkOption {
|
services = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Services that can access their onion address via file
|
Services that can access their onion address via file
|
||||||
`/var/lib/onion-addresses/$service`
|
{file}`/var/lib/onion-addresses/<service>`
|
||||||
The file is readable only by the service user.
|
The file is readable only by the service user.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -16,24 +16,24 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = config.public;
|
default = config.public;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Create an onion service for the given service.
|
Create an onion service for the given service.
|
||||||
The service must define options 'address' and 'onionPort' (or `port`).
|
The service must define options {option}'address' and {option}'onionPort' (or `port`).
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
public = mkOption {
|
public = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Make the onion address accessible to the service.
|
Make the onion address accessible to the service.
|
||||||
If enabled, the onion service is automatically enabled.
|
If enabled, the onion service is automatically enabled.
|
||||||
Only available for services that define option `getPublicAddressCmd`.
|
Only available for services that define option {option}`getPublicAddressCmd`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
externalPort = mkOption {
|
externalPort = mkOption {
|
||||||
type = types.nullOr types.port;
|
type = types.nullOr types.port;
|
||||||
default = null;
|
default = null;
|
||||||
description = "Override the external port of the onion service.";
|
description = mdDoc "Override the external port of the onion service.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Whether to define a user named `operator` for convenient interactive access
|
Whether to define a user named `operator` for convenient interactive access
|
||||||
to nix-bitcoin features (like `bitcoin-cli`).
|
to nix-bitcoin features (like `bitcoin-cli`).
|
||||||
|
|
||||||
@ -18,17 +18,17 @@ let
|
|||||||
name = mkOption {
|
name = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "operator";
|
default = "operator";
|
||||||
description = "Name of the operator user.";
|
description = mdDoc "Name of the operator user.";
|
||||||
};
|
};
|
||||||
groups = mkOption {
|
groups = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
description = "Extra groups of the operatur user.";
|
description = mdDoc "Extra groups of the operatur user.";
|
||||||
};
|
};
|
||||||
allowRunAsUsers = mkOption {
|
allowRunAsUsers = mkOption {
|
||||||
type = with types; listOf str;
|
type = with types; listOf str;
|
||||||
default = [];
|
default = [];
|
||||||
description = "Users as which the operator is allowed to run commands.";
|
description = mdDoc "Users as which the operator is allowed to run commands.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7,24 +7,24 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "127.0.0.1";
|
default = "127.0.0.1";
|
||||||
description = "HTTP server address.";
|
description = mdDoc "HTTP server address.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 3000;
|
default = 3000;
|
||||||
description = "HTTP server port.";
|
description = mdDoc "HTTP server port.";
|
||||||
};
|
};
|
||||||
dataDir = mkOption {
|
dataDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/var/lib/rtl";
|
default = "/var/lib/rtl";
|
||||||
description = "The data directory for RTL.";
|
description = mdDoc "The data directory for RTL.";
|
||||||
};
|
};
|
||||||
nodes = {
|
nodes = {
|
||||||
clightning = {
|
clightning = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable the clightning node interface.";
|
description = mdDoc "Enable the clightning node interface.";
|
||||||
};
|
};
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
@ -33,7 +33,7 @@ let
|
|||||||
Settings.userPersona = "MERCHANT";
|
Settings.userPersona = "MERCHANT";
|
||||||
Settings.logLevel = "DEBUG";
|
Settings.logLevel = "DEBUG";
|
||||||
};
|
};
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra clightning node configuration.
|
Extra clightning node configuration.
|
||||||
See here for all available options:
|
See here for all available options:
|
||||||
https://github.com/Ride-The-Lightning/RTL/blob/master/.github/docs/Application_configurations.md
|
https://github.com/Ride-The-Lightning/RTL/blob/master/.github/docs/Application_configurations.md
|
||||||
@ -44,12 +44,12 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable the lnd node interface.";
|
description = mdDoc "Enable the lnd node interface.";
|
||||||
};
|
};
|
||||||
loop = mkOption {
|
loop = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable swaps with lightning-loop.";
|
description = mdDoc "Enable swaps with lightning-loop.";
|
||||||
};
|
};
|
||||||
extraConfig = mkOption {
|
extraConfig = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
@ -58,7 +58,7 @@ let
|
|||||||
Settings.userPersona = "MERCHANT";
|
Settings.userPersona = "MERCHANT";
|
||||||
Settings.logLevel = "DEBUG";
|
Settings.logLevel = "DEBUG";
|
||||||
};
|
};
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Extra lnd node configuration.
|
Extra lnd node configuration.
|
||||||
See here for all available options:
|
See here for all available options:
|
||||||
https://github.com/Ride-The-Lightning/RTL/blob/master/.github/docs/Application_configurations.md
|
https://github.com/Ride-The-Lightning/RTL/blob/master/.github/docs/Application_configurations.md
|
||||||
@ -68,7 +68,7 @@ let
|
|||||||
reverseOrder = mkOption {
|
reverseOrder = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Reverse the order of nodes shown in the UI.
|
Reverse the order of nodes shown in the UI.
|
||||||
By default, clightning is shown before lnd.
|
By default, clightning is shown before lnd.
|
||||||
'';
|
'';
|
||||||
@ -77,28 +77,28 @@ let
|
|||||||
nightTheme = mkOption {
|
nightTheme = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = "Enable the Night UI Theme.";
|
description = mdDoc "Enable the Night UI Theme.";
|
||||||
};
|
};
|
||||||
extraCurrency = mkOption {
|
extraCurrency = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
example = "USD";
|
example = "USD";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Currency code (ISO 4217) of the extra currency used for displaying balances.
|
Currency code (ISO 4217) of the extra currency used for displaying balances.
|
||||||
When set, this option enables online currency rate fetching.
|
When set, this option enables online currency rate fetching.
|
||||||
Warning: Rate fetching requires outgoing clearnet connections, so option
|
Warning: Rate fetching requires outgoing clearnet connections, so option
|
||||||
`tor.enforce` is automatically disabled.
|
{option}`tor.enforce` is automatically disabled.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "rtl";
|
default = "rtl";
|
||||||
description = "The user as which to run RTL.";
|
description = mdDoc "The user as which to run RTL.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run RTL.";
|
description = mdDoc "The group as which to run RTL.";
|
||||||
};
|
};
|
||||||
tor.enforce = nbLib.tor.enforce;
|
tor.enforce = nbLib.tor.enforce;
|
||||||
};
|
};
|
||||||
|
@ -6,14 +6,14 @@ let
|
|||||||
secretsDir = mkOption {
|
secretsDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "/etc/nix-bitcoin-secrets";
|
default = "/etc/nix-bitcoin-secrets";
|
||||||
description = "Directory to store secrets";
|
description = mdDoc "Directory to store secrets";
|
||||||
};
|
};
|
||||||
|
|
||||||
setupSecrets = mkOption {
|
setupSecrets = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Set permissions for existing secrets in `nix-bitcoin.secretsDir`
|
Set permissions for existing secrets in {option}`nix-bitcoin.secretsDir`
|
||||||
before services are started.
|
before services are started.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -21,7 +21,7 @@ let
|
|||||||
generateSecrets = mkOption {
|
generateSecrets = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Automatically generate all required secrets before services are started.
|
Automatically generate all required secrets before services are started.
|
||||||
Note: Make sure to create a backup of the generated secrets.
|
Note: Make sure to create a backup of the generated secrets.
|
||||||
'';
|
'';
|
||||||
@ -30,7 +30,7 @@ let
|
|||||||
generateSecretsCmds = mkOption {
|
generateSecretsCmds = mkOption {
|
||||||
type = types.attrsOf types.str;
|
type = types.attrsOf types.str;
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Bash expressions for generating secrets.
|
Bash expressions for generating secrets.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -38,7 +38,7 @@ let
|
|||||||
# Currently, this is used only by ../deployment/nixops.nix
|
# Currently, this is used only by ../deployment/nixops.nix
|
||||||
deployment.secretsDir = mkOption {
|
deployment.secretsDir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Directory of local secrets that are transferred to the nix-bitcoin node on deployment
|
Directory of local secrets that are transferred to the nix-bitcoin node on deployment
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
@ -6,16 +6,16 @@ with lib;
|
|||||||
nix-bitcoin.security.dbusHideProcessInformation = mkOption {
|
nix-bitcoin.security.dbusHideProcessInformation = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Only allow users with group 'proc' to retrieve systemd unit information like
|
Only allow users with group `proc` to retrieve systemd unit information like
|
||||||
cgroup paths (i.e. (sub)process command lines) via D-Bus.
|
cgroup paths (i.e. (sub)process command lines) via D-Bus.
|
||||||
|
|
||||||
This mitigates a systemd security issue where (sub)process command lines can
|
This mitigates a systemd security issue where (sub)process command lines can
|
||||||
be retrieved by services even when their access to /proc is restricted
|
be retrieved by services even when their access to /proc is restricted
|
||||||
(via ProtectProc).
|
(via ProtectProc).
|
||||||
|
|
||||||
This option works by restricting the D-Bus method 'GetUnitProcesses', which
|
This option works by restricting the D-Bus method `GetUnitProcesses`, which
|
||||||
is also used internally by `systemctl status`.
|
is also used internally by {command}`systemctl status`.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -7,22 +7,22 @@ let
|
|||||||
address = mkOption {
|
address = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "localhost";
|
default = "localhost";
|
||||||
description = "http(s) server address.";
|
description = mdDoc "http(s) server address.";
|
||||||
};
|
};
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 9737;
|
default = 9737;
|
||||||
description = "http(s) server port.";
|
description = mdDoc "http(s) server port.";
|
||||||
};
|
};
|
||||||
extraArgs = mkOption {
|
extraArgs = mkOption {
|
||||||
type = types.separatedString " ";
|
type = types.separatedString " ";
|
||||||
default = "";
|
default = "";
|
||||||
description = "Extra command line arguments passed to spark-wallet.";
|
description = mdDoc "Extra command line arguments passed to spark-wallet.";
|
||||||
};
|
};
|
||||||
getPublicAddressCmd = mkOption {
|
getPublicAddressCmd = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Bash expression which outputs the public service address.
|
Bash expression which outputs the public service address.
|
||||||
If set, spark-wallet prints a QR code to the systemd journal which
|
If set, spark-wallet prints a QR code to the systemd journal which
|
||||||
encodes an URL for accessing the web interface.
|
encodes an URL for accessing the web interface.
|
||||||
@ -31,12 +31,12 @@ let
|
|||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "spark-wallet";
|
default = "spark-wallet";
|
||||||
description = "The user as which to run spark-wallet.";
|
description = mdDoc "The user as which to run spark-wallet.";
|
||||||
};
|
};
|
||||||
group = mkOption {
|
group = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = cfg.user;
|
default = cfg.user;
|
||||||
description = "The group as which to run spark-wallet.";
|
description = mdDoc "The group as which to run spark-wallet.";
|
||||||
};
|
};
|
||||||
tor = nbLib.tor;
|
tor = nbLib.tor;
|
||||||
};
|
};
|
||||||
|
@ -11,7 +11,7 @@ let
|
|||||||
nix-bitcoin.configVersion = mkOption {
|
nix-bitcoin.configVersion = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Set this option to the nix-bitcoin release version that your config is
|
Set this option to the nix-bitcoin release version that your config is
|
||||||
compatible with.
|
compatible with.
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ let
|
|||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = false;
|
default = false;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Whether to shellcheck services during system build time.
|
Whether to shellcheck services during system build time.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
@ -13,14 +13,14 @@ let
|
|||||||
sourcePrefix = mkOption {
|
sourcePrefix = mkOption {
|
||||||
type = with types; nullOr str;
|
type = with types; nullOr str;
|
||||||
default = null;
|
default = null;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
The definition source path prefix of services to include in the shellcheck.
|
The definition source path prefix of services to include in the shellcheck.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
runShellcheck = mkOption {
|
runShellcheck = mkOption {
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
A derivation that runs shellcheck on all bash scripts included
|
A derivation that runs shellcheck on all bash scripts included
|
||||||
in nix-bitcoin services.
|
in nix-bitcoin services.
|
||||||
'';
|
'';
|
||||||
|
@ -10,7 +10,7 @@ with lib;
|
|||||||
noConnections = mkOption {
|
noConnections = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = !config.test.container.enableWAN;
|
default = !config.test.container.enableWAN;
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Whether services should be configured to not connect to external hosts.
|
Whether services should be configured to not connect to external hosts.
|
||||||
This can silence some warnings while running the test in an offline environment.
|
This can silence some warnings while running the test in an offline environment.
|
||||||
'';
|
'';
|
||||||
@ -18,9 +18,9 @@ with lib;
|
|||||||
data = mkOption {
|
data = mkOption {
|
||||||
type = types.attrs;
|
type = types.attrs;
|
||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = mdDoc ''
|
||||||
Attrs that are available in the Python test script under the global
|
Attrs that are available in the Python test script under the global
|
||||||
dictionary variable 'test_data'. The data is exported via JSON.
|
dictionary variable {var}`test_data`. The data is exported via JSON.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
extraTestScript = mkOption {
|
extraTestScript = mkOption {
|
||||||
|
Loading…
Reference in New Issue
Block a user