mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-24 00:29:43 -04:00
electrs
This commit is contained in:
parent
9cda3e5290
commit
3c33750722
5 changed files with 114 additions and 2 deletions
|
|
@ -9,7 +9,10 @@
|
||||||
forgejo.enable = true;
|
forgejo.enable = true;
|
||||||
frigate.enable = false;
|
frigate.enable = false;
|
||||||
immich.enable = true;
|
immich.enable = true;
|
||||||
bitcoin.enable = true;
|
bitcoin = {
|
||||||
|
enable = true;
|
||||||
|
electrum.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
backup = {
|
backup = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
server=1
|
server=1
|
||||||
|
|
||||||
rpcauth=btc:a5070cab96db882e8f63cb131ce3bbfa$20c7fd4653597b0c4ffc2c47b2d5d6751a6725ff644dd0d0ffcb9bebff96b913
|
rpccookiefile=/var/lib/bitcoin/.cookie
|
||||||
|
rpccookieperms=group
|
||||||
rpcbind=127.0.0.1
|
rpcbind=127.0.0.1
|
||||||
rpcallowip=127.0.0.1
|
rpcallowip=127.0.0.1
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,11 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Make data dir group-accessible so electrs/clightning can read cookie
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d ${home} 0750 btc bitcoin -"
|
||||||
|
];
|
||||||
|
|
||||||
systemd.services.bitcoind-mainnet = {
|
systemd.services.bitcoind-mainnet = {
|
||||||
wants = [ "tor.service" ];
|
wants = [ "tor.service" ];
|
||||||
after = [ "tor.service" ];
|
after = [ "tor.service" ];
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,14 @@
|
||||||
|
network = "bitcoin"
|
||||||
|
|
||||||
|
electrum_rpc_addr = "127.0.0.1:50001"
|
||||||
|
|
||||||
|
cookie_file = "/var/lib/bitcoin/.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/bitcoin"
|
||||||
89
src/system/modules/bitcoin/modules/electrum/default.nix
Normal file
89
src/system/modules/bitcoin/modules/electrum/default.nix
Normal file
|
|
@ -0,0 +1,89 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.modules.system.bitcoin.electrum;
|
||||||
|
home = "/var/lib/electrs";
|
||||||
|
|
||||||
|
btc = config.modules.system.bitcoin;
|
||||||
|
|
||||||
|
electrsConfig = pkgs.writeTextFile {
|
||||||
|
name = "config.toml";
|
||||||
|
text = builtins.readFile ./config/config.toml;
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{ options.modules.system.bitcoin.electrum = { enable = mkEnableOption "Electrs Server"; };
|
||||||
|
config = mkIf (cfg.enable && btc.enable) {
|
||||||
|
#TODO: Fix the failing overlay due to `cargoHash/cargoSha256`
|
||||||
|
#nixpkgs.overlays = [
|
||||||
|
# (final: prev: {
|
||||||
|
# electrs = prev.electrs.overrideAttrs (old: rec {
|
||||||
|
# pname = "electrs";
|
||||||
|
# version = "0.10.8";
|
||||||
|
# src = pkgs.fetchFromGitHub {
|
||||||
|
# owner = "romanz";
|
||||||
|
# repo = pname;
|
||||||
|
# rev = "v${version}";
|
||||||
|
# hash = "sha256-L26jzAn8vwnw9kFd6ciyYS/OLEFTbN8doNKy3P8qKRE=";
|
||||||
|
# };
|
||||||
|
# #cargoDeps = old.cargoDeps.overrideAttrs (const {
|
||||||
|
# # name = "electrs-${version}.tar.gz";
|
||||||
|
# # inherit src;
|
||||||
|
# # sha256 = "";
|
||||||
|
# #});
|
||||||
|
# cargoHash = "sha256-lBRcq73ri0HR3duo6Z8PdSjnC8okqmG5yWeHxH/LmcU=";
|
||||||
|
# });
|
||||||
|
# })
|
||||||
|
#];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
electrs
|
||||||
|
];
|
||||||
|
|
||||||
|
users = {
|
||||||
|
users = {
|
||||||
|
"electrs" = {
|
||||||
|
inherit home;
|
||||||
|
description = "Electrs system user";
|
||||||
|
isSystemUser = true;
|
||||||
|
group = "bitcoin";
|
||||||
|
createHome = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
groups = {
|
||||||
|
"bitcoin" = {
|
||||||
|
members = mkAfter [
|
||||||
|
"electrs"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
systemd.services.electrs = {
|
||||||
|
description = "Electrs Bitcoin Indexer";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
script = "${pkgs.electrs}/bin/electrs";
|
||||||
|
scriptArgs = "--conf=${electrsConfig}";
|
||||||
|
|
||||||
|
wants = [ "bitcoind-mainnet.service" ];
|
||||||
|
after = [
|
||||||
|
"bitcoind-mainnet.service"
|
||||||
|
"network.target"
|
||||||
|
];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
User = "electrs";
|
||||||
|
Group = "bitcoin";
|
||||||
|
|
||||||
|
Type = "simple";
|
||||||
|
KillMode = "process";
|
||||||
|
TimeoutSec = 60;
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = 60;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue