mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-24 08:39:42 -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
|
||||
{ options.modules.system.bitcoin = { enable = mkEnableOption "system.bitcoin"; };
|
||||
config = mkIf cfg.enable {
|
||||
imports = [ ./modules ];
|
||||
nixpkgs.overlays = [
|
||||
(final: prev: {
|
||||
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