diff --git a/flake.lock b/flake.lock index 69b8601..9f96572 100644 --- a/flake.lock +++ b/flake.lock @@ -82,6 +82,50 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772408722, + "narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "hermes-agent": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": "nixpkgs_2", + "npm-lockfile-fix": "npm-lockfile-fix", + "pyproject-build-systems": "pyproject-build-systems", + "pyproject-nix": "pyproject-nix_2", + "uv2nix": "uv2nix_2" + }, + "locked": { + "lastModified": 1780067785, + "narHash": "sha256-MaYwJ4AaG6ac0FOQ73p8pXRk5ML/cjCxvElB124aMak=", + "owner": "NousResearch", + "repo": "hermes-agent", + "rev": "6928692cec3260b21e5574099c41034827c1c59e", + "type": "github" + }, + "original": { + "owner": "NousResearch", + "repo": "hermes-agent", + "type": "github" + } + }, "nix-fetcher-data": { "inputs": { "flake-parts": "flake-parts", @@ -135,11 +179,27 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1775811116, - "narHash": "sha256-t+HZK42pB6N+i5RGbuy7Xluez/VvWbembBdvzsc23Ss=", + "lastModified": 1775036866, + "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "54170c54449ea4d6725efd30d719c5e505f1c10e", + "rev": "6201e203d09599479a3b3450ed24fa81537ebc4e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1779796641, + "narHash": "sha256-ZsIrKmhp4vbBXoXXmR/tBXA/UCsAQiJL9vsgZEduhVY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "25f538306313eae3927264466c70d7001dcea1df", "type": "github" }, "original": { @@ -149,10 +209,120 @@ "type": "github" } }, + "npm-lockfile-fix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1775903712, + "narHash": "sha256-2GV79U6iVH4gKAPWYrxUReB0S41ty/Y3dBLquU8AlaA=", + "owner": "jeslie0", + "repo": "npm-lockfile-fix", + "rev": "c6093acb0c0548e0f9b8b3d82918823721930fe8", + "type": "github" + }, + "original": { + "owner": "jeslie0", + "repo": "npm-lockfile-fix", + "type": "github" + } + }, + "pyproject-build-systems": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ], + "pyproject-nix": "pyproject-nix", + "uv2nix": "uv2nix" + }, + "locked": { + "lastModified": 1772555609, + "narHash": "sha256-3BA3HnUvJSbHJAlJj6XSy0Jmu7RyP2gyB/0fL7XuEDo=", + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "rev": "c37f66a953535c394244888598947679af231863", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "build-system-pkgs", + "type": "github" + } + }, + "pyproject-nix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "pyproject-build-systems", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1769936401, + "narHash": "sha256-kwCOegKLZJM9v/e/7cqwg1p/YjjTAukKPqmxKnAZRgA=", + "owner": "nix-community", + "repo": "pyproject.nix", + "rev": "b0d513eeeebed6d45b4f2e874f9afba2021f7812", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "pyproject.nix", + "type": "github" + } + }, + "pyproject-nix_2": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1772865871, + "narHash": "sha256-/ZTSg97aouL0SlPHaokA4r3iuH9QzHVuWPACD2CUCFY=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "e537db02e72d553cea470976b9733581bcf5b3ed", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, + "pyproject-nix_3": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "uv2nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771518446, + "narHash": "sha256-nFJSfD89vWTu92KyuJWDoTQJuoDuddkJV3TlOl1cOic=", + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "rev": "eb204c6b3335698dec6c7fc1da0ebc3c6df05937", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "pyproject.nix", + "type": "github" + } + }, "root": { "inputs": { "checker": "checker", - "nixpkgs": "nixpkgs_2", + "hermes-agent": "hermes-agent", + "nixpkgs": "nixpkgs_3", "sops-nix": "sops-nix" } }, @@ -163,11 +333,11 @@ ] }, "locked": { - "lastModified": 1775971308, - "narHash": "sha256-VKp9bhVSm0bT6JWctFy06ocqxGGnWHi1NfoE90IgIcY=", + "lastModified": 1777944972, + "narHash": "sha256-VfGRo1qTBKOe3s2gOv8LSoA6Fk19PvBlwQ1ECN0Evn8=", "owner": "Mic92", "repo": "sops-nix", - "rev": "31ac5fe5d015f76b54058c69fcaebb66a55871a4", + "rev": "c591bf665727040c6cc5cb409079acb22dcce33c", "type": "github" }, "original": { @@ -175,6 +345,55 @@ "repo": "sops-nix", "type": "github" } + }, + "uv2nix": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "pyproject-build-systems", + "nixpkgs" + ], + "pyproject-nix": [ + "hermes-agent", + "pyproject-build-systems", + "pyproject-nix" + ] + }, + "locked": { + "lastModified": 1770770348, + "narHash": "sha256-A2GzkmzdYvdgmMEu5yxW+xhossP+txrYb7RuzRaqhlg=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "5d1b2cb4fe3158043fbafbbe2e46238abbc954b0", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } + }, + "uv2nix_2": { + "inputs": { + "nixpkgs": [ + "hermes-agent", + "nixpkgs" + ], + "pyproject-nix": "pyproject-nix_3" + }, + "locked": { + "lastModified": 1773039484, + "narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=", + "owner": "pyproject-nix", + "repo": "uv2nix", + "rev": "b68be7cfeacbed9a3fa38a2b5adc0cfb81d9bb1f", + "type": "github" + }, + "original": { + "owner": "pyproject-nix", + "repo": "uv2nix", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index ff8533c..fe5785a 100644 --- a/flake.nix +++ b/flake.nix @@ -30,6 +30,7 @@ ./modules/checker.nix hermes-agent.nixosModules.default ./modules/hermes-agent.nix + ./modules/lnd.nix ]; }; }; diff --git a/modules/bitcoin.nix b/modules/bitcoin.nix index f1a3e13..6bd74ac 100644 --- a/modules/bitcoin.nix +++ b/modules/bitcoin.nix @@ -29,12 +29,16 @@ whitelist=download@127.0.0.1 + rpcauth=lnd:62e0c50a38ad22a6a40099db6f50a82c$5a27c8999ee5222c4edc28c699737f23d978df8ad6e267e21242328d5d1e7426 rpccookiefile=/var/lib/bitcoind/.cookie rpccookieperms=group rpcbind=127.0.0.1 rpcbind=10.88.0.1 rpcallowip=127.0.0.1 rpcallowip=10.88.0.0/16 + + zmqpubrawblock=tcp://127.0.0.1:28332 + zmqpubrawtx=tcp://127.0.0.1:28333 ''; }; diff --git a/modules/lnd.nix b/modules/lnd.nix index 1ae6da3..24f070a 100644 --- a/modules/lnd.nix +++ b/modules/lnd.nix @@ -36,7 +36,6 @@ tlsextradomain=localhost [Bitcoin] - bitcoin.active=true bitcoin.mainnet=true bitcoin.node=bitcoind @@ -81,7 +80,8 @@ Group = "lnd"; Type = "simple"; - ExecStart = "${pkgs.lnd}/bin/lnd --configfile=${config.sops.templates."lnd.conf".path}"; + WorkingDirectory = "/var/lib/lnd"; + ExecStart = "${pkgs.lnd}/bin/lnd --lnddir=/var/lib/lnd --configfile=${config.sops.templates."lnd.conf".path}"; Restart = "on-failure"; RestartSec = "10s"; diff --git a/secrets/tobserver.yaml b/secrets/tobserver.yaml index 50f716c..b327147 100644 --- a/secrets/tobserver.yaml +++ b/secrets/tobserver.yaml @@ -5,7 +5,9 @@ nextcloud: admin-pass: ENC[AES256_GCM,data:3xufFHvcm5g5+jn+B4qxRljuWDqDXo1mLu4IlSuax7Cz+3ZoOuNXoCXoiaY=,iv:WaWeu/a45Vuz+HvO7m0dUlCGCexk4IX/ijURmb/7jPU=,tag:ytRjS89AmHiGOhKymViTrg==,type:str] checker: env: ENC[AES256_GCM,data:TkeIRm8CXS9AiFpOrMD04dX5L/kL1XAYwOavDwtAuaCsg8bhAsmI6L9rdHsVuMnL46EaUwG4mAgn6EK6kfiSzkzgZ63MKrhcwhD3B4ybMMjj1opIWvifKBY2+wJ9bLI1ygZtQToOgti5oWLtcCt7zlDx8RqXKbAYNq9j0SBDhZBiZK/m+YJPPHclxr8cn9TlKfEhW78sZ2fyH8V65vT1Rz8gVDARdaz3G12CO5jLVY0q5ucqXrS8YRsuYczMSI3aUcBwRyf2UESsjDBXqfg7OKsgabGqvEwIK+rlbvo1ylIWFJZGC80FEcn/dAIsxC8ew8vhHwDch+dlbgrdyUxktb0qNBJU+7HdyP9QZ+mfU2Y/FIvRbicZXFIVdTnwls9tt2p+uxJQkLCp7OTyZgDHTECDQBRmg5hAdrvyyJUZAUvbcFVYkK984kSNyELbGsZBz+SGnxbQLuQDYi98T6HbIk448pDaWy43QGiEZERcFfLAVHnhK8wYsw6ta4BJSf95t+Ka9zMDhR/j0v3mkTrvXpprnTTp727jUY8AM+dUfavETfi9VtrD9P73UZWkL/Wy4PezBGGhm/8l6PU8C+6cfKfKswLGkKW8tDzxVKgvAHiWcK3adyW1/wLdTOHP5XMgDxWEGc3EZRJ4hrw1cQRrVqkxHI9q8a2pmQZxi7l1u61V/EXBKQSSHGDX8pg1HFwGSkj4a39llz5auFk3QsWIntDFYIYpQKDXns2pH+A+PbTJEv+UfMvDQnMKMG99njn2r8KKXf88VWs64tCq/uylaslx3f/1CnVwTlr3REI=,iv:5nbRJpjNReztdAaTlHHjh7MH0PAN9eSSEEhE1Z8ynA4=,tag:9gYKrH/0g0bca/Q67LchFA==,type:str] -hermes-env: ENC[AES256_GCM,data:PYeLEaCuHWykxyet3L9+pq26SSGb+siQBwfZuxwsjiBa/FX/XlYj21hybnzmJPIWWDr/n7dWSzvjDHRzbuhaHphDQBSrLW++3G6ex40M5XlG9OYOI/+A22bwFFpX,iv:xZPvfAU0hpmKVrt9Pb5njG/bU67koxRDjpOMADe6dr4=,tag:lBcxczrm+lqCSQflR6Dt/w==,type:str] +hermes-env: ENC[AES256_GCM,data:WcN3pP4BIrMoKfehixAHZFTI2rk0js2mwi0m4+NsfgqamDH8IqHpbMJGhIg4zUmJBUlyz+4ZhjtNmvlxtj/i7UxIkPNq4qg95eK59gEM3npW9euRoX+BziKvsM6fFMRbWt60GaKigiI05z83M9I9/A8qbZC/PEWPfj6a5wlqHSVSe2qJjg5tGpthVhApaJ9ZmuTzhyHjs9zRvlkC9SFp9WsdyWWxNfChIKj8MySeAGs1YlDAGFVzsjX3+JlPVlCwPw==,iv:euK36Gk50/NQfjkspCP7tv3/a/gknzrDM21GUqVhEBY=,tag:jPF67Qa6e1VrY7byXKQw0w==,type:str] +bitcoin: + lnd-rpc-password: ENC[AES256_GCM,data:nVw7wetfIc2AdzDWYnt0MgdTWNabkyjA+f7yFqfpyMTnWwYTYbTfog/dyg==,iv:lvrA9yZNu4EFugaErHhOxnZ75/91SBeGqGSVnzqCXcE=,tag:6jiK0QD7islo45187KDe8Q==,type:str] sops: age: - recipient: age1qnudtkywppsdk6zn6jh9gra093w4mnf63m333hxsms9ys7elkpps3y008z @@ -26,7 +28,7 @@ sops: cVE5VG56cFAzT1dsRFN4cCtnVEJJdU0KSBWm4blGhnVlOJ3k7lh8aJVOEH8NfFOh EwU/4Up6zWYBoe2+GKiQf8imnVLSSxMR7dlNd06ttuFD4B5baqFRcA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-05-28T15:18:23Z" - mac: ENC[AES256_GCM,data:qeRbvcL2VtklIjjWd36apWzupYdFuUw3WRP3Jw6SAL6y+k+s3EA+i5p+A74sXJ1Ah2hrVJJrLfHIV/cbWQ4UM58QDOSxq41Icjwmn/hS0Ivf1mVY9HFmiYTcwZSB022IXTKPDxAKj03H0ikKfkpKQTiSbmhlYvyewhd9qL953nM=,iv:hF4CuzI2DDYHQd29p1kD+SiOOvtSMdoCacoapo6JT8U=,tag:zdL5VXVf3MvZkg9IDUomEQ==,type:str] + lastmodified: "2026-05-30T13:14:08Z" + mac: ENC[AES256_GCM,data:2uWcw95sT/S6j1v3gIzziMOS6SqZ63pKDvuNjjQ4rYfYEv0BjnZ/E9XyUY7hPVL1uE64G+8vnbbFTxlPAUBYmYfUxBne36Oi2fw0Fnd0C2rnMIDxDQu4szvwOb9WL31Rof/3nrxpnNoKRMBgWlU1fE/5ITr4S6GZuGmReEhKXfk=,iv:Bt4wHMCsGnJQT8cw8wZP2OP8wRrPfDZ/3wDYpXQ2dNc=,tag:cF181NJUd4ts8UtVdsGNpw==,type:str] unencrypted_suffix: _unencrypted version: 3.12.1