Merge pull request #92 from naturallaw777/copilot/add-sparrow-bisq-integration
[WIP] Add NixOS module for Sparrow Wallet and Bisq 1 integration
This commit is contained in:
@@ -59,6 +59,14 @@ let
|
|||||||
{ label = "Connection URL"; file = "/var/lib/secrets/zeus-connect-url"; qrcode = true; }
|
{ label = "Connection URL"; file = "/var/lib/secrets/zeus-connect-url"; qrcode = true; }
|
||||||
{ label = "How to Connect"; value = "1. Download Zeus from App Store or Google Play\n2. Open Zeus → Scan Node Config\n3. Scan the QR code above or paste the Connection URL"; }
|
{ label = "How to Connect"; value = "1. Download Zeus from App Store or Google Play\n2. Open Zeus → Scan Node Config\n3. Scan the QR code above or paste the Connection URL"; }
|
||||||
]; }
|
]; }
|
||||||
|
{ name = "Sparrow Auto-Connect"; unit = "sparrow-autoconnect.service"; type = "system"; icon = "sparrow"; enabled = cfg.services.bitcoin; category = "bitcoin-apps"; credentials = [
|
||||||
|
{ label = "Server"; value = "tcp://127.0.0.1:50001 (Electrs)"; }
|
||||||
|
{ label = "Status"; value = "Auto-configured on first boot"; }
|
||||||
|
]; }
|
||||||
|
{ name = "Bisq Auto-Connect"; unit = "bisq-autoconnect.service"; type = "system"; icon = "bisq"; enabled = cfg.services.bitcoin; category = "bitcoin-apps"; credentials = [
|
||||||
|
{ label = "Node"; value = "127.0.0.1:8333 (Bitcoin Core)"; }
|
||||||
|
{ label = "Status"; value = "Auto-configured on first boot"; }
|
||||||
|
]; }
|
||||||
{ name = "Mempool"; unit = "mempool.service"; type = "system"; icon = "mempool"; enabled = cfg.features.mempool; category = "bitcoin-apps"; credentials = [
|
{ name = "Mempool"; unit = "mempool.service"; type = "system"; icon = "mempool"; enabled = cfg.features.mempool; category = "bitcoin-apps"; credentials = [
|
||||||
{ label = "Tor Access"; file = "/var/lib/tor/onion/mempool-frontend/hostname"; prefix = "http://"; }
|
{ label = "Tor Access"; file = "/var/lib/tor/onion/mempool-frontend/hostname"; prefix = "http://"; }
|
||||||
{ label = "Local Network"; file = "/var/lib/secrets/internal-ip"; prefix = "http://"; suffix = ":60847"; }
|
{ label = "Local Network"; file = "/var/lib/secrets/internal-ip"; prefix = "http://"; suffix = ":60847"; }
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
./vaultwarden.nix
|
./vaultwarden.nix
|
||||||
./bitcoinecosystem.nix
|
./bitcoinecosystem.nix
|
||||||
|
./wallet-autoconnect.nix
|
||||||
|
|
||||||
# ── Features (default OFF — enable in custom.nix) ─────────
|
# ── Features (default OFF — enable in custom.nix) ─────────
|
||||||
./haven.nix
|
./haven.nix
|
||||||
|
|||||||
83
modules/wallet-autoconnect.nix
Normal file
83
modules/wallet-autoconnect.nix
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
lib.mkIf config.sovran_systemsOS.services.bitcoin {
|
||||||
|
|
||||||
|
# ── Sparrow Wallet Auto-Connect ─────────────────────────────
|
||||||
|
systemd.services.sparrow-autoconnect = {
|
||||||
|
description = "Auto-configure Sparrow Wallet to use local Electrs node";
|
||||||
|
after = [ "electrs.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
path = [ pkgs.coreutils pkgs.iproute2 ];
|
||||||
|
script = ''
|
||||||
|
CONFIG_FILE="/home/free/.sparrow/config"
|
||||||
|
|
||||||
|
if [ -f "$CONFIG_FILE" ]; then
|
||||||
|
echo "Sparrow config already exists, skipping"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Wait for Electrs to be ready (up to 30 attempts)
|
||||||
|
ATTEMPTS=0
|
||||||
|
until ss -ltn 2>/dev/null | grep -q ':50001' || [ "$ATTEMPTS" -ge 30 ]; do
|
||||||
|
ATTEMPTS=$((ATTEMPTS + 1))
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir -p /home/free/.sparrow
|
||||||
|
|
||||||
|
cat > "$CONFIG_FILE" << 'EOF'
|
||||||
|
{
|
||||||
|
"serverType": "ELECTRUM_SERVER",
|
||||||
|
"electrumServer": "tcp://127.0.0.1:50001",
|
||||||
|
"useProxy": false
|
||||||
|
}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chown -R free:users /home/free/.sparrow
|
||||||
|
echo "Sparrow auto-configured to use local Electrs node"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# ── Bisq 1 Auto-Connect ─────────────────────────────────────
|
||||||
|
systemd.services.bisq-autoconnect = {
|
||||||
|
description = "Auto-configure Bisq to use local Bitcoin node";
|
||||||
|
after = [ "bitcoind.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
path = [ pkgs.coreutils pkgs.iproute2 ];
|
||||||
|
script = ''
|
||||||
|
BISQ_CONF="/home/free/.local/share/Bisq/bisq.properties"
|
||||||
|
|
||||||
|
if [ -f "$BISQ_CONF" ]; then
|
||||||
|
echo "Bisq config already exists, skipping"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Wait for bitcoind RPC to be ready (up to 30 attempts)
|
||||||
|
ATTEMPTS=0
|
||||||
|
until ss -ltn 2>/dev/null | grep -q ':8333' || [ "$ATTEMPTS" -ge 30 ]; do
|
||||||
|
ATTEMPTS=$((ATTEMPTS + 1))
|
||||||
|
sleep 2
|
||||||
|
done
|
||||||
|
|
||||||
|
mkdir -p /home/free/.local/share/Bisq
|
||||||
|
|
||||||
|
cat > "$BISQ_CONF" << 'EOF'
|
||||||
|
btcNodes=127.0.0.1:8333
|
||||||
|
useTorForBtc=true
|
||||||
|
useCustomBtcNodes=true
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chown -R free:users /home/free/.local/share/Bisq
|
||||||
|
echo "Bisq auto-configured to use local Bitcoin node"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user