default.nix (3100B)
1 extra: 2 { config, lib, pkgs, ... }: 3 4 let 5 jb55pkgs = import <jb55pkgs> { inherit pkgs; }; 6 7 nostril = jb55pkgs.nostril; 8 9 nix-bitcoin = import (pkgs.fetchFromGitHub { 10 owner = "fort-nix"; 11 repo = "nix-bitcoin"; 12 rev = "v0.0.89"; 13 sha256 = "sha256-SMJW+QZt3iRuoezjE12sopBsdLHDihXe/RerLfRpqoI="; 14 }) { inherit pkgs; }; 15 16 plugins = ["summary"]; 17 18 mkPluginCfg = name: 19 "plugin=${builtins.getAttr name (nix-bitcoin.clightning-plugins)}/${name}.py"; 20 21 bitcoinDataDir = "/titan/bitcoin"; 22 23 base-bitcoin-conf = extra.private.bitcoin; 24 25 bcli = "${pkgs.bitcoind}/bin/bitcoin-cli --datadir=${bitcoinDataDir} --conf=${base-bitcoin-conf-file} --rpcuser=${extra.private.btc-user} --rpcpassword=${extra.private.btc-pass}"; 26 27 bitcoin-conf = '' 28 ${base-bitcoin-conf} 29 walletnotify=${walletemail} %s %w 30 ''; 31 32 base-bitcoin-conf-file = pkgs.writeText "bitcoin-base.conf" base-bitcoin-conf; 33 bitcoin-conf-file = pkgs.writeText "bitcoin.conf" bitcoin-conf; 34 35 dca = import ./dca.nix { 36 inherit pkgs bcli; 37 to = "jb55 ${extra.private.btc-supplier}"; 38 addr = extra.private.btc-supplier-addr; 39 }; 40 41 walletemail = import ./walletemail.nix { 42 inherit pkgs bcli nostril; 43 inherit (extra) private; 44 }; 45 46 spark-module = import ./modules/spark-wallet.nix nix-bitcoin.spark-wallet; 47 spark-port = 9962; 48 in 49 { 50 imports = [ spark-module ]; 51 52 services.spark-wallet.enable = false; 53 services.spark-wallet.address = extra.machine.ztip; 54 services.spark-wallet.port = spark-port; 55 services.spark-wallet.publicUrl = "http://wallet.jb55.com"; 56 57 services.nginx.httpConfig = '' 58 server { 59 listen 80; 60 listen 10.100.0.1:80; 61 listen 192.168.87.26:80; 62 63 server_name wallet.jb55.com; 64 65 location /core/ { 66 alias /var/www/lnlink-core/; 67 } 68 69 location /cln/ { 70 alias /var/www/btcmerchant/; 71 } 72 73 location / { 74 proxy_pass http://127.0.0.1:9962; 75 76 proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; 77 proxy_redirect off; 78 proxy_buffering off; 79 proxy_set_header Host $host; 80 proxy_set_header X-Real-IP $remote_addr; 81 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 82 } 83 } 84 85 ''; 86 87 services.bitcoind = { 88 mainnet = { 89 enable = if extra.is-minimal then false else true; 90 dataDir = bitcoinDataDir; 91 configFile = bitcoin-conf-file; 92 user = "jb55"; 93 group = "users"; 94 }; 95 }; 96 97 #services.clightning.networks = { 98 # mainnet = { 99 # dataDir = "/home/jb55/.lightning-bitcoin"; 100 101 # config = '' 102 # bitcoin-rpcuser=rpcuser 103 # bitcoin-rpcpassword=rpcpass 104 # bitcoin-rpcconnect=127.0.0.1 105 # bitcoin-rpcport=8332 106 # fee-per-satoshi=900 107 # bind-addr=0.0.0.0:9735 108 # announce-addr=24.84.152.187:9735 109 # network=bitcoin 110 # alias=jb55.com 111 # rgb=ff0000 112 # proxy=127.0.0.1:9050 113 # experimental-offers 114 # ${lib.concatStringsSep "\n" (map mkPluginCfg plugins)} 115 # ''; 116 # }; 117 #}; 118 }