abe9c221c7a1d8c76d00eccda7d668a53901fe98
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)
Description
Timmy Tower World — sovereign AI agent economy
Languages
TypeScript
68.9%
JavaScript
15.5%
Shell
10.6%
HTML
4.5%
CSS
0.4%