2019-11-27 05:04:23 -08:00
|
|
|
{ config, pkgs, lib, ... }:
|
2019-11-27 05:04:20 -08:00
|
|
|
|
2020-12-21 03:19:15 -08:00
|
|
|
with lib;
|
2020-03-04 09:08:46 -08:00
|
|
|
{
|
2019-11-27 05:04:20 -08:00
|
|
|
imports = [
|
2020-09-28 00:41:17 -07:00
|
|
|
# Core modules
|
|
|
|
./secrets/secrets.nix
|
2020-09-28 04:09:03 -07:00
|
|
|
./operator.nix
|
2020-09-28 00:41:17 -07:00
|
|
|
|
|
|
|
# Main features
|
2019-11-27 05:04:20 -08:00
|
|
|
./bitcoind.nix
|
|
|
|
./clightning.nix
|
2020-11-18 18:01:45 -08:00
|
|
|
./clightning-plugins
|
2019-11-27 05:04:20 -08:00
|
|
|
./spark-wallet.nix
|
|
|
|
./lnd.nix
|
2021-02-03 13:44:43 -08:00
|
|
|
./lnd-rest-onion-service.nix
|
2020-07-07 07:22:17 -07:00
|
|
|
./lightning-loop.nix
|
2021-03-01 01:59:23 -08:00
|
|
|
./lightning-pool.nix
|
2021-06-01 18:11:26 -07:00
|
|
|
./charge-lnd.nix
|
2020-08-12 07:47:56 -07:00
|
|
|
./btcpayserver.nix
|
2020-09-28 00:41:17 -07:00
|
|
|
./electrs.nix
|
|
|
|
./liquid.nix
|
2020-04-23 09:18:47 -07:00
|
|
|
./joinmarket.nix
|
2021-01-17 04:24:57 -08:00
|
|
|
./joinmarket-ob-watcher.nix
|
2020-09-28 00:41:17 -07:00
|
|
|
./hardware-wallets.nix
|
|
|
|
./recurring-donations.nix
|
|
|
|
|
|
|
|
# Support features
|
2020-10-12 04:33:48 -07:00
|
|
|
./versioning.nix
|
2020-09-28 00:41:17 -07:00
|
|
|
./security.nix
|
2021-01-14 04:24:10 -08:00
|
|
|
./onion-addresses.nix
|
2021-01-14 04:24:17 -08:00
|
|
|
./onion-services.nix
|
2020-09-28 00:41:17 -07:00
|
|
|
./netns-isolation.nix
|
2021-01-14 04:24:26 -08:00
|
|
|
./nodeinfo.nix
|
2020-09-28 00:41:17 -07:00
|
|
|
./backups.nix
|
2019-11-27 05:04:20 -08:00
|
|
|
];
|
|
|
|
|
|
|
|
disabledModules = [ "services/networking/bitcoind.nix" ];
|
|
|
|
|
2019-11-27 05:04:23 -08:00
|
|
|
options = {
|
2020-12-21 03:19:15 -08:00
|
|
|
nix-bitcoin = {
|
|
|
|
pkgs = mkOption {
|
|
|
|
type = types.attrs;
|
|
|
|
default = (import ../pkgs { inherit pkgs; }).modulesPkgs;
|
|
|
|
};
|
|
|
|
|
2021-02-03 13:44:41 -08:00
|
|
|
lib = mkOption {
|
|
|
|
readOnly = true;
|
|
|
|
default = import ../pkgs/lib.nix lib pkgs;
|
|
|
|
};
|
|
|
|
|
2020-12-21 03:19:15 -08:00
|
|
|
# Torify binary that works with custom Tor SOCKS addresses
|
|
|
|
# Related issue: https://github.com/NixOS/nixpkgs/issues/94236
|
|
|
|
torify = mkOption {
|
|
|
|
readOnly = true;
|
|
|
|
default = pkgs.writeScriptBin "torify" ''
|
|
|
|
${pkgs.tor}/bin/torify \
|
|
|
|
--address ${head (splitString ":" config.services.tor.client.socksListenAddress)} \
|
|
|
|
"$@"
|
|
|
|
'';
|
|
|
|
};
|
2021-01-30 14:08:43 -08:00
|
|
|
|
|
|
|
# A helper for using doas instead of sudo when doas is enabled
|
|
|
|
runAsUserCmd = mkOption {
|
|
|
|
readOnly = true;
|
|
|
|
default = if config.security.doas.enable
|
|
|
|
then "doas -u"
|
|
|
|
else "sudo -u";
|
|
|
|
};
|
2020-11-09 13:09:09 -08:00
|
|
|
};
|
2019-11-27 05:04:23 -08:00
|
|
|
};
|
|
|
|
|
|
|
|
config = {
|
2020-06-15 03:21:18 -07:00
|
|
|
assertions = [
|
2021-01-14 04:24:04 -08:00
|
|
|
{ assertion = (config.services.lnd.enable -> ( !config.services.clightning.enable || config.services.clightning.port != config.services.lnd.port));
|
2020-06-15 03:21:18 -07:00
|
|
|
message = ''
|
2020-08-04 00:54:01 -07:00
|
|
|
LND and clightning can't both bind to lightning port 9735. Either
|
|
|
|
disable LND/clightning or change services.clightning.bindPort or
|
2021-01-14 04:24:03 -08:00
|
|
|
services.lnd.port to a port other than 9735.
|
2020-06-15 03:21:18 -07:00
|
|
|
'';
|
|
|
|
}
|
|
|
|
];
|
2019-11-27 05:04:23 -08:00
|
|
|
};
|
2019-11-27 05:04:20 -08:00
|
|
|
}
|