Skip to content

Instantly share code, notes, and snippets.

Last active Mar 2, 2022
What would you like to do?
ThunderHub Installation

use lnd v0.10.0 for full compatibility

RaspiBlitz install script:

# update NodeJS
bash off
bash on
# download thunderhub install script
# run
bash on

Manual installation on a RaspiBlitz:

# Preparations
# check and install NodeJS

# open the firewall for the chosen port (here: 3010)
# set any free port (the default port: 3000 is reserved for RTL)
# fill in the approrpriate local subnet (here:
sudo ufw allow from to any port 3010 comment 'allow ThunderHub on LAN'

# create a dedicated Hidden Service (if Tor is on)):
/home/admin/config.scripts/ thunderhub 80 3010

# create thunderhub user
sudo adduser --disabled-password --gecos "" thunderhub

# change to thunderhub user
sudo su - thunderhub

git clone
cd thunderhub
npm install
npm run build

# run this in Tmux if you want to keep it running after closing the terminal
npm run start -- -p 3010

Connect to RASPIBLITZ_IP:3010 or to the TOR_HIDDEN_SERVICE.onion in the Tor Browser.

Copy the HEX macaroon and TLS.cert from the menu: LNDCREDS -> EXPORT -> HEX
Use localhost or the LAN_IP and the GRPC port 10009.

Afterwards use the command to run (in Tmux if you want to keep it running after closing the terminal):

sudo su - thunderhub
cd thunderhub
npm run start:compatible -- -p 3010

To uninstall ThunderHub:

sudo userdel -rf thunderhub

To update ThunderHub:

with the RaspiBlitz install script:

bash update


sudo systemctl stop thunderhub
sudo su - thunderhub
cd thunderhub
git pull
npm install
npm run build
sudo systemctl start thunderhub

.env file:

nano /home/thunderhub/thunderhub/.env

# -----------
# Server Configs
# -----------
# BASE_PATH='/basePath'

# -----------
# Interface Configs
# -----------
# CURRENCY='sat'
# FETCH_FEES=false

# -----------
# Account Configs
# -----------


nano /home/thunderhub/thubConfig.yaml

masterPassword: 'PASSWORD' # Default password unless defined in account
  - name: 'blitz'
    serverUrl: ''
    macaroonPath: '/home/thunderhub/.lnd/data/chain/bitcoin/mainnet/admin.macaroon'
    certificatePath: '/home/thunderhub/.lnd/tls.cert'
   #password: 'accountpassword'

Systemd unit

(can copy-paste the whole script)

    # install service
    echo "*** Install ThundeHub systemd for ${network} on ${chain} ***"
    cat > /home/admin/thunderhub.service <<EOF
# Systemd unit for thunderhub
# /etc/systemd/system/thunderhub.service

Description=ThunderHub daemon

ExecStart=/usr/bin/npm run start -- -p 3010


    sudo mv /home/admin/thunderhub.service /etc/systemd/system/thunderhub.service 
    sudo chown root:root /etc/systemd/system/thunderhub.service
    sudo systemctl enable thunderhub
    echo "OK - the ThunderHub service is now enabled"
 sudo systemctl start thunderhub
Copy link

apotdevin commented Jul 26, 2020

@hermanlim thanks! Will look into it

Copy link

Jestopher-BTC commented Aug 13, 2020

After trying the automated scripts, I attempted the manual install on my raspi 3B+. It appears to be maxing out the memory. Any suggestions?

thunderhub@raspberrypi:~/thunderhub $ npm run build

thunderhub@0.9.3 build /home/thunderhub/thunderhub
next build

info - Loaded env from /home/thunderhub/thunderhub/.env
info - Using external babel configuration from /home/thunderhub/thunderhub/.babelrc
Creating an optimized production build .
<--- Last few GCs --->

[25147:0x28e49d8] 250310 ms: Scavenge 228.7 (231.6) -> 228.3 (231.8) MB, 5.3 / 0.0 ms (average mu = 0.187, current mu = 0.027) allocation failure
[25147:0x28e49d8] 251037 ms: Mark-sweep 228.7 (232.1) -> 227.5 (231.6) MB, 691.9 / 0.1 ms (average mu = 0.359, current mu = 0.525) allocation failure scavenge might not succeed
[25147:0x28e49d8] 251066 ms: Scavenge 227.9 (231.6) -> 227.5 (231.6) MB, 7.7 / 0.0 ms (average mu = 0.359, current mu = 0.525) allocation failure

<--- JS stacktrace --->

==== JS stack trace =========================================

0: ExitFrame [pc: 0xe1edbc]

Security context: 0x5514e3ad
1: toString [0x29a08d41] [buffer.js:~771] [pc=0x5d0a0b14](this=0x4e585f51 ,0x23540279 ,0x23540279 ,0x23540279 )
2: arguments adaptor frame: 0->3
3: InternalFrame [pc: 0xe1ae54]
4: EntryFrame [pc: 0xe1ab54]
5: builtin exit frame: parse(this=0x55145f35 ,0x4e585f51 ...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
npm ERR! errno 134
npm ERR! thunderhub@0.9.3 build: next build
npm ERR! Exit status 134
npm ERR!
npm ERR! Failed at the thunderhub@0.9.3 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /home/thunderhub/.npm/_logs/2020-08-13T17_17_27_738Z-debug.log

Log output:

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli '/usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/bin/node',
1 verbose cli '/usr/bin/npm',
1 verbose cli 'run',
1 verbose cli 'build'
1 verbose cli ]
2 info using npm@6.14.4
3 info using node@v12.16.3
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle thunderhub@0.9.3prebuild: thunderhub@0.9.3
6 info lifecycle thunderhub@0.9.3
build: thunderhub@0.9.3
7 verbose lifecycle thunderhub@0.9.3build: unsafe-perm in lifecycle true
8 verbose lifecycle thunderhub@0.9.3
build: PATH: /usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/thunderhub/thunderhub/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/sbin:/usr/local/lib/nodejs/node--/bin/
9 verbose lifecycle thunderhub@0.9.3build: CWD: /home/thunderhub/thunderhub
10 silly lifecycle thunderhub@0.9.3
build: Args: [ '-c', 'next build' ]
11 silly lifecycle thunderhub@0.9.3build: Returned: code: 134 signal: null
12 info lifecycle thunderhub@0.9.3
build: Failed to exec build script
13 verbose stack Error: thunderhub@0.9.3 build: next build
13 verbose stack Exit status 134
13 verbose stack at EventEmitter. (/usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:310:20)
13 verbose stack at ChildProcess. (/usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:310:20)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid thunderhub@0.9.3
15 verbose cwd /home/thunderhub/thunderhub
16 verbose Linux 4.19.118-v7+
17 verbose argv "/usr/local/lib/nodejs/node-v12.16.3-linux-armv7l/bin/node" "/usr/bin/npm" "run" "build"
18 verbose node v12.16.3
19 verbose npm v6.14.4
20 error code ELIFECYCLE
21 error errno 134
22 error thunderhub@0.9.3 build: next build
22 error Exit status 134
23 error Failed at the thunderhub@0.9.3 build script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 134, true ]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment