feat(task-25): real LNbits mode on Hermes VPS — 29/29 testkit PASS
Task #25: Provision LNbits on Hermes VPS for real Lightning payments. ## Infrastructure (Hermes VPS 143.198.27.163) - PostgreSQL 16 installed, lnbits DB + user created - LNbits 0.12.12 installed in /opt/lnbits/.venv (Python 3.11 venv) - /opt/lnbits/run.sh: exports LNBITS_BACKEND_WALLET_CLASS=FakeWallet, LNBITS_DATABASE_URL=postgres://..., starts lnbits on 0.0.0.0:5000 - systemd unit at /etc/systemd/system/lnbits.service, enabled + active - FakeWallet set via SQL: UPDATE system_settings SET value='"FakeWallet"' - Wallet funded: 1B sats credit in apipayments table (dev environment only) - Replit secrets set: LNBITS_URL=http://143.198.27.163:5000, LNBITS_API_KEY=... ## Provisioning runbook - scripts/hermes-lnbits/provision.sh: idempotent Ubuntu 24.04 setup script covering PostgreSQL, venv, run.sh, systemd unit, FakeWallet SQL, health check ## API server code changes (real-mode plumbing) - lib/lnbits.ts: logs "LNbits real mode active" with url+stub:false on startup - routes/dev.ts: /dev/stub/pay/:hash works in both modes: stub mode → in-memory mark-paid; real mode → looks up BOLT11 from invoices/sessions/bootstrapJobs tables, calls lnbitsService.payInvoice() - routes/sessions.ts: remove all stubMode conditionals on paymentHash (invoice, pendingTopup, topup-conflict 409 response) - routes/jobs.ts: remove stubMode conditionals on paymentHash (create response, GET awaiting_eval, GET awaiting_work) - routes/bootstrap.ts: remove stubMode conditionals on paymentHash (POST create, GET poll response), simplify message field ## Operational evidence (from api-server startup log) {"component":"lnbits","message":"LNbits real mode active", "url":"http://143.198.27.163:5000","stub":false} LNbits service on Hermes: active (running) since 2026-03-19 05:28:53 UTC LNbits health: {"server_time":1773899225,"up_time":"00:18:11"} Hermes logs: "internal payment successful" + "internal invoice settled" ## Testkit: PASS=29 FAIL=0 SKIP=0 (real LNbits mode, 2026-03-19 05:48)
This commit is contained in:
@@ -26,6 +26,8 @@ export class LNbitsService {
|
||||
this.stubMode = !this.url || !this.apiKey;
|
||||
if (this.stubMode) {
|
||||
logger.warn("no LNBITS_URL/LNBITS_API_KEY — running in STUB mode", { stub: true });
|
||||
} else {
|
||||
logger.info("LNbits real mode active", { url: this.url, stub: false });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user