mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-24 00:29:43 -04:00
added electrum - electrs module
This commit is contained in:
parent
ca9066bfaa
commit
620b703570
4 changed files with 100 additions and 0 deletions
|
|
@ -11,6 +11,7 @@ let
|
||||||
in
|
in
|
||||||
{ options.modules.system.bitcoin = { enable = mkEnableOption "system.bitcoin"; };
|
{ options.modules.system.bitcoin = { enable = mkEnableOption "system.bitcoin"; };
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
imports = [ ./modules ];
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
(final: prev: {
|
(final: prev: {
|
||||||
bitcoind = prev.bitcoind.overrideAttrs (old: rec {
|
bitcoind = prev.bitcoind.overrideAttrs (old: rec {
|
||||||
|
|
|
||||||
5
src/system/modules/bitcoin/modules/default.nix
Normal file
5
src/system/modules/bitcoin/modules/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./electrum
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
{ home, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
daemonDir = /var/lib/bitcoin;
|
||||||
|
|
||||||
|
in
|
||||||
|
''
|
||||||
|
network = "bitcoin"
|
||||||
|
|
||||||
|
electrum_rpc_addr = "127.0.0.1:50001"
|
||||||
|
|
||||||
|
cookie-file = "${daemonDir}/.cookie"
|
||||||
|
|
||||||
|
db_dir = "${home}/db"
|
||||||
|
|
||||||
|
log_filters = "INFO"
|
||||||
|
timestamp = true
|
||||||
|
|
||||||
|
daemon-rpc-addr = "127.0.0.1:8332"
|
||||||
|
daemon-p2p-addr = "127.0.0.1:8333"
|
||||||
|
daemon-dir = "${daemonDir}"
|
||||||
|
''
|
||||||
72
src/system/modules/bitcoin/modules/electrum/default.nix
Normal file
72
src/system/modules/bitcoin/modules/electrum/default.nix
Normal file
|
|
@ -0,0 +1,72 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.system.bitcoin.electrum;
|
||||||
|
home = /var/lib/electrs;
|
||||||
|
|
||||||
|
btc = config.modules.system.bitcoin;
|
||||||
|
|
||||||
|
conf = pkgs.writeText "config.toml" (import ./config { inherit home; });
|
||||||
|
|
||||||
|
in
|
||||||
|
{ options.modules.system.bitcoin.electrum = { enable = mkEnableOption "bitcoin.electrum"; };
|
||||||
|
config = mkIf (cfg.enable && btc.enable) {
|
||||||
|
nixpkgs.overlays = [
|
||||||
|
(final: prev: {
|
||||||
|
electrs = prev.electrs.overrideAttrs (old: rec {
|
||||||
|
version = "0.10.4";
|
||||||
|
src = fetchFromGithub {
|
||||||
|
owner = old.owner;
|
||||||
|
repo = old.pname;
|
||||||
|
rev = "${version}";
|
||||||
|
hash = ''
|
||||||
|
sha256-0xw2532nmaxx9bjdpnnby03b83wc9zs8bv1wdfgv9q1phccqbkz1
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
electrs
|
||||||
|
];
|
||||||
|
|
||||||
|
users = {
|
||||||
|
users = {
|
||||||
|
"electrs" = {
|
||||||
|
inherit home;
|
||||||
|
description = "electrs system user";
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "bitcoin";
|
||||||
|
createHome = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
systemd.services.electrs = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Electrs Bitcoin Indexer";
|
||||||
|
After = [ "network.target" "bitcoind.service" ];
|
||||||
|
Requires = [ "bitcoind.service" ];
|
||||||
|
};
|
||||||
|
Service = {
|
||||||
|
ExecStartPre = "${pkgs.coreutils}/sleep 10";
|
||||||
|
ExecStart = "${pkgs.electrs}/bin/electrs --conf=${conf}";
|
||||||
|
|
||||||
|
User = "electrs";
|
||||||
|
Group = "bitcoin";
|
||||||
|
|
||||||
|
Type = "simple";
|
||||||
|
KillMode = "process";
|
||||||
|
TimeoutSec = 60;
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 60;
|
||||||
|
};
|
||||||
|
Install = {
|
||||||
|
WantedBy = [ "multi-user.target" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue