From 6c4eeaab95c2e8babf484e7dd8a6f5a300a40dcd Mon Sep 17 00:00:00 2001 From: polarDefender Date: Tue, 23 Apr 2024 19:55:27 +0200 Subject: [PATCH 01/71] added web view --- src/auth.ts | 4 + static/LightningPub.png | Bin 0 -> 3369 bytes static/connect.html | 47 +++++++++++ static/index.html | 49 ++++++++++++ static/pub_logo.png | Bin 0 -> 14937 bytes static/script.js | 10 +++ static/styles.css | 168 ++++++++++++++++++++++++++++++++++++++++ 7 files changed, 278 insertions(+) create mode 100644 static/LightningPub.png create mode 100644 static/connect.html create mode 100644 static/index.html create mode 100644 static/pub_logo.png create mode 100644 static/script.js create mode 100644 static/styles.css diff --git a/src/auth.ts b/src/auth.ts index febe1e5f..e98e1652 100644 --- a/src/auth.ts +++ b/src/auth.ts @@ -1,11 +1,15 @@ +import express from 'express'; +import path from 'path'; import { ServerOptions } from "../proto/autogenerated/ts/express_server"; import { AdminContext, MetricsContext } from "../proto/autogenerated/ts/types"; import Main from './services/main' import { getLogger } from './services/helpers/logger.js' + const serverOptions = (mainHandler: Main): ServerOptions => { const log = getLogger({}) return { logger: { log, error: err => log("ERROR", err) }, + staticFiles: path.resolve('static'), AdminAuthGuard: adminAuth, MetricsAuthGuard: metricsAuth, AppAuthGuard: async (authHeader) => { return { app_id: mainHandler.applicationManager.DecodeAppToken(stripBearer(authHeader)) } }, diff --git a/static/LightningPub.png b/static/LightningPub.png new file mode 100644 index 0000000000000000000000000000000000000000..1cbc35de1f30c44cda6e5ae49f7effa1500d6d6c GIT binary patch literal 3369 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 O1B0ilpUXO@geCxruwCf@ literal 0 HcmV?d00001 diff --git a/static/connect.html b/static/connect.html new file mode 100644 index 00000000..9e6a60e5 --- /dev/null +++ b/static/connect.html @@ -0,0 +1,47 @@ + + + + + + + + + + + Lightning.Pub + + + +
+ Lightning Pub logo + Lightning Pub logo +
+ +
+
+

Connect

+

To access the dashboard, use ShockWallet and tap the logo 3 times.

+

Scan the QR with ShockWallet to insert the connection details.

+
+ +
+ +
+
+

strfry.shock.network
npub123abcdefghhhhhhhhhhhhhhh


+

Note: Code contains a one-time pairing secret.

+
+ +
+ + +
+ + + + + + + \ No newline at end of file diff --git a/static/index.html b/static/index.html new file mode 100644 index 00000000..54674617 --- /dev/null +++ b/static/index.html @@ -0,0 +1,49 @@ + + + + + + + + + + + Lightning.Pub + + + +
+ Lightning Pub logo + Lightning Pub logo +
+ +
+
+

Setup

+

To manage your Pub, you will connect a via remote dashboard.

+

Confirm a few things to generate a connection string:

+
+ +
+ +
+

Use default managed relay,
1000 sats per month paid automatically after grace period.

+
+ + +
+

Or, enter a custom relay:

+


+ +

Need Help?

+
+ +
+ + +
+ + \ No newline at end of file diff --git a/static/pub_logo.png b/static/pub_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..36cc43b4e6dc07f88eeb587f2e6adb81907a6324 GIT binary patch literal 14937 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%0DIeEoa6}C!XbFK1 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 pVjubd@img:nth-child(1){ + width: 30px; + height: auto; + } + + header>img:nth-child(2){ + width: auto; + height: 26px; + } +} + +input[type="text"] { + background-color: transparent; + padding: 7px 10px; + border: 1px solid #c740c7; + border-radius: 5px; + font-size: 14px; + color: #999999; + text-align: center; + box-shadow: 0px 0px 2px rgba(0,0,0,1); +} + +button { + background-color: transparent; + padding: 10px 55px; + font-size: 20px; + color: var(--color); + text-align: center; + box-shadow: 0px 0px 2px rgba(0,0,0,1); + background: linear-gradient(var(--background-color), var(--background-color)) padding-box, var(--gradient) border-box; + border-radius: 5px; + border: 1px solid transparent; +} + + +h2 { + font-size: var(--font-size-h2); + font-weight: 400; +} + +p { + font-size: var(--font-size-p); +} + +a { + color: var(--color); + text-decoration: none; +} + +.text-gray { + color: #a3a3a3; + margin-block-end: 5px; +} + +/* Hide the default checkbox */ +.checkbox input[type="checkbox"] { + display: none; +} + +/* Create a new box */ +.checkbox label { + position: relative; +} + +.checkbox label::before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + margin-right: 10px; + background-color: transparent; + border: 1px solid #a3a3a3; + border-radius: 5px; +} + +/* Display a checkmark when the checkbox is checked */ +.checkbox input[type="checkbox"]:checked + label::after { + content: "✔"; + color: #a012c7; + font-size: 20px; + position: absolute; + left: 1px; + top: -11px; + width: 20px; + height: 20px; + text-align: center; +} + +.line { + margin-block: 30px; + background: var(--gradient); + width: 347px; + height: 2px; + margin-inline: auto; +} + +.marked { + color: var(--color-marked); +} + +.linked { + color: var(--color-linked); +} + +.setup-footer>p { + line-height: 4px; +} + +.setup-header>h2 { + margin-block-start: 20px; +} + +#qrcode { + display: flex; + margin: auto; + justify-content: center; + margin-block-start: 40px; + margin-block-end: 15px; +} From 98dd2705b476dd7f0579cd2e76b23130cfb0009d Mon Sep 17 00:00:00 2001 From: polarDefender Date: Mon, 6 May 2024 03:11:19 -0700 Subject: [PATCH 02/71] added docker file --- .dockerignore | 4 ++++ Dockerfile | 11 +++++++++++ 2 files changed, 15 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..45ce9d45 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.git +.github +build +node_modules diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..ae743c04 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM node:latest + +WORKDIR /app + +COPY package*.json /app + +RUN npm i + +COPY . /app + +CMD [ "npm", "start" ] From 2abd354134efcf6bcecaa1b87c8dc48ed00aa780 Mon Sep 17 00:00:00 2001 From: polarDefender Date: Mon, 6 May 2024 03:19:16 -0700 Subject: [PATCH 03/71] added umbrel-files --- lightning-pub/docker-compose.yml | 22 ++++++++++++++++++ lightning-pub/umbrel-app.yml | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 lightning-pub/docker-compose.yml create mode 100644 lightning-pub/umbrel-app.yml diff --git a/lightning-pub/docker-compose.yml b/lightning-pub/docker-compose.yml new file mode 100644 index 00000000..82c87720 --- /dev/null +++ b/lightning-pub/docker-compose.yml @@ -0,0 +1,22 @@ +version: "3.7" +services: + app_proxy: + environment: + APP_HOST: lightning-pub_server_1 + APP_PORT: 8090 + + server: + image: bixie/lightning-pub:latest@sha256:9eac671645d31d1caa4c99b354d174b49d0c258486503994515aee35f481f847 + volumes: + - "${APP_DATA_DIR}/data:/data" + - "${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro" + environment: + LN_BACKEND_TYPE: "LND" + LND_ADDRESS: $APP_LIGHTNING_NODE_IP:$APP_LIGHTNING_NODE_GRPC_PORT + LND_CERT_PATH: "/lnd/tls.cert" + LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon" + DATABASE_FILE: "/data/db.sqlite" + METRICS_DATABASE_FILE: "/data/metrics.sqlite" + PORT: 8090 + restart: on-failure + stop_grace_period: 1m diff --git a/lightning-pub/umbrel-app.yml b/lightning-pub/umbrel-app.yml new file mode 100644 index 00000000..f1dc7365 --- /dev/null +++ b/lightning-pub/umbrel-app.yml @@ -0,0 +1,38 @@ + manifestVersion: 1 +id: lightning-pub +category: finance +name: Lightning Pub +version: "3.3.0" +tagline: Simple, database-free blockchain explorer +description: >- + BTC RPC Explorer is a full-featured, self-hosted explorer for the + Bitcoin blockchain. With this explorer, you can explore not just the + blockchain database, but also explore the functional capabilities of your + Umbrel. + + It comes with a network summary dashboard, detailed view of blocks, transactions, addresses, along with analysis tools for viewing stats on miner activity, mempool summary, with fee, size, and age breakdowns. You can also search by transaction ID, block hash/height, and addresses. + + It's time to appreciate the "fullness" of your node. +releaseNotes: >- + Dark mode is finally here! Easily switch between your preferred mode + in one click. + + This version also includes lots of minor styling improvements, better + error handling, and several bugfixes. +developer: Dan Janosik +website: https://explorer.btc21.org +dependencies: + - bitcoin + - lightning +repo: https://github.com/janoside/btc-rpc-explorer +support: https://github.com/janoside/btc-rpc-explorer/discussions +port: 8090 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: Umbrel +submission: https://github.com/getumbrel/umbrel/pull/334 \ No newline at end of file From d2d2926dfc8fdd2f58848c932b8a0b2e9408ed6b Mon Sep 17 00:00:00 2001 From: polarDefender Date: Tue, 7 May 2024 08:05:00 -0700 Subject: [PATCH 04/71] added readme file for test umberl --- README.umbrel.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 README.umbrel.md diff --git a/README.umbrel.md b/README.umbrel.md new file mode 100644 index 00000000..6d532ef5 --- /dev/null +++ b/README.umbrel.md @@ -0,0 +1,54 @@ +### Install multipass on the machine (Linux or MacOS) +```sh +snap install multipass +``` + +### Clone the umbrel from the repo and run it on the machine + +https://github.com/getumbrel/umbrel + +```sh +cd ~ +git clone https://github.com/getumbrel/umbrel +cd umbrel +npm run vm:provision +``` + +### Install Bitcoin Node and Lightning Node on the UmbrelOS +Please input the http://umbrel-dev.local/ on your browser. + +You can install following two apps on the app store. +- Bitcoin Node +- LIghtning Node + + +### Transfer the `lightning-pub` folder into the Umbrel virtual machine +```sh +multipass transfer -r umbrel-dev:/home/ubuntu/umbrel/packages/umbreld/data/app-stores/getumbrel-umbrel-apps-github-53f74447/ +``` + +You can get the path of lignthing-pub with following commands +```sh +cd +cd lightning-pub +pwd +``` + +### Install the package with docker-compose.yml and umbrel-app.yml files +Just check that following 2 files exists on the folder you transferred into Umbrel. + +And then, + +```sh +cd ~ +cd umbrel +npm run vm:trpc apps.install.mutate -- --appId lightning-pub +``` + +### Open the app on the app store + +You can run the app on the Umbrel. + +To check if it's running, go to the following url on the browser. + +http://umbrel-dev.local:8090/ \ No newline at end of file From a836df5d594b291ceba695a356399325069b7c5b Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Wed, 8 May 2024 16:42:31 -0400 Subject: [PATCH 05/71] ffs --- {lightning-pub => Umbrel}/docker-compose.yml | 8 ++--- Umbrel/umbrel-app.yml | 36 +++++++++++++++++++ lightning-pub/umbrel-app.yml | 38 -------------------- tsconfig.json | 2 +- 4 files changed, 41 insertions(+), 43 deletions(-) rename {lightning-pub => Umbrel}/docker-compose.yml (74%) create mode 100644 Umbrel/umbrel-app.yml delete mode 100644 lightning-pub/umbrel-app.yml diff --git a/lightning-pub/docker-compose.yml b/Umbrel/docker-compose.yml similarity index 74% rename from lightning-pub/docker-compose.yml rename to Umbrel/docker-compose.yml index 82c87720..66556f1e 100644 --- a/lightning-pub/docker-compose.yml +++ b/Umbrel/docker-compose.yml @@ -2,11 +2,11 @@ version: "3.7" services: app_proxy: environment: - APP_HOST: lightning-pub_server_1 - APP_PORT: 8090 + APP_HOST: lightning-pub + APP_PORT: 1776 server: - image: bixie/lightning-pub:latest@sha256:9eac671645d31d1caa4c99b354d174b49d0c258486503994515aee35f481f847 + image: volumes: - "${APP_DATA_DIR}/data:/data" - "${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro" @@ -17,6 +17,6 @@ services: LND_MACAROON_PATH: "/lnd/data/chain/bitcoin/${APP_BITCOIN_NETWORK}/admin.macaroon" DATABASE_FILE: "/data/db.sqlite" METRICS_DATABASE_FILE: "/data/metrics.sqlite" - PORT: 8090 + PORT: 1776 restart: on-failure stop_grace_period: 1m diff --git a/Umbrel/umbrel-app.yml b/Umbrel/umbrel-app.yml new file mode 100644 index 00000000..5bb9ee2e --- /dev/null +++ b/Umbrel/umbrel-app.yml @@ -0,0 +1,36 @@ + manifestVersion: 1 +id: lightning-pub +category: finance +name: Lightning.Pub +version: "1.0.0" +tagline: lightning, nostr, accounts, lnurl, web +description: >- +"Pub" is a Nostr-native account system designed +to make running Lightning infrastructure for your friends/family/customers +easier than previously thought possible. + + Being Nostr-native eliminates the complexity of configuring your node like a server by using commodity Nostr relays. +These relays, unlike LNURL proxies, are trustless by nature of Nostr's own encryption spec (NIP44). + + Support for optional services are integrated into Pub for operators seeking backward compatibility with legacy LNURLs and Lightning Addresses. + + By solving the networking and programability hurdles, Pub provides Lightning with a 3rd Layer that enables node-runners and + Uncle Jims to more easily bring their personal network into Bitcoin's permissionless economy. In doing so, Pub runners + can keep the Lightning Network decentralized, with custodial scaling that is free of fiat rails, large banks, + and other forms of high-time-preference shitcoinery. +developer: shocknet +website: https://shock.network +dependencies: + - lightning +repo: https://github.com/shocknet/Lightning.Pub +support: https://github.com/shocknet/Lightning.Pub/discussions +port: 1776 +gallery: + - 1.jpg + - 2.jpg + - 3.jpg +path: "" +defaultUsername: "" +defaultPassword: "" +submitter: shocknet +submission: https://github.com/getumbrel/umbrel/pull/334 \ No newline at end of file diff --git a/lightning-pub/umbrel-app.yml b/lightning-pub/umbrel-app.yml deleted file mode 100644 index f1dc7365..00000000 --- a/lightning-pub/umbrel-app.yml +++ /dev/null @@ -1,38 +0,0 @@ - manifestVersion: 1 -id: lightning-pub -category: finance -name: Lightning Pub -version: "3.3.0" -tagline: Simple, database-free blockchain explorer -description: >- - BTC RPC Explorer is a full-featured, self-hosted explorer for the - Bitcoin blockchain. With this explorer, you can explore not just the - blockchain database, but also explore the functional capabilities of your - Umbrel. - - It comes with a network summary dashboard, detailed view of blocks, transactions, addresses, along with analysis tools for viewing stats on miner activity, mempool summary, with fee, size, and age breakdowns. You can also search by transaction ID, block hash/height, and addresses. - - It's time to appreciate the "fullness" of your node. -releaseNotes: >- - Dark mode is finally here! Easily switch between your preferred mode - in one click. - - This version also includes lots of minor styling improvements, better - error handling, and several bugfixes. -developer: Dan Janosik -website: https://explorer.btc21.org -dependencies: - - bitcoin - - lightning -repo: https://github.com/janoside/btc-rpc-explorer -support: https://github.com/janoside/btc-rpc-explorer/discussions -port: 8090 -gallery: - - 1.jpg - - 2.jpg - - 3.jpg -path: "" -defaultUsername: "" -defaultPassword: "" -submitter: Umbrel -submission: https://github.com/getumbrel/umbrel/pull/334 \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index d6a10f46..1bff3bae 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -68,4 +68,4 @@ "exclude": [ "./tests" ], -} \ No newline at end of file +} From 0c1d9166bebd0063fcb85dbb64d303e08098c9b1 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Wed, 8 May 2024 16:44:19 -0400 Subject: [PATCH 06/71] ffs --- README.umbrel.md | 54 ------------------------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 README.umbrel.md diff --git a/README.umbrel.md b/README.umbrel.md deleted file mode 100644 index 6d532ef5..00000000 --- a/README.umbrel.md +++ /dev/null @@ -1,54 +0,0 @@ -### Install multipass on the machine (Linux or MacOS) -```sh -snap install multipass -``` - -### Clone the umbrel from the repo and run it on the machine - -https://github.com/getumbrel/umbrel - -```sh -cd ~ -git clone https://github.com/getumbrel/umbrel -cd umbrel -npm run vm:provision -``` - -### Install Bitcoin Node and Lightning Node on the UmbrelOS -Please input the http://umbrel-dev.local/ on your browser. - -You can install following two apps on the app store. -- Bitcoin Node -- LIghtning Node - - -### Transfer the `lightning-pub` folder into the Umbrel virtual machine -```sh -multipass transfer -r umbrel-dev:/home/ubuntu/umbrel/packages/umbreld/data/app-stores/getumbrel-umbrel-apps-github-53f74447/ -``` - -You can get the path of lignthing-pub with following commands -```sh -cd -cd lightning-pub -pwd -``` - -### Install the package with docker-compose.yml and umbrel-app.yml files -Just check that following 2 files exists on the folder you transferred into Umbrel. - -And then, - -```sh -cd ~ -cd umbrel -npm run vm:trpc apps.install.mutate -- --appId lightning-pub -``` - -### Open the app on the app store - -You can run the app on the Umbrel. - -To check if it's running, go to the following url on the browser. - -http://umbrel-dev.local:8090/ \ No newline at end of file From a540ba674aec0d0efe59ccc77e9337f14cfcd12e Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Wed, 8 May 2024 16:47:22 -0400 Subject: [PATCH 07/71] ver --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ae743c04..935ab8ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:latest +FROM node:18 WORKDIR /app From b4628eae80508df9fa414d6e709a7f001ee90e4c Mon Sep 17 00:00:00 2001 From: polarDefender Date: Thu, 16 May 2024 11:47:56 -0700 Subject: [PATCH 08/71] add push.yml for iamge push to github container registry --- .github/workflows/push.yml | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/push.yml diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml new file mode 100644 index 00000000..5ee85b5b --- /dev/null +++ b/.github/workflows/push.yml @@ -0,0 +1,47 @@ + +name: Create and publish a Docker image + +on: + push: + branches: ['umbrel-works'] + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + attestations: write + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + id: push + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + From e570167a5e8461b0e534e84f767a1a8aaf1ca565 Mon Sep 17 00:00:00 2001 From: polarDefender Date: Thu, 16 May 2024 11:59:18 -0700 Subject: [PATCH 09/71] update docker compose file --- Umbrel/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Umbrel/docker-compose.yml b/Umbrel/docker-compose.yml index 66556f1e..7c569e5c 100644 --- a/Umbrel/docker-compose.yml +++ b/Umbrel/docker-compose.yml @@ -6,7 +6,7 @@ services: APP_PORT: 1776 server: - image: + image: ghcr.io/shocknet/lightning.pub:umbrel-works volumes: - "${APP_DATA_DIR}/data:/data" - "${APP_LIGHTNING_NODE_DATA_DIR}:/lnd:ro" From c96c340a43c7b73fb7e66868fd7013ad98ad9bd3 Mon Sep 17 00:00:00 2001 From: polarDefender Date: Fri, 17 May 2024 13:29:33 -0700 Subject: [PATCH 10/71] added web pages --- static/backup.html | 100 ++++++++++++ static/connect.html | 92 +++++++---- static/css/backup.css | 18 +++ static/css/liquidity.css | 27 ++++ static/css/seed.css | 35 +++++ static/css/styles.css | 244 ++++++++++++++++++++++++++++++ static/{ => img}/LightningPub.png | Bin static/img/back.svg | 1 + static/img/close.svg | 1 + static/{ => img}/pub_logo.png | Bin static/img/question.svg | 1 + static/index.html | 113 +++++++++----- static/js/backup.js | 11 ++ static/js/liquidity.js | 9 ++ static/{ => js}/script.js | 6 +- static/js/seed.js | 15 ++ static/liquidity.html | 93 ++++++++++++ static/seed.html | 181 ++++++++++++++++++++++ static/styles.css | 168 -------------------- 19 files changed, 877 insertions(+), 238 deletions(-) create mode 100644 static/backup.html create mode 100644 static/css/backup.css create mode 100644 static/css/liquidity.css create mode 100644 static/css/seed.css create mode 100644 static/css/styles.css rename static/{ => img}/LightningPub.png (100%) create mode 100644 static/img/back.svg create mode 100644 static/img/close.svg rename static/{ => img}/pub_logo.png (100%) create mode 100644 static/img/question.svg create mode 100644 static/js/backup.js create mode 100644 static/js/liquidity.js rename static/{ => js}/script.js (66%) create mode 100644 static/js/seed.js create mode 100644 static/liquidity.html create mode 100644 static/seed.html delete mode 100644 static/styles.css diff --git a/static/backup.html b/static/backup.html new file mode 100644 index 00000000..9f09e81e --- /dev/null +++ b/static/backup.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + Lightning.Pub + + + + +
+ Lightning Pub logo + Lightning Pub logo +
+ +
+
+ +

Backup

+

+ It looks like this is a + new node, it's important + establish backups. +

+
+ +
+ +
+
+
+ In addition to your seed phrase, you'll need a channel backup to +
+
+ recover funds should your node experience a hardware failure. +
+
+
+ It's important always to have the latest version of this backup, +
+
+ fortunately they're small enough to be cached on the Nostr relay. +
+
+
+ If you did not choose the developers relay, be sure your relay has + adequate storage policies to hold NIP78 events. +
+
+
+ +
+ +
+
+ +
+
+ +
+ +
+

Need Help?

+
+ + + + diff --git a/static/connect.html b/static/connect.html index 9e6a60e5..a7048a81 100644 --- a/static/connect.html +++ b/static/connect.html @@ -1,47 +1,77 @@ - - + + - - - - + + + + Lightning.Pub - - - + + + +
- Lightning Pub logo - Lightning Pub logo + Lightning Pub logo + Lightning Pub logo
-
-

Connect

-

To access the dashboard, use ShockWallet and tap the logo 3 times.

-

Scan the QR with ShockWallet to insert the connection details.

-
- -
+
+ +

Connect

+

+ Who's the Nostr user that owns this node, can recover the backups, and + connect to manage it? +

+
-
-
-

strfry.shock.network
npub123abcdefghhhhhhhhhhhhhhh


-

Note: Code contains a one-time pairing secret.

-
+
-
+
+
+

+ strfry.shock.network
npub123abcdefghhhhhhhhhhhhhhh +

+
+

Note: Code contains a one-time pairing secret.

+
- +
- +
+ +
+

Need Help?

+
+ - - - \ No newline at end of file + + + diff --git a/static/css/backup.css b/static/css/backup.css new file mode 100644 index 00000000..08f98a8b --- /dev/null +++ b/static/css/backup.css @@ -0,0 +1,18 @@ +.description { + font-size: 14px; + color: #a3a3a3; + text-decoration: none solid rgb(163, 163, 163); + text-align: center; + text-shadow: 0px 0px 2px rgba(0, 0, 0, 1); +} + +.warning-text { + font-size: 14px; + color: #c434e0; + font-style: italic; + text-decoration: none solid rgb(196, 52, 224); + text-align: center; + text-shadow: 0px 0px 2px rgba(0, 0, 0, 1); + margin-top: 16px; +} + diff --git a/static/css/liquidity.css b/static/css/liquidity.css new file mode 100644 index 00000000..495f1f93 --- /dev/null +++ b/static/css/liquidity.css @@ -0,0 +1,27 @@ +.question-box { + display: inline-block; + position: relative; + top: -8px; + left: -4px; +} + +.question-box .question-content { + display: none; + position: absolute; + min-width: 280px; + background-color: var(--background-color); + color: #a3a3a3; + padding: 12px; + border: 2px solid #c423e0; + border-radius: 4px; + font-size: 14px; + transform: translate(-50%, -50%); + padding-top: 28px; + z-index: 200; +} + +.question-content .close-button { + position: absolute; + top: 4px; + right: 0; +} diff --git a/static/css/seed.css b/static/css/seed.css new file mode 100644 index 00000000..9f7d4d19 --- /dev/null +++ b/static/css/seed.css @@ -0,0 +1,35 @@ +.seed-box-container { + display: grid; + grid-template-columns: auto auto auto auto auto auto; + justify-content: center; + row-gap: 4px; + column-gap: 12px; +} + +@media (max-width: 680px) { + .seed-box-container { + grid-template-columns: auto auto auto auto; + } +} + +.blur-filter { + filter: blur(5px); +} + +.seed-box { + display: flex; + align-items: center; + gap: 4px; +} + +.reveal-button { + font-size: 14px; + color: #c434e0; + font-style: italic; + text-decoration: none solid rgb(196, 52, 224); + text-align: center; + text-shadow: 0px 0px 2px rgba(0, 0, 0, 1); + background-color: transparent; + border: none; + margin-top: 16px; +} diff --git a/static/css/styles.css b/static/css/styles.css new file mode 100644 index 00000000..fae30a11 --- /dev/null +++ b/static/css/styles.css @@ -0,0 +1,244 @@ +:root { + --background-color: #16191c; + --color: #ffffff; + --color-marked: #ff7700; + --color-linked: #2aabe9; + --gradient: linear-gradient(60deg, #ff7700 0%, #c740c7 100%); + --font-size-h2: 36px; + --font-size-p: 16px; +} + +body { + margin-block-start: 15px; + font-family: Montserrat; + background-color: var(--background-color); + color: var(--color); + text-align: center; + overflow: scroll; +} + +header { + background-color: var(--background-color); + padding-inline: 2%; + display: flex; + flex-direction: row; + align-items: center; + gap: 1rem; +} + +main { + max-width: 500px; + width: 100%; + margin-inline: auto; +} + +* { + box-sizing: border-box; +} + +@media (min-width: 768px) { + body { + zoom: 1.4; + } +} + +@media (min-width: 2000px) { + body { + zoom: 1.6; + } +} + +@media screen and (max-width: 425px) { + header > img:nth-child(1) { + width: 30px; + height: auto; + } + + header > img:nth-child(2) { + width: auto; + height: 26px; + } +} + +input[type="text"] { + background-color: transparent; + padding: 7px 10px; + border: 1px solid #c740c7; + border-radius: 5px; + font-size: 14px; + color: #999999; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 1); +} + +.icon-button { + background-color: transparent; + border: none; +} + +.push-button { + background-color: transparent; + padding: 10px 55px; + font-size: 20px; + color: var(--color); + text-align: center; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 1); + background: linear-gradient(var(--background-color), var(--background-color)) + padding-box, + var(--gradient) border-box; + border-radius: 5px; + border: 2px solid transparent; +} + +h2 { + font-size: var(--font-size-h2); + font-weight: 400; +} + +p { + font-size: var(--font-size-p); +} + +a { + color: var(--color); + text-decoration: none; +} + +.text-gray { + color: #a3a3a3; + margin-block-end: 5px; +} + +.checkbox { + position: relative; +} + +/* Hide the default checkbox */ +.checkbox input[type="checkbox"] { + display: none; +} + +/* Create a new box */ +.checkbox label { + padding-left: 32px; + display: inline-block; + width: 100%; + font-size: 14px; + color: #a3a3a3; + text-decoration: none solid rgb(163, 163, 163); + text-shadow: 0px 0px 2px rgba(0, 0, 0, 1); + text-align: left; +} + +.checkbox .checkbox-shape { + width: 20px; + height: 20px; + background-color: transparent; + border: 1px solid #a3a3a3; + border-radius: 5px; + position: absolute; + top: 50%; + transform: translate(0, -50%); + z-index: -1; +} + +/* Display a checkmark when the checkbox is checked */ +.checkbox input[type="checkbox"]:checked + .checkbox-shape::before { + content: "✔"; + color: #a012c7; + font-size: 20px; + text-align: center; + line-height: 1; +} + +.line { + margin-block: 24px; + background: var(--gradient); + width: 100%; + height: 1px; + margin-inline: auto; +} + +.marked { + color: var(--color-marked); +} + +.linked { + color: var(--color-linked); +} + +.setup-footer > p { + line-height: 4px; +} + +.setup-header { + position: relative; +} + +.setup-header > .back-button { + position: absolute; + top: 0; + left: 0; +} + +.setup-header > h2 { + margin-block-start: 20px; +} + +.setup-header .header-title { + font-size: 16px; + text-align: center; + text-shadow: 0px 0px 2px rgba(0, 0, 0, 1); +} + +#qrcode { + display: flex; + margin: auto; + justify-content: center; + margin-block-start: 40px; + margin-block-end: 15px; +} + +.input-group { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 8px; +} + +.input-group span { + font-size: 16px; + color: #ffffff; + font-weight: bold; + text-decoration: none solid rgb(255, 255, 255); + text-shadow: 0px 0px 2px rgba(0, 0, 0, 1); +} + +.input-group > input { + align-self: center; +} + +footer { + display: flex; + flex-direction: column; + align-items: center; + max-width: 500px; + width: 100%; + margin-inline: auto; + margin-top: 18px; +} + +footer .footer-text { + font-size: 12px; + color: #999999; + text-align: center; +} + +.checkbox-container { + display: flex; + justify-content: center; + margin-top: 12px; +} + +.hidden-button { + visibility: hidden; +} \ No newline at end of file diff --git a/static/LightningPub.png b/static/img/LightningPub.png similarity index 100% rename from static/LightningPub.png rename to static/img/LightningPub.png diff --git a/static/img/back.svg b/static/img/back.svg new file mode 100644 index 00000000..dd311c59 --- /dev/null +++ b/static/img/back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/img/close.svg b/static/img/close.svg new file mode 100644 index 00000000..1ff717e6 --- /dev/null +++ b/static/img/close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/pub_logo.png b/static/img/pub_logo.png similarity index 100% rename from static/pub_logo.png rename to static/img/pub_logo.png diff --git a/static/img/question.svg b/static/img/question.svg new file mode 100644 index 00000000..aafbaff4 --- /dev/null +++ b/static/img/question.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/index.html b/static/index.html index 54674617..092684a5 100644 --- a/static/index.html +++ b/static/index.html @@ -1,49 +1,90 @@ - - + + - - - - + + + + Lightning.Pub - - - + + +
- Lightning Pub logo - Lightning Pub logo + Lightning Pub logo + Lightning Pub logo
-
-

Setup

-

To manage your Pub, you will connect a via remote dashboard.

-

Confirm a few things to generate a connection string:

-
- -
+
+

Setup

+

+ Let's confirm some things before we start this Pub +

+
-
-

Use default managed relay,
1000 sats per month paid automatically after grace period.

-
- - -
-

Or, enter a custom relay:

-


- -

Need Help?

-
+
-
+
+
+ give this node a name that wallet users will see: + +
- +
+ If you want to use a specific Nostr relay, enter it now: + +
+ +
+ +
+ +
+ + +
- - \ No newline at end of file + +
+ +
+

Need Help?

+
+ + diff --git a/static/js/backup.js b/static/js/backup.js new file mode 100644 index 00000000..9579648f --- /dev/null +++ b/static/js/backup.js @@ -0,0 +1,11 @@ +$(() => { + $("#backup").click(() => { + const checked = $("#backup").prop("checked"); + const nextButton = $("#next-button"); + if (checked) { + nextButton.removeClass("hidden-button"); + } else { + nextButton.addClass("hidden-button"); + } + }); +}); diff --git a/static/js/liquidity.js b/static/js/liquidity.js new file mode 100644 index 00000000..4418542a --- /dev/null +++ b/static/js/liquidity.js @@ -0,0 +1,9 @@ +$(() => { + $("#show-question").click(() => { + $("#question-content").show(); + }); + + $("#close-question").click(() => { + $("#question-content").hide(); + }); +}); diff --git a/static/script.js b/static/js/script.js similarity index 66% rename from static/script.js rename to static/js/script.js index f21f547c..2b980019 100644 --- a/static/script.js +++ b/static/js/script.js @@ -3,8 +3,8 @@ $(document).ready(function() { text: "strfry.shock.network npub123abcdefghhhhhhhhhhhhhhh", width: 157, height: 157, - colorDark : "#ffffff", - colorLight : "#000000", - correctLevel : QRCode.CorrectLevel.H + colorDark : "#000000", + colorLight : "#ffffff", + // correctLevel : QRCode.CorrectLevel.H }); }); \ No newline at end of file diff --git a/static/js/seed.js b/static/js/seed.js new file mode 100644 index 00000000..2574aa40 --- /dev/null +++ b/static/js/seed.js @@ -0,0 +1,15 @@ +$(() => { + $("#reveal-button").click(() => { + $("#seed-box-container").removeClass("blur-filter"); + }); + + $('#copied').click(() => { + const checked = $("#copied").prop('checked'); + const nextButton = $("#next-button"); + if (checked) { + nextButton.removeClass("hidden-button"); + } else { + nextButton.addClass("hidden-button"); + } + }) +}); diff --git a/static/liquidity.html b/static/liquidity.html new file mode 100644 index 00000000..46bae1e5 --- /dev/null +++ b/static/liquidity.html @@ -0,0 +1,93 @@ + + + + + + + + + + + + Lightning.Pub + + + + +
+ Lightning Pub logo + Lightning Pub logo +
+ +
+
+ +

Liquidity

+

+ How do you want to manage Lightning connectivity? +

+
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+

Need Help?

+
+ + + + diff --git a/static/seed.html b/static/seed.html new file mode 100644 index 00000000..97b07183 --- /dev/null +++ b/static/seed.html @@ -0,0 +1,181 @@ + + + + + + + + + + + + Lightning.Pub + + + + +
+ Lightning Pub logo + Lightning Pub logo +
+ +
+
+ +

Seed Phrase

+

+ Store your seed phrase somewhere safe, you'll need it if something + ever goes wrong with your nodes hard drive. +

+
+ +
+ +
+
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ 1 + albert +
+
+ + + +
+
+ +
+ +
+
+ +
+
+ +
+ +
+

Need Help?

+
+ + + + diff --git a/static/styles.css b/static/styles.css deleted file mode 100644 index 80fef982..00000000 --- a/static/styles.css +++ /dev/null @@ -1,168 +0,0 @@ -:root { - --background-color: #16191c; - --color: #ffffff; - --color-marked: #ff7700; - --color-linked: #2aabe9; - --gradient: linear-gradient(60deg, #ff7700 0%, #c740c7 100%); - --font-size-h2: 36px; - --font-size-p: 16px; -} - -body { - margin-block-start: 15px; - font-family: Montserrat; - background-color: var(--background-color); - color: var(--color); - text-align: center; - overflow: scroll; -} - -header { - background-color: var(--background-color); - padding-inline: 2%; - display: flex; - flex-direction: row; - align-items: center; - gap: 1rem; -} - -main { - max-width: 700px; - width: 100%; - margin-inline: auto; -} - -@media (min-width: 768px) { - body { - zoom: 1.4; - } - -} - -@media (min-width: 2000px) { - body { - zoom: 1.6; - } - -} - -@media screen and (max-width: 425px) { - header>img:nth-child(1){ - width: 30px; - height: auto; - } - - header>img:nth-child(2){ - width: auto; - height: 26px; - } -} - -input[type="text"] { - background-color: transparent; - padding: 7px 10px; - border: 1px solid #c740c7; - border-radius: 5px; - font-size: 14px; - color: #999999; - text-align: center; - box-shadow: 0px 0px 2px rgba(0,0,0,1); -} - -button { - background-color: transparent; - padding: 10px 55px; - font-size: 20px; - color: var(--color); - text-align: center; - box-shadow: 0px 0px 2px rgba(0,0,0,1); - background: linear-gradient(var(--background-color), var(--background-color)) padding-box, var(--gradient) border-box; - border-radius: 5px; - border: 1px solid transparent; -} - - -h2 { - font-size: var(--font-size-h2); - font-weight: 400; -} - -p { - font-size: var(--font-size-p); -} - -a { - color: var(--color); - text-decoration: none; -} - -.text-gray { - color: #a3a3a3; - margin-block-end: 5px; -} - -/* Hide the default checkbox */ -.checkbox input[type="checkbox"] { - display: none; -} - -/* Create a new box */ -.checkbox label { - position: relative; -} - -.checkbox label::before { - content: ""; - display: inline-block; - width: 20px; - height: 20px; - margin-right: 10px; - background-color: transparent; - border: 1px solid #a3a3a3; - border-radius: 5px; -} - -/* Display a checkmark when the checkbox is checked */ -.checkbox input[type="checkbox"]:checked + label::after { - content: "✔"; - color: #a012c7; - font-size: 20px; - position: absolute; - left: 1px; - top: -11px; - width: 20px; - height: 20px; - text-align: center; -} - -.line { - margin-block: 30px; - background: var(--gradient); - width: 347px; - height: 2px; - margin-inline: auto; -} - -.marked { - color: var(--color-marked); -} - -.linked { - color: var(--color-linked); -} - -.setup-footer>p { - line-height: 4px; -} - -.setup-header>h2 { - margin-block-start: 20px; -} - -#qrcode { - display: flex; - margin: auto; - justify-content: center; - margin-block-start: 40px; - margin-block-end: 15px; -} From c2155087c83e810d643dbd8a21523037f92e68ca Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 14:09:02 -0400 Subject: [PATCH 11/71] on release --- .github/workflows/push.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 5ee85b5b..3af879ee 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,9 +1,8 @@ - name: Create and publish a Docker image on: - push: - branches: ['umbrel-works'] + release: + types: [created] env: REGISTRY: ghcr.io @@ -43,5 +42,3 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - - From 8ee86d05495015b08914b3bfed5f149fef54e430 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 14:38:45 -0400 Subject: [PATCH 12/71] attestations --- .github/workflows/push.yml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 3af879ee..e91c0e78 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -14,8 +14,8 @@ jobs: permissions: contents: read packages: write - attestations: write id-token: write + security-events: write steps: - name: Checkout repository @@ -34,11 +34,27 @@ jobs: with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - name: Build and push Docker image - id: push + - name: Build Docker image + uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + with: + context: . + push: false + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + - name: Attest build provenance + uses: actions/attest-build-provenance@v1 + with: + artifact-digest: ${{ steps.push.outputs.digest }} + artifact-type: 'container-image' + artifact-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + materials: '[{"uri":"git+https://github.com/${{ github.repository }}","digest":{"sha1":"${{ github.sha }}"},"mediaType":"application/vnd.github.v3+json"}]' + + - name: Push Docker image uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: context: . push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + From 0aefc617833c5e07edca3d579db70ddb6b5e1198 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 14:45:14 -0400 Subject: [PATCH 13/71] id --- .github/workflows/push.yml | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index e91c0e78..426d9844 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -34,23 +34,8 @@ jobs: with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - - name: Build Docker image - uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 - with: - context: . - push: false - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - - - name: Attest build provenance - uses: actions/attest-build-provenance@v1 - with: - artifact-digest: ${{ steps.push.outputs.digest }} - artifact-type: 'container-image' - artifact-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - materials: '[{"uri":"git+https://github.com/${{ github.repository }}","digest":{"sha1":"${{ github.sha }}"},"mediaType":"application/vnd.github.v3+json"}]' - - - name: Push Docker image + - name: Build and push Docker image + id: build-and-push uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: context: . @@ -58,3 +43,10 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + - name: Attest build provenance + uses: actions/attest-build-provenance@v1 + with: + artifact-digest: ${{ steps.build-and-push.outputs.digest }} + artifact-type: 'container-image' + artifact-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + materials: '[{"uri":"git+https://github.com/${{ github.repository }}","digest":{"sha1":"${{ github.sha }}"},"mediaType":"application/vnd.github.v3+json"}]' From 6c9ac2e35415d6011cbe51c91893dd5118d9cbee Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 16:59:02 -0400 Subject: [PATCH 14/71] prerelease builds --- .github/workflows/push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 426d9844..3f0e2c60 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -2,7 +2,7 @@ name: Create and publish a Docker image on: release: - types: [created] + types: [created, released, prereleased] env: REGISTRY: ghcr.io From dd6c271091c2bee651cff7b35441337cc9f91461 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 17:07:07 -0400 Subject: [PATCH 15/71] attestations fix --- .github/workflows/push.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 3f0e2c60..3b508354 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -46,7 +46,9 @@ jobs: - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - artifact-digest: ${{ steps.build-and-push.outputs.digest }} - artifact-type: 'container-image' - artifact-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - materials: '[{"uri":"git+https://github.com/${{ github.repository }}","digest":{"sha1":"${{ github.sha }}"},"mediaType":"application/vnd.github.v3+json"}]' + subject-path: ${{ github.workspace }} + subject-digest: ${{ steps.build-and-push.outputs.digest }} + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + push-to-registry: true + github-token: ${{ secrets.GITHUB_TOKEN }} + From 03154746a926ace8f74cf9eae87fa25d22b5d0c5 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 17:16:32 -0400 Subject: [PATCH 16/71] docker fix --- .github/workflows/push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 3b508354..479aa3ad 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -39,6 +39,7 @@ jobs: uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: context: . + file: Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From ff2247b530e46054ecd9f09f52e391243984a1d9 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 22:11:25 -0400 Subject: [PATCH 17/71] fix --- .github/workflows/push.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 479aa3ad..a8685757 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -48,7 +48,6 @@ jobs: uses: actions/attest-build-provenance@v1 with: subject-path: ${{ github.workspace }} - subject-digest: ${{ steps.build-and-push.outputs.digest }} subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} push-to-registry: true github-token: ${{ secrets.GITHUB_TOKEN }} From 021a58e34c2a9e84561942dc7f1a20f208ca234c Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Sun, 19 May 2024 22:23:08 -0400 Subject: [PATCH 18/71] fix? --- .github/workflows/push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index a8685757..c2497b08 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -39,7 +39,7 @@ jobs: uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 with: context: . - file: Dockerfile + file: ./Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 3665f7c8bb5d70ea6c26572c98723e665e138905 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 09:24:32 -0400 Subject: [PATCH 19/71] fix? --- .github/workflows/push.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index c2497b08..90aea707 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v4 - name: Log in to the Container registry - uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + uses: docker/login-action@v2 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -30,13 +30,13 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@9ec57ed1fcdbf14dcef7dfbe97b2010124a938b7 + uses: docker/metadata-action@v4 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - name: Build and push Docker image id: build-and-push - uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 + uses: docker/build-push-action@v4 with: context: . file: ./Dockerfile @@ -47,8 +47,7 @@ jobs: - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-path: ${{ github.workspace }} + subject-path: ${{ github.workspace }}/Dockerfile # Adjusted to point directly to Dockerfile subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} push-to-registry: true github-token: ${{ secrets.GITHUB_TOKEN }} - From 3ae3c7c24d8a7f187e17d28099a68b15ff3a54c0 Mon Sep 17 00:00:00 2001 From: PolarDefend <133696017+polarDefender@users.noreply.github.com> Date: Mon, 20 May 2024 22:30:02 +0900 Subject: [PATCH 20/71] Update push.yml --- .github/workflows/push.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 90aea707..113978c4 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -47,7 +47,6 @@ jobs: - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-path: ${{ github.workspace }}/Dockerfile # Adjusted to point directly to Dockerfile - subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} + subject-digest: ${{ steps.push.outputs.digest }} push-to-registry: true - github-token: ${{ secrets.GITHUB_TOKEN }} From 9d9193262a4cce3292888ef590bd1a93cf8c0f72 Mon Sep 17 00:00:00 2001 From: PolarDefend <133696017+polarDefender@users.noreply.github.com> Date: Mon, 20 May 2024 22:38:48 +0900 Subject: [PATCH 21/71] Update push.yml --- .github/workflows/push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 113978c4..6dfff870 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,8 +1,8 @@ name: Create and publish a Docker image on: - release: - types: [created, released, prereleased] + push: + branches: ['umbrel-works'] env: REGISTRY: ghcr.io From aa2e276aec7fee04a6a0ed4d745b4d560fe307be Mon Sep 17 00:00:00 2001 From: PolarDefend <133696017+polarDefender@users.noreply.github.com> Date: Mon, 20 May 2024 22:44:57 +0900 Subject: [PATCH 22/71] Update push.yml --- .github/workflows/push.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 6dfff870..b7e0ed41 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -44,9 +44,3 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - - name: Attest build provenance - uses: actions/attest-build-provenance@v1 - with: - subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME}} - subject-digest: ${{ steps.push.outputs.digest }} - push-to-registry: true From 459b2d6cf45fa63deb230fc8d1f43f4fca75abc1 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 10:14:41 -0400 Subject: [PATCH 23/71] attest --- .github/workflows/push.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index b7e0ed41..e6535882 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -44,3 +44,11 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + - name: Attest build provenance + uses: actions/attest-build-provenance@v1 + with: + subject-path: ${{ github.workspace }}/Dockerfile # Adjusted to point directly to Dockerfile + subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + push-to-registry: true + github-token: ${{ secrets.GITHUB_TOKEN }} + From 35b218029bfe9617e0c37c136ece8fe19fbb1dc7 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 10:26:25 -0400 Subject: [PATCH 24/71] try again --- .github/workflows/push.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index e6535882..1fbf864d 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -47,8 +47,5 @@ jobs: - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-path: ${{ github.workspace }}/Dockerfile # Adjusted to point directly to Dockerfile - subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - push-to-registry: true - github-token: ${{ secrets.GITHUB_TOKEN }} - + subject-path: ${{ github.workspace }} + github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 48cfb2cb573b10f82c8052108592caa5bd3c0a63 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 10:34:25 -0400 Subject: [PATCH 25/71] digest --- .github/workflows/push.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 1fbf864d..04e199df 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -44,8 +44,14 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + - name: Capture image digest + id: capture-digest + run: | + DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/${{ github.repository }}:latest) + echo "::set-output name=digest::$DIGEST" + - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-path: ${{ github.workspace }} - github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + subject-digest: ${{ steps.capture-digest.outputs.digest }} + github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From a10b1c79d0703cea1b628d9f9c3de38ffc339cc9 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 10:39:54 -0400 Subject: [PATCH 26/71] . --- .github/workflows/push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 04e199df..d32f541e 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -41,13 +41,13 @@ jobs: context: . file: ./Dockerfile push: true - tags: ${{ steps.meta.outputs.tags }} + tags: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest # Update the image tag labels: ${{ steps.meta.outputs.labels }} - name: Capture image digest id: capture-digest run: | - DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/${{ github.repository }}:latest) + DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest) echo "::set-output name=digest::$DIGEST" - name: Attest build provenance From 2a78f4508c6c3b83bd09e833a692599a62611f9d Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 10:43:32 -0400 Subject: [PATCH 27/71] name --- .github/workflows/push.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index d32f541e..326d0e09 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -54,4 +54,5 @@ jobs: uses: actions/attest-build-provenance@v1 with: subject-digest: ${{ steps.capture-digest.outputs.digest }} + subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 83075c7db469b7764e913a68b009d19bb4bc775b Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 11:32:12 -0400 Subject: [PATCH 28/71] format --- .github/workflows/push.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 326d0e09..e4adddec 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -47,8 +47,8 @@ jobs: - name: Capture image digest id: capture-digest run: | - DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest) - echo "::set-output name=digest::$DIGEST" + DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) + echo "::set-output name=digest::sha256:${DIGEST}" - name: Attest build provenance uses: actions/attest-build-provenance@v1 From 3c3ece9c47651ac2887399e337b118f5da7b683f Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 11:53:46 -0400 Subject: [PATCH 29/71] sha --- .github/workflows/push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index e4adddec..40d56612 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -53,6 +53,6 @@ jobs: - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-digest: ${{ steps.capture-digest.outputs.digest }} + subject-digest: sha256:${{ steps.capture-digest.outputs.digest }} subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From 4ac767f76cb2a2436c19288f86e7697a3dd84d41 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:00:55 -0400 Subject: [PATCH 30/71] pain --- .github/workflows/push.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 40d56612..3ce0fa61 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -41,7 +41,7 @@ jobs: context: . file: ./Dockerfile push: true - tags: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest # Update the image tag + tags: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest labels: ${{ steps.meta.outputs.labels }} - name: Capture image digest @@ -49,10 +49,10 @@ jobs: run: | DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) echo "::set-output name=digest::sha256:${DIGEST}" - + - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-digest: sha256:${{ steps.capture-digest.outputs.digest }} - subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest - github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + subject-digest: ${{ steps.capture-digest.outputs.digest }} + subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest + github-token: ${{ secrets.GITHUB_TOKEN }} From 7d86d11c79da6aeccc895afe061e47cd74938a18 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:07:39 -0400 Subject: [PATCH 31/71] log --- .github/workflows/push.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 3ce0fa61..4b9887da 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -48,11 +48,15 @@ jobs: id: capture-digest run: | DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) + echo "DIGEST=sha256:${DIGEST}" >> $GITHUB_ENV echo "::set-output name=digest::sha256:${DIGEST}" + - name: Debug Print Digest + run: echo "Digest is ${{ steps.capture-digest.outputs.digest }}" + - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: subject-digest: ${{ steps.capture-digest.outputs.digest }} subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From c7213623709b9a414a7ee20d011a255e65122940 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:14:09 -0400 Subject: [PATCH 32/71] fix? --- .github/workflows/push.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 4b9887da..13357a82 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -48,8 +48,7 @@ jobs: id: capture-digest run: | DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) - echo "DIGEST=sha256:${DIGEST}" >> $GITHUB_ENV - echo "::set-output name=digest::sha256:${DIGEST}" + echo "::set-output name=digest::${DIGEST}" - name: Debug Print Digest run: echo "Digest is ${{ steps.capture-digest.outputs.digest }}" @@ -57,6 +56,6 @@ jobs: - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-digest: ${{ steps.capture-digest.outputs.digest }} + subject-digest: sha256:${{ steps.capture-digest.outputs.digest }} subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From aa772d559c5246ea67728fc4e15866c529cf92cc Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:17:33 -0400 Subject: [PATCH 33/71] log --- .github/workflows/push.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 13357a82..1c030e31 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -48,14 +48,18 @@ jobs: id: capture-digest run: | DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) + echo "Raw Digest is $DIGEST" echo "::set-output name=digest::${DIGEST}" - name: Debug Print Digest run: echo "Digest is ${{ steps.capture-digest.outputs.digest }}" + - name: Debug Print Formatted Digest + run: echo "Formatted Digest is sha256:${{ steps.capture-digest.outputs.digest }}" + - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: subject-digest: sha256:${{ steps.capture-digest.outputs.digest }} subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest - github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + github-token: ${{ secrets.GITHUB_TOKEN }} From 729f225f6a2a6c89d7fc6693d01f5b4bbe7ed3c8 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:21:52 -0400 Subject: [PATCH 34/71] . --- .github/workflows/push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 1c030e31..349d5a20 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -49,7 +49,7 @@ jobs: run: | DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) echo "Raw Digest is $DIGEST" - echo "::set-output name=digest::${DIGEST}" + echo "::set-output name=digest::$DIGEST" - name: Debug Print Digest run: echo "Digest is ${{ steps.capture-digest.outputs.digest }}" From b9e3f78b2e55de5c10a09637fdfa4fc2402a9b08 Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:25:16 -0400 Subject: [PATCH 35/71] . --- .github/workflows/push.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 349d5a20..f8d3b3bb 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -49,14 +49,11 @@ jobs: run: | DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) echo "Raw Digest is $DIGEST" - echo "::set-output name=digest::$DIGEST" + echo "::set-output name=digest::${DIGEST}" - name: Debug Print Digest run: echo "Digest is ${{ steps.capture-digest.outputs.digest }}" - - name: Debug Print Formatted Digest - run: echo "Formatted Digest is sha256:${{ steps.capture-digest.outputs.digest }}" - - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: From 0e6039830993851030aa7d9f0902402fe1a25baf Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:29:49 -0400 Subject: [PATCH 36/71] curses --- .github/workflows/push.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index f8d3b3bb..7173a1ca 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -27,13 +27,13 @@ jobs: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - + - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v4 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - + - name: Build and push Docker image id: build-and-push uses: docker/build-push-action@v4 @@ -49,7 +49,7 @@ jobs: run: | DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/${{ github.repository_owner }}/lightning-pub:latest | cut -d'@' -f2) echo "Raw Digest is $DIGEST" - echo "::set-output name=digest::${DIGEST}" + echo "::set-output name=digest::$DIGEST" - name: Debug Print Digest run: echo "Digest is ${{ steps.capture-digest.outputs.digest }}" @@ -57,6 +57,6 @@ jobs: - name: Attest build provenance uses: actions/attest-build-provenance@v1 with: - subject-digest: sha256:${{ steps.capture-digest.outputs.digest }} + subject-digest: ${{ steps.capture-digest.outputs.digest }} subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest github-token: ${{ secrets.GITHUB_TOKEN }} From c59d2569ae3bf8592bf3f51bb3b58541297dfbfd Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 12:45:08 -0400 Subject: [PATCH 37/71] use PAT --- .github/workflows/push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 7173a1ca..8d41dff4 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -59,4 +59,4 @@ jobs: with: subject-digest: ${{ steps.capture-digest.outputs.digest }} subject-name: ghcr.io/${{ github.repository_owner }}/lightning-pub:latest - github-token: ${{ secrets.GITHUB_TOKEN }} + github-token: ${{ secrets.PAT_TOKEN }} From 78c731d63f6d291611323c8d11de2e7b758b830b Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Mon, 20 May 2024 13:03:12 -0400 Subject: [PATCH 38/71] on release --- .github/workflows/push.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index 8d41dff4..588258e1 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -1,8 +1,9 @@ name: Create and publish a Docker image on: - push: - branches: ['umbrel-works'] + release: + types: [created, published, prereleased] + workflow_dispatch: # This allows manual triggering of the workflow env: REGISTRY: ghcr.io From d6f27d44831eafb6639b23923dedfac9fd60d70e Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Tue, 21 May 2024 14:22:24 -0400 Subject: [PATCH 39/71] default envs --- src/services/lnd/index.ts | 14 ++++++++++++-- src/services/nostr/index.ts | 11 +++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/services/lnd/index.ts b/src/services/lnd/index.ts index 765db0e6..30fdd570 100644 --- a/src/services/lnd/index.ts +++ b/src/services/lnd/index.ts @@ -1,9 +1,19 @@ import { EnvMustBeNonEmptyString, EnvMustBeInteger, EnvCanBeBoolean, EnvCanBeInteger } from '../helpers/envParser.js' import { LndSettings } from './settings.js' +import os from 'os' +import path from 'path' + +const resolveHome = (filepath: string) => { + if (filepath[0] === '~') { + return path.join(os.homedir(), filepath.slice(1)) + } + return filepath +} + export const LoadLndSettingsFromEnv = (): LndSettings => { const lndAddr = process.env.LND_ADDRESS || "127.0.0.1:10009" - const lndCertPath = process.env.LND_CERT_PATH || "~/.lnd/tls.cert" - const lndMacaroonPath = process.env.LND_MACAROON_PATH || "~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon" + const lndCertPath = process.env.LND_CERT_PATH || resolveHome("~/.lnd/tls.cert") + const lndMacaroonPath = process.env.LND_MACAROON_PATH || resolveHome("~/.lnd/data/chain/bitcoin/mainnet/admin.macaroon") const feeRateLimit = EnvCanBeInteger("OUTBOUND_MAX_FEE_BPS", 60) / 10000 const feeFixedLimit = EnvCanBeInteger("OUTBOUND_MAX_FEE_EXTRA_SATS", 100) const mockLnd = EnvCanBeBoolean("MOCK_LND") diff --git a/src/services/nostr/index.ts b/src/services/nostr/index.ts index 49e1e280..8e0d9420 100644 --- a/src/services/nostr/index.ts +++ b/src/services/nostr/index.ts @@ -2,11 +2,18 @@ import { ChildProcess, fork } from 'child_process' import { EnvMustBeNonEmptyString } from "../helpers/envParser.js" import { NostrSettings, NostrEvent, ChildProcessRequest, ChildProcessResponse, SendData } from "./handler.js" type EventCallback = (event: NostrEvent) => void + +const getEnvOrDefault = (name: string, defaultValue: string): string => { + return process.env[name] || defaultValue; +} + export const LoadNosrtSettingsFromEnv = (test = false) => { + const relaysEnv = getEnvOrDefault("NOSTR_RELAYS", "wss://strfry.shock.network"); return { - relays: EnvMustBeNonEmptyString("NOSTR_RELAYS").split(' ') + relays: relaysEnv.split(' ') } } + export default class NostrSubprocess { settings: NostrSettings childProcess: ChildProcess @@ -37,4 +44,4 @@ export default class NostrSubprocess { Stop() { this.childProcess.kill() } -} \ No newline at end of file +} From ba8d0020f33ab2b40742eddafd3c693cd682e47b Mon Sep 17 00:00:00 2001 From: "Justin (shocknet)" Date: Tue, 21 May 2024 17:39:15 -0400 Subject: [PATCH 40/71] copy --- src/auth.ts | 1 + static/backup.html | 17 +++++------------ static/css/styles.css | 2 +- static/index.html | 7 +++---- static/liquidity.html | 9 ++++----- 5 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/auth.ts b/src/auth.ts index 6d7bf07f..36e32043 100644 --- a/src/auth.ts +++ b/src/auth.ts @@ -8,6 +8,7 @@ const serverOptions = (mainHandler: Main): ServerOptions => { const log = getLogger({}) return { logger: { log, error: err => log(ERROR, err) }, + staticFiles: path.resolve('static'), AdminAuthGuard: adminAuth, MetricsAuthGuard: metricsAuth, AppAuthGuard: async (authHeader) => { return { app_id: mainHandler.applicationManager.DecodeAppToken(stripBearer(authHeader)) } }, diff --git a/static/backup.html b/static/backup.html index 9f09e81e..3ee14252 100644 --- a/static/backup.html +++ b/static/backup.html @@ -32,11 +32,10 @@ -

Backup

+

Choose a Recovery Method

- It looks like this is a - new node, it's important - establish backups. + New Node! 🎉 It's important + to backup your keys.

@@ -45,17 +44,11 @@
- In addition to your seed phrase, you'll need a channel backup to -
-
- recover funds should your node experience a hardware failure. + In addition to your seed phrase, you also need channel details to recover funds should your node experience a hardware failure.

- It's important always to have the latest version of this backup, -
-
- fortunately they're small enough to be cached on the Nostr relay. + It's important always to have the latest version of this backup, fortunately they're small enough to be cached on the Nostr relay automatically.
diff --git a/static/css/styles.css b/static/css/styles.css index fae30a11..4bb3b69a 100644 --- a/static/css/styles.css +++ b/static/css/styles.css @@ -143,7 +143,7 @@ a { /* Display a checkmark when the checkbox is checked */ .checkbox input[type="checkbox"]:checked + .checkbox-shape::before { - content: "✔"; + content: "✓"; color: #a012c7; font-size: 20px; text-align: center; diff --git a/static/index.html b/static/index.html index 092684a5..ff84824b 100644 --- a/static/index.html +++ b/static/index.html @@ -27,9 +27,8 @@
-

Setup

+

Setup your Pub

- Let's confirm some things before we start this Pub

@@ -37,7 +36,7 @@
- give this node a name that wallet users will see: + Give this node a name that will be seen by wallet users:
diff --git a/static/liquidity.html b/static/liquidity.html index 46bae1e5..71ee9a56 100644 --- a/static/liquidity.html +++ b/static/liquidity.html @@ -32,9 +32,9 @@ -

Liquidity

+

Manage Node Liquidity

- How do you want to manage Lightning connectivity? + How do you want to manage your Lightning nodes channels?

@@ -45,14 +45,13 @@