minor improvements
- README: add matrix room - examples/configuration.nix: explain why bitcoind is enabled by default - btcpayserver: group lnd service settings - clightning: Use public onion port only when the onion service is public This allows users to enable the onion service while announcing a non-onion public address. - netns-isolation: move `readOnly` attr to the top - tests: use mkDefault to allow for easier overriding - tests/btcpayserver: test web server response
This commit is contained in:
parent
1da23cd933
commit
aada35fc7b
@ -101,6 +101,7 @@ Docs
|
|||||||
|
|
||||||
Troubleshooting
|
Troubleshooting
|
||||||
---
|
---
|
||||||
If you are having problems with nix-bitcoin check the [FAQ](docs/faq.md) or submit an issue.
|
If you are having problems with nix-bitcoin check the [FAQ](docs/faq.md) or submit an issue.\
|
||||||
There's also a `#nix-bitcoin` IRC channel on [libera](https://libera.chat).
|
There's also a Matrix room at [#general:nixbitcoin.org](https://matrix.to/#/#general:nixbitcoin.org)
|
||||||
|
and a `#nix-bitcoin` IRC channel on [libera](https://libera.chat).\
|
||||||
We are always happy to help.
|
We are always happy to help.
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
# modules by commenting out their respective line.
|
# modules by commenting out their respective line.
|
||||||
|
|
||||||
### BITCOIND
|
### BITCOIND
|
||||||
# Bitcoind is enabled by default.
|
# Bitcoind is enabled by default via secure-node.nix.
|
||||||
#
|
#
|
||||||
# Set this option to enable pruning with a specified MiB value.
|
# Set this option to enable pruning with a specified MiB value.
|
||||||
# clightning is compatible with pruning. See
|
# clightning is compatible with pruning. See
|
||||||
|
@ -119,17 +119,17 @@ in {
|
|||||||
listenWhitelisted = true;
|
listenWhitelisted = true;
|
||||||
};
|
};
|
||||||
services.clightning.enable = mkIf (cfg.btcpayserver.lightningBackend == "clightning") true;
|
services.clightning.enable = mkIf (cfg.btcpayserver.lightningBackend == "clightning") true;
|
||||||
services.lnd.enable = mkIf (cfg.btcpayserver.lightningBackend == "lnd") true;
|
services.lnd = mkIf (cfg.btcpayserver.lightningBackend == "lnd") {
|
||||||
|
enable = true;
|
||||||
|
macaroons.btcpayserver = {
|
||||||
|
inherit (cfg.btcpayserver) user;
|
||||||
|
permissions = ''{"entity":"info","action":"read"},{"entity":"onchain","action":"read"},{"entity":"offchain","action":"read"},{"entity":"address","action":"read"},{"entity":"message","action":"read"},{"entity":"peers","action":"read"},{"entity":"signer","action":"read"},{"entity":"invoices","action":"read"},{"entity":"invoices","action":"write"},{"entity":"address","action":"write"}'';
|
||||||
|
};
|
||||||
|
};
|
||||||
services.liquidd = mkIf cfg.btcpayserver.lbtc {
|
services.liquidd = mkIf cfg.btcpayserver.lbtc {
|
||||||
enable = true;
|
enable = true;
|
||||||
listenWhitelisted = true;
|
listenWhitelisted = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.lnd.macaroons.btcpayserver = mkIf (cfg.btcpayserver.lightningBackend == "lnd") {
|
|
||||||
inherit (cfg.btcpayserver) user;
|
|
||||||
permissions = ''{"entity":"info","action":"read"},{"entity":"onchain","action":"read"},{"entity":"offchain","action":"read"},{"entity":"address","action":"read"},{"entity":"message","action":"read"},{"entity":"peers","action":"read"},{"entity":"signer","action":"read"},{"entity":"invoices","action":"read"},{"entity":"invoices","action":"write"},{"entity":"address","action":"write"}'';
|
|
||||||
};
|
|
||||||
|
|
||||||
services.postgresql = {
|
services.postgresql = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ensureDatabases = [ "btcpaydb" ];
|
ensureDatabases = [ "btcpaydb" ];
|
||||||
|
@ -91,8 +91,10 @@ let
|
|||||||
${cfg.extraConfig}
|
${cfg.extraConfig}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# If the clightning onion service is enabled, use the onion port as the public port
|
# If a public clightning onion service is enabled, use the onion port as the public port
|
||||||
publicPort = if config.nix-bitcoin.onionServices.clightning.enable or false then
|
publicPort = if (config.nix-bitcoin.onionServices.clightning.enable or false)
|
||||||
|
&& config.nix-bitcoin.onionServices.clightning.public
|
||||||
|
then
|
||||||
(builtins.elemAt config.services.tor.relay.onionServices.clightning.map 0).port
|
(builtins.elemAt config.services.tor.relay.onionServices.clightning.map 0).port
|
||||||
else
|
else
|
||||||
cfg.port;
|
cfg.port;
|
||||||
|
@ -43,14 +43,14 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
netns = mkOption {
|
netns = mkOption {
|
||||||
default = netns;
|
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
|
default = netns;
|
||||||
description = "Exposes netns parameters.";
|
description = "Exposes netns parameters.";
|
||||||
};
|
};
|
||||||
|
|
||||||
bridgeIp = mkOption {
|
bridgeIp = mkOption {
|
||||||
default = bridgeIp;
|
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
|
default = bridgeIp;
|
||||||
description = "IP of the netns bridge interface.";
|
description = "IP of the netns bridge interface.";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -80,8 +80,8 @@ let
|
|||||||
|
|
||||||
tests.btcpayserver = cfg.btcpayserver.enable;
|
tests.btcpayserver = cfg.btcpayserver.enable;
|
||||||
services.btcpayserver = {
|
services.btcpayserver = {
|
||||||
lightningBackend = "lnd";
|
lightningBackend = mkDefault "lnd";
|
||||||
lbtc = true;
|
lbtc = mkDefault true;
|
||||||
};
|
};
|
||||||
# Needed to test macaroon creation
|
# Needed to test macaroon creation
|
||||||
environment.systemPackages = mkIfTest "btcpayserver" (with pkgs; [ openssl xxd ]);
|
environment.systemPackages = mkIfTest "btcpayserver" (with pkgs; [ openssl xxd ]);
|
||||||
|
@ -201,6 +201,8 @@ def _():
|
|||||||
f"-X GET https://{ip('lnd')}:8080/v1/getinfo | jq",
|
f"-X GET https://{ip('lnd')}:8080/v1/getinfo | jq",
|
||||||
'"version"',
|
'"version"',
|
||||||
)
|
)
|
||||||
|
# Test web server response
|
||||||
|
assert_matches(f"curl -L {ip('btcpayserver')}:23000", "Welcome to your BTCPay Server")
|
||||||
|
|
||||||
@test("spark-wallet")
|
@test("spark-wallet")
|
||||||
def _():
|
def _():
|
||||||
|
Loading…
Reference in New Issue
Block a user