ThunderHub LND Lightning Node Manager in your Browser
Find a file
2020-03-31 15:22:13 +02:00
assets chore: update readme and license 2020-02-27 09:06:53 +01:00
client chore: small docker cleanups 2020-03-31 15:22:13 +02:00
docs feat: add peer queries mutations and views (#11) 2020-03-23 21:13:04 +01:00
server chore: small docker cleanups 2020-03-31 15:22:13 +02:00
docker-compose.yml feat: docker setup wip (#3) 2020-03-22 21:16:46 +01:00
LICENSE chore: update readme and license 2020-02-27 09:06:53 +01:00
README.md chore: update readme and license 2020-02-27 09:06:53 +01:00

ThunderHub - Lightning Node Manager

Home Screenshot license Known Vulnerabilities Known Vulnerabilities

Table Of Contents

Introduction

ThunderHub is an open-source LND node manager where you can manage and monitor your node on any device or browser. It allows you to take control of the lightning network with a simple and intuitive UX and the most up-to-date tech stack.

Tech Stack

Client

Known Vulnerabilities

  • ReactJS
  • Typescript
  • Styled-Components
  • Apollo

Server

Known Vulnerabilities

  • Apollo-Server
  • GraphQL
  • Ln-Service

Features

Monitoring

  • Overview of current and pending balance for the Lightning and Bitcoin wallets.
  • URI strings for the node (Onion public uri also if available)
  • Invoice and Payment graph.
  • Liquidity report with total remote and local lightning balance.
  • Forwarded payments graph and the routes used for these payments.
  • Complete network info.
  • View open/pending/closed channels and how balanced they are.
  • View channel base and rate fees.
  • View all transactions.
  • View all forwarded payments.
  • View all chain transactions.

Management

  • Send and Receive Lightning payments.
  • Send and Receive Bitcoin payments.
  • Decode lightning payment requests.
  • Open and close channels.
  • Balance your channels through circular payments. (Check out the Tutorial)
  • Update your all your channels fees or individual ones.
  • Backup, verify and recover all your channels.

Visual

  • Responsive UI for any device. Mobile, Tablet or Desktop.
  • Light and Dark mode.
  • Check values in Bitcoin, Satoshis or Fiat.

Accounts

  • Many ways to connect to your node: HEX/Base64 strings, LNDConnect Url, BTCPayServer Info or QR codes.
  • Have view-only and/or admin accounts.
  • Manage up to 10 different nodes.
  • Quickly sync your accounts between devices. No need to copy/paste macaroons and certificates.

Future Features

  • Loop In and Out to provide liquidity or remove it from your channels.
  • Docker Image for easy deployments.

Installation

To run ThunderHub you first need to clone this repository.

git clone https://github.com/apotdevin/thunderhub.git

Requirements

  • Node installed
  • Yarn or NPM installed

After cloning the repository, go into both the /client and the /server folders, and run yarn or npm install in both of them to get all the necessary modules installed.

ThunderHub - Server

To get the server running use the following commands

This must be done in the /server folder
//With yarn:
yarn build
yarn start
//With npm:
npm run build
npm run start

If the server starts succesfully, you should see info [server.js]: Server ready at http://localhost:3001/ in the terminal

ThunderHub - Client

To get the React frontend running use the following commands

This must be done in the /client folder
//With yarn:
yarn start
//With npm:
npm run start

If the frontend starts succesfully, you should see Compiled successfully! You can now view app in the browser. in the terminal and a browser window should have opened in your browser.

Development

If you want to develop on ThunderHub and want hot reloading when you do changes use the following commands

ThunderHub - Server

//With yarn:
yarn build:dev

// In another terminal
yarn dev
//With npm:
npm run build:dev

// In another terminal
npm run dev

ThunderHub - Client

Running the commands yarn start or npm run start works for development.

You can also get storybook running for quicker component development.

//With yarn:
yarn storybook
//With npm:
npm run storybook