diff --git a/src/system/modules/bitcoin/config/default.nix b/src/system/modules/bitcoin/config/bitcoin.conf similarity index 97% rename from src/system/modules/bitcoin/config/default.nix rename to src/system/modules/bitcoin/config/bitcoin.conf index 5e83a02..641827a 100644 --- a/src/system/modules/bitcoin/config/default.nix +++ b/src/system/modules/bitcoin/config/bitcoin.conf @@ -1,4 +1,3 @@ -'' server=1 mempoolfullrbf=1 @@ -18,4 +17,3 @@ listen=1 listenonion=1 torcontrol=127.0.0.1:9051 torenablecircuit=1 -'' diff --git a/src/system/modules/bitcoin/default.nix b/src/system/modules/bitcoin/default.nix index fb76505..4608837 100644 --- a/src/system/modules/bitcoin/default.nix +++ b/src/system/modules/bitcoin/default.nix @@ -5,11 +5,14 @@ let cfg = config.modules.system.bitcoin; home = "/var/lib/bitcoind"; - conf = pkgs.writeText "bitcoin.conf" (import ./config); + bitcoinConf = pkgs.writeTextFile { + name = "bitcoin.conf"; + text = builtins.readFile ./config/bitcoin.conf; + }; in -{ options.modules.system.bitcoin = { enable = mkEnableOption "system.bitcoin"; }; +{ options.modules.system.bitcoin = { enable = mkEnableOption "Bitcoin Server"; }; imports = [ ./modules ]; config = mkIf cfg.enable { nixpkgs.overlays = [ @@ -38,7 +41,6 @@ in "bitcoin" = { members = [ "btc" - "electrs" ]; }; }; @@ -55,7 +57,7 @@ in enable = true; user = "btc"; group = "bitcoin"; - configFile = conf; + configFile = bitcoinConf; dataDir = home; pidFile = "${home}/bitcoind.pid"; }; diff --git a/src/system/modules/bitcoin/modules/electrum/config/config.toml b/src/system/modules/bitcoin/modules/electrum/config/config.toml new file mode 100644 index 0000000..c030e25 --- /dev/null +++ b/src/system/modules/bitcoin/modules/electrum/config/config.toml @@ -0,0 +1,14 @@ +network = "bitcoin" + +electrum_rpc_addr = "127.0.0.1:50001" + +cookie-file = "/var/lib/bitcoind/.cookie" + +db_dir = "/var/lib/electrs" + +log_filters = "INFO" +timestamp = true + +daemon-rpc-addr = "127.0.0.1:8332" +daemon-p2p-addr = "127.0.0.1:8333" +daemon-dir = "/var/lib/bitcoind" diff --git a/src/system/modules/bitcoin/modules/electrum/config/default.nix b/src/system/modules/bitcoin/modules/electrum/config/default.nix deleted file mode 100644 index e0b5b24..0000000 --- a/src/system/modules/bitcoin/modules/electrum/config/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -let - daemonDir = "/var/lib/bitcoin"; - -in -'' - network = "bitcoin" - - electrum_rpc_addr = "127.0.0.1:50001" - - cookie-file = "${daemonDir}/.cookie" - - db_dir = "/var/lib/electrs" - - log_filters = "INFO" - timestamp = true - - daemon-rpc-addr = "127.0.0.1:8332" - daemon-p2p-addr = "127.0.0.1:8333" - daemon-dir = "${daemonDir}" -'' diff --git a/src/system/modules/bitcoin/modules/electrum/default.nix b/src/system/modules/bitcoin/modules/electrum/default.nix index c31fe9e..296e3f2 100644 --- a/src/system/modules/bitcoin/modules/electrum/default.nix +++ b/src/system/modules/bitcoin/modules/electrum/default.nix @@ -7,24 +7,27 @@ let btc = config.modules.system.bitcoin; - conf = pkgs.writeText "config.toml" (import ./config); + electrsConfig = pkgs.writeTextFile { + name = "config.toml"; + text = builtins.readFile ./config/config.toml; + }; in -{ options.modules.system.bitcoin.electrum = { enable = mkEnableOption "system.bitcoin.electrum"; }; - config = mkIf cfg.enable { - #nixpkgs.overlays = [ - # (final: prev: { - # electrs = prev.electrs.overrideAttrs (old: rec { - # version = "0.10.4"; - # src = fetchFromGithub { - # rev = "${version}"; - # hash = '' - # sha256-0xw2532nmaxx9bjdpnnby03b83wc9zs8bv1wdfgv9q1phccqbkz1 - # ''; - # }; - # }); - # }) - #]; +{ options.modules.system.bitcoin.electrum = { enable = mkEnableOption "Electrs Server"; }; + config = mkIf (cfg.enable && btc.enable) { + nixpkgs.overlays = [ + (final: prev: { + electrs = prev.electrs.overrideAttrs (old: rec { + version = "0.10.4"; + src = pkgs.fetchFromGitHub { + owner = "romanz"; + repo = "electrs"; + rev = "${version}"; + hash = "sha256-4c+FGYM34LSfazzshfRPjA+0BvDL2tvkSr2rasUognc="; + }; + }); + }) + ]; environment.systemPackages = with pkgs; [ electrs @@ -34,12 +37,19 @@ in users = { "electrs" = { inherit home; - description = "electrs system user"; + description = "Electrs system user"; isSystemUser = true; group = "bitcoin"; createHome = true; }; }; + groups = { + "bitcoin" = { + members = mkAfter [ + "electrs" + ]; + }; + }; }; @@ -47,7 +57,7 @@ in description = "Electrs Bitcoin Indexer"; script = "${pkgs.electrs}/bin/electrs"; - scriptArgs = "--conf=${conf}"; + scriptArgs = "--conf=${electrsConfig}"; after = [ "bitcoind-btc.service"