diff --git a/app/sovran_systemsos_web/server.py b/app/sovran_systemsos_web/server.py index 1453d27..edcb9cd 100644 --- a/app/sovran_systemsos_web/server.py +++ b/app/sovran_systemsos_web/server.py @@ -403,8 +403,8 @@ SERVICE_DESCRIPTIONS: dict[str, str] = { ), "lnd.service": ( "Your Lightning Network node for instant, low-fee Bitcoin payments. " - "LND powers your Zeus wallet, Ride The Lightning dashboard, and BTCPayServer's " - "Lightning capabilities. With Sovran_SystemsOS, it's always connected and ready." + "LND powers your Zeus wallet (via direct LND REST or Tor), Ride The Lightning dashboard, and BTCPayServer's " + "Lightning capabilities. For mobile spending with sandboxed wallets, use Lightning Wallet Connections (NWC) instead." ), "rtl.service": ( "Your personal Lightning Network command center. Open channels, manage liquidity, " @@ -417,9 +417,9 @@ SERVICE_DESCRIPTIONS: dict[str, str] = { "Sovran_SystemsOS makes running a production-grade payment gateway as simple as flipping a switch." ), "zeus-connect-setup.service": ( - "Connect the Zeus mobile wallet to your Lightning node. Send and receive " - "Lightning payments from your phone, backed by your own infrastructure. " - "Scan the QR code and your phone becomes a sovereign wallet." + "Connect the Zeus mobile wallet to your Lightning node via LND REST. Send and receive " + "Lightning payments from your phone using a direct node connection. " + "Scan the QR code to add your node to Zeus — this gives full node admin access." ), "mempool.service": ( "Your own blockchain explorer and mempool visualizer. Monitor transactions, " diff --git a/app/sovran_systemsos_web/static/css/modals.css b/app/sovran_systemsos_web/static/css/modals.css index 72425a1..81056e5 100644 --- a/app/sovran_systemsos_web/static/css/modals.css +++ b/app/sovran_systemsos_web/static/css/modals.css @@ -1035,6 +1035,74 @@ button.btn-reboot:hover:not(:disabled) { background: #1c2a24; } +/* ── NWC Connect Guide (shown after wallet creation) ────────────── */ + +.nwc-connect-guide { + margin-top: 16px; + padding: 16px; + border: 1px solid var(--border-color); + border-radius: 12px; + background: rgba(109, 191, 139, 0.04); +} + +.nwc-connect-guide-title { + font-size: 1rem; + font-weight: 700; + color: var(--text-primary); + margin-bottom: 8px; +} + +.nwc-connect-guide-intro { + margin: 0 0 14px; + font-size: 0.85rem; + line-height: 1.55; + color: var(--text-secondary); +} + +.nwc-connect-steps { + display: flex; + flex-direction: column; + gap: 10px; + margin-bottom: 14px; +} + +.nwc-connect-step { + display: flex; + gap: 10px; + align-items: flex-start; + font-size: 0.86rem; + line-height: 1.5; +} + +.nwc-step-num { + background: var(--accent-color); + color: #0A1A10; + width: 22px; + height: 22px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + font-weight: 700; + font-size: 0.78rem; + flex-shrink: 0; + margin-top: 2px; +} + +.nwc-connect-note { + background: rgba(245, 158, 11, 0.08); + border-left: 3px solid #f59e0b; + padding: 10px 12px; + border-radius: 0 8px 8px 0; + font-size: 0.8rem; + line-height: 1.5; + color: var(--text-secondary); +} + +.nwc-connect-note strong { + color: #fbbf24; +} + /* ── Narrow screens ─────────────────────────────────────────────── */ @media (max-width: 720px) { diff --git a/app/sovran_systemsos_web/static/js/service-detail.js b/app/sovran_systemsos_web/static/js/service-detail.js index 09f14ba..a271aaa 100644 --- a/app/sovran_systemsos_web/static/js/service-detail.js +++ b/app/sovran_systemsos_web/static/js/service-detail.js @@ -9,7 +9,7 @@ function _renderCredsHtml(credentials, unit) { var id = "cred-" + Math.random().toString(36).substring(2, 8); var qrBlock = ""; if (cred.qrcode) { - qrBlock = '
QR Code for ' + escHtml(cred.label) + '
Scan with Zeus app on your phone
'; + qrBlock = '
QR Code for ' + escHtml(cred.label) + '
In Zeus: Wallets → + → scan icon. This is an LND REST QR for direct node access.
'; } // If qronly, render the label + QR block only — skip value and copy button if (cred.qronly) { @@ -218,7 +218,7 @@ function _nwcRenderWalletState() { var pairId = "nwc-pairing-uri-" + Math.random().toString(36).substring(2, 8); html += '
⚠ One-time pairing secret. Save it now — it will not be shown again.
'; if (created.pairing_qrcode) { - html += '
QR code for Lightning Wallet Connections pairing secret
Scan now in Zeus or copy the URI below.
'; + html += '
QR code for Lightning Wallet Connections pairing secret
This is an NWC pairing QR — in Zeus, add a wallet and use the scan icon (see steps below).
'; } html += '
Pairing URI
' + '
' + escHtml(created.pairing_uri || "Unavailable") + '
'; @@ -226,10 +226,21 @@ function _nwcRenderWalletState() { html += '
Lightning Address
' + '
' + escHtml(created.wallet.lightning_address) + '
'; } + html += '
' + + '
📱 Connect to Zeus
' + + '

This pairing URI is an NWC (Nostr Wallet Connect) connection — the modern, mobile-friendly way to use Zeus with your node. It connects directly through your Lightning domain, so no Tor or port forwarding is needed on your phone.

' + + '
' + + '
1
Open Zeus and open the Wallets screen.
' + + '
2
Tap the + (Add Wallet) button in the top-right corner.
' + + '
3
On Wallet Configuration, tap the scan icon in the top-right corner, then scan the QR code above.
' + + '
4
Zeus detects the NWC QR and fills in Nostr Wallet Connect. Review it, then tap Save Wallet Config.
' + + '
' + + '
💡 Note: This is not the same as the LND REST / Tor QR shown on your LND tile — that connects Zeus directly to your Lightning node for full admin control. NWC gives your wallet sandboxed, limited access for everyday spending.
' + + '
'; html += '
' + '' + '' + - '
'; + ''; host.innerHTML = html; _attachCopyHandlers(host); var continueBtn = document.getElementById("nwc-created-continue-btn"); @@ -332,7 +343,7 @@ function _nwcRenderWalletState() { html += '
' + '
' + '
Ready to start spending
' + - '

Create your first isolated wallet to connect to apps like Zeus or Nostr. Experience faster, more secure Lightning payments today.

' + + '

Create your first isolated wallet to connect to apps like Zeus (via NWC) or Nostr. Experience faster, more secure Lightning payments today.

' + '
'; host.innerHTML = html; _nwcWireDomainLink(); @@ -783,8 +794,8 @@ async function openServiceDetailModal(unit, name, icon) { '
' + '
📱
' + '
' + - 'Zeus on the Go' + - '

Connect instantly to Zeus via NWC. Manage your spending and receive payments right from your phone, wherever you are.

' + + 'Zeus on the Go (via NWC)' + + '

Connect Zeus to your wallet using NWC — no Tor, no port forwarding. Create a wallet below, scan the pairing QR, and start spending from your phone.

' + '
' + '
' + '' +