From 4d0f66fc18c5c36d57a0b3ac3dc0a0a95750b78d Mon Sep 17 00:00:00 2001 From: brymut Date: Tue, 27 May 2025 16:11:01 +0300 Subject: [PATCH 1/2] Add lnbits-v1 --- .env.development | 1 + docker-compose.yml | 30 +++++++++++++++++++++++++ docker/lnbits-v1/Dockerfile | 5 +++++ docker/lnbits-v1/data/.super_user | 1 + docker/lnbits-v1/data/database.sqlite3 | Bin 0 -> 102400 bytes 5 files changed, 37 insertions(+) create mode 100644 docker/lnbits-v1/Dockerfile create mode 100644 docker/lnbits-v1/data/.super_user create mode 100644 docker/lnbits-v1/data/database.sqlite3 diff --git a/.env.development b/.env.development index e5b5f8415..44deb631e 100644 --- a/.env.development +++ b/.env.development @@ -184,6 +184,7 @@ grpc_proxy=http://tor:7050/ # lnbits LNBITS_WEB_PORT=5001 +LNBITS_WEB_PORT_V1=5002 # CPU shares for each category CPU_SHARES_IMPORTANT=1024 diff --git a/docker-compose.yml b/docker-compose.yml index 35b6e232c..58836fd70 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -809,6 +809,36 @@ services: CONNECT: "localhost:${LNBITS_WEB_PORT}" TORDIR: "/app/.tor" cpu_shares: "${CPU_SHARES_LOW}" + lnbits-v1: + build: + context: ./docker/lnbits-v1 + container_name: lnbits-v1 + profiles: + - wallets + restart: unless-stopped + ports: + - "${LNBITS_WEB_PORT_V1}:5000" + depends_on: + tor: + condition: service_healthy + restart: true + lnd: + condition: service_healthy + restart: true + environment: + - LNBITS_ADMIN_UI=true + - LNBITS_BACKEND_WALLET_CLASS=LndWallet + - LND_GRPC_ENDPOINT=lnd + - LND_GRPC_PORT=10009 + - LND_GRPC_CERT=/app/.lnd/tls.cert + - LND_GRPC_MACAROON=/app/.lnd/data/chain/bitcoin/regtest/admin.macaroon + volumes: + - lnd:/app/.lnd + - tordata:/app/.tor + labels: + CONNECT: "localhost:${LNBITS_WEB_PORT_V1}" + TORDIR: "/app/.tor" + cpu_shares: "${CPU_SHARES_LOW}" dnsmasq: image: 4km3/dnsmasq:2.90-r3 profiles: diff --git a/docker/lnbits-v1/Dockerfile b/docker/lnbits-v1/Dockerfile new file mode 100644 index 000000000..f5e9805e8 --- /dev/null +++ b/docker/lnbits-v1/Dockerfile @@ -0,0 +1,5 @@ +FROM lnbits/lnbits:latest + + +COPY ["./data/database.sqlite3", "/app/data/database.sqlite3"] +COPY ["./data/.super_user", "/app/data/.super_user"] \ No newline at end of file diff --git a/docker/lnbits-v1/data/.super_user b/docker/lnbits-v1/data/.super_user new file mode 100644 index 000000000..1d7c4f33b --- /dev/null +++ b/docker/lnbits-v1/data/.super_user @@ -0,0 +1 @@ +e46288268b67457399a5fca81809573e \ No newline at end of file diff --git a/docker/lnbits-v1/data/database.sqlite3 b/docker/lnbits-v1/data/database.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..c45340ef773bd6f65eaf7a5ad82d20edd8965cbc GIT binary patch literal 102400 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 literal 0 HcmV?d00001 From b27ae19dbcd557f8d229822d7562b9aec92c9c45 Mon Sep 17 00:00:00 2001 From: k00b Date: Thu, 5 Jun 2025 18:59:44 -0500 Subject: [PATCH 2/2] use v1 in dev when specified --- wallets/lnbits/server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wallets/lnbits/server.js b/wallets/lnbits/server.js index 4382c6716..c22ce8ae9 100644 --- a/wallets/lnbits/server.js +++ b/wallets/lnbits/server.js @@ -38,7 +38,7 @@ export async function createInvoice ( if (process.env.NODE_ENV !== 'production' && hostname.startsWith('localhost:')) { // to make it possible to attach LNbits for receives during local dev - hostname = 'lnbits:5000' + hostname = hostname === `localhost:${process.env.LNBITS_WEB_PORT}` ? 'lnbits:5000' : 'lnbits-v1:5000' } let res