Aplicació web
ThunderHub és un gestor de nodes LND de codi obert on pots gestionar i supervisar el teu node des de qualsevol dispositiu o navegador. Et permet prendre el control de la xarxa Lightning amb una interfície d’usuari simple i intuitiva i la tecnologia més puntera.
Preparatius
Instal·leu dependències
- Instal·leu Node.js mitjançant el gestor de paquets apk.
Aquestes són dependències de construcció (es pot eliminar després de la instal·lació, si voleu)
$SU apk add --virtual .build-deps git gnupg npm
Aquestes són dependències en temps d’execució
$SU apk add nodejs-current
Creeu l’usuari/grup thunderhub
$SU addgroup -S thunderhub
$SU adduser \
-S \
-D \
-H \
-h /dev/null \
-s /sbin/nologin \
-G thunderhub \
-g thunderhub \
thunderhub
Afegeix l’usuari thunderhub
al grup lnd
$SU adduser thunderhub lnd
Afegiu també l’usuari satoshi
al grup thunderhub
$SU adduser satoshi thunderhub && exec su -l satoshi
Servidor intermediari invers
A la secció de Seguretat, hem configurat un servidor intermediari invers. Ara podem afegir la configuració de ThunderHub.
- Habilita el servidor intermediari invers per encaminar el trànsit HTTPS extern xifrat internament cap a ThunderHub
$SU $EDITOR /etc/caddy/sites/thunderhub.caddy
:4002 {
import tls
handle_errors 497 {
redir https://{host}:{port}{uri} 301
}
handle {
reverse_proxy 127.0.0.1:3000
}
}
- Torna a carregar el Caddy
$SU rc-service caddy reload
Tallafoc
- Configura el tallafoc per permetre les sol·licituds HTTPS entrants
$SU $EDITOR /etc/awall/optional/thunderhub.json
{
"description": "Allow ThunderHub SSL",
"filter": [
{
"in": "internet",
"out": "_fw",
"service": { "proto": "tcp", "port": 4002 },
"action": "accept",
"conn-limit": { "count": 10, "interval": 60 }
}
]
}
- Habilitar-ho
$SU awall enable thunderhub
$SU awall activate
Instal·lació
ThunderHub ofereix una interfície web lleugera i fàcil d’utilitzar per aconseguir una gran gestió del node.
Descarrega el codi font
Obtenim la darrera versió del codi font de ThunderHub i la instal·lem.
- Descarrega el codi font de l’última versió de ThunderHub. Pots comprovar la pàgina de versions per veure si hi ha una versió més nova disponible. Tanmateix, altres versions podrien no haver estat provades adequadament amb la resta de la configuració de Microbolt.
cd /tmp
VERSION=0.13.31
git clone --branch v$VERSION https://github.com/apotdevin/thunderhub.git && cd thunderhub
Verificació de signatura
- Per evitar l’ús de codi font incorrecte, comproveu que el desenvolupador principal Anthony Potdevin hagi signat correctament la versió.
wget -qO- https://github.com/apotdevin.gpg | gpg --import
git verify-commit v$VERSION
Instal·la i compila
- Instal·leu totes les dependències mitjançant el Node Package Manager (NPM).
npm ci
La instal·lació pot trigar un temps. Pot ser que hi hagi moltes sortides confuses, però si veieu alguna cosa semblant a la següent, la instal·lació ha estat correcta:
A data de 2024-09-01
, hi ha com a mínim 26 vulnerabilitats que no es poden
abordar sense fer canvis substancials que podrien afectar altres parts del
programari
npm audit fix
26 vulnerabilities (1 low, 10 moderate, 15 high)
To address issues that do not require attention, run:
npm audit fix
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
Millora la teva privadesa optant per sortir del telemetria de Next.js
npx next telemetry disable
- Feu-ne una instal·lació permanent global
npm run build
mkdir ./dist/bin
printf "%s\n" \
"#!/bin/sh" \
"npm_package_version='$VERSION' \\" \
"node \$@ /var/lib/thunderhub/main" \
> ./dist/bin/cli.sh
chmod +x ./dist/bin/cli.sh
- Instal·la el backend i les dependències
$SU mv -f /tmp/thunderhub/dist /var/lib/thunderhub
$SU cp -R node_modules /var/lib/thunderhub
- Instal·la el frontend
$SU mkdir -p /var/lib/thunderhub/src/client
$SU cp -R /tmp/thunderhub/src/client/public /var/lib/thunderhub/src/client/public
$SU cp /tmp/thunderhub/src/client/next.config.js /var/lib/thunderhub/src/client/next.config.js
$SU mv -f /tmp/thunderhub/src/client/.next /var/lib/thunderhub/src/client/.next
$SU chown -R thunderhub:thunderhub /var/lib/thunderhub
$SU ln -s /var/lib/thunderhub /usr/lib/node_modules/thunderhub
$SU ln -s ../lib/node_modules/thunderhub/bin/cli.sh /usr/bin/thunderhub
Neteja
cd
rm -rf /tmp/thunderhub
$SU apk del .build-deps
Configuració
- Edita el fitxer de configuració
$SU $EDITOR /etc/thunderhub/thubConfig.yaml
masterPassword: 'PASSWORD' # Default password unless defined in account
accounts:
- name: 'Microbolt'
serverUrl: '127.0.0.1:10009'
macaroonPath: '/var/lib/lnd/data/chain/bitcoin/mainnet/admin.macaroon'
certificatePath: '/var/lib/lnd/tls.cert'
password: '[E] ThunderHub password'
Substitueix [E] ThunderHub password
per la teva
Habilita les comprovacions de salut automàtiques
masterPassword: 'PASSWORD' # Default password unless defined in account
accounts:
- name: 'Microbolt'
serverUrl: '127.0.0.1:10009'
macaroonPath: '/var/lib/lnd/data/chain/bitcoin/mainnet/admin.macaroon'
certificatePath: '/var/lib/lnd/tls.cert'
password: '[E] ThunderHub password'
healthCheckPingEnabled: true
Còpies de seguretat automàtiques a Amboss
Tingues en compte que si atures ThunderHub, Amboss interpretarà que el teu node està fora de línia, ja que la connexió s’estableix entre ThunderHub <-> Amboss per enviar pings de comprovació d’estat
masterPassword: 'PASSWORD' # Default password unless defined in account
accounts:
- name: 'Microbolt'
serverUrl: '127.0.0.1:10009'
macaroonPath: '/var/lib/lnd/data/chain/bitcoin/mainnet/admin.macaroon'
certificatePath: '/var/lib/lnd/tls.cert'
password: '[E] ThunderHub password'
backupsEnabled: true
Aquestes últimes característiques opcionals no estan disponibles per a un node de testnet
Accés remot per Tor
- Afegiu les línies següents a la secció de “location-hidden services” al fitxer
torrc
.
$SU $EDITOR /etc/tor/torrc
# Hidden Service Thunderhub
HiddenServiceDir /var/lib/tor/thunderhub/
HiddenServiceVersion 3
HiddenServicePoWDefensesEnabled 1
HiddenServicePort 443 127.0.0.1:3000
- Torneu a carregar la configuració de Tor i obteniu la vostra adreça de connexió.
$SU rc-service tor reload
$SU cat /var/lib/tor/thunderhub/hostname
abcdefg..............xyz.onion
- Ara hauries de poder connectar-te de forma remota al teu Public Pool a través de Tor utilitzant el teu nom d’amfitrió
Inici automàtic a l’arrencada
Ara ens assegurarem que el nostre gestor de nodes Lightning s’iniciï com a servei a l’ordinador perquè estigui sempre en execució.
- Creeu la unitat init.d de ThunderHub i copieu/enganxeu la configuració següent. Guardar i sortir.
$SU $EDITOR /etc/init.d/thunderhub
#!/sbin/openrc-run
: ${THUNDERHUB_CONFIGFILE:=/etc/thunderhub/thubConfig.yaml}
: ${THUNDERHUB_DATADIR:=/var/lib/thunderhub}
: ${THUNDERHUB_LOGDIR:=/var/log/thunderhub}
: ${THUNDERHUB_USER:=thunderhub}
: ${THUNDERHUB_GROUP:=thunderhub}
: ${THUNDERHUB_BIN:=/usr/bin/thunderhub}
: ${THUNDERHUB_OPTS=${THUNDERHUB_OPTS}}
: ${THUNDERHUB_SIGTERM_TIMEOUT:=600}
THUNDERHUB_PIDDIR="/run/thunderhub"
name="ThunderHub"
description="Monitor and manage your node from any browser and any device"
directory="${THUNDERHUB_DATADIR}"
required_files="${THUNDERHUB_CONFIGFILE}"
pidfile="${THUNDERHUB_PIDDIR}/${SVCNAME}.pid"
retry="${THUNDERHUB_SIGTERM_TIMEOUT}"
command="${THUNDERHUB_BIN}"
command_args="${THUNDERHUB_OPTS}"
command_user="${THUNDERHUB_USER}:${THUNDERHUB_GROUP}"
command_background="true"
start_stop_daemon_args="--env BASE_PATH=''
--env COOKIE_PATH=''
--env ACCOUNT_CONFIG_PATH='${THUNDERHUB_CONFIGFILE}'
--env NODE_ENV='production'
--env NEXT_TELEMETRY_DISABLED=1
--stdout ${THUNDERHUB_LOGDIR}/debug.log
--stderr ${THUNDERHUB_LOGDIR}/debug.log"
depend() {
need lnd tor
}
start_pre() {
checkpath --file --mode 0660 --owner "${command_user}" "${THUNDERHUB_CONFIGFILE}"
checkpath --directory --mode 0750 --owner "${command_user}" "${THUNDERHUB_DATADIR}"
checkpath --directory --mode 0755 --owner "${command_user}" "${THUNDERHUB_LOGDIR}"
checkpath --directory --mode 0755 --owner "${command_user}" "${THUNDERHUB_PIDDIR}"
checkconfig
}
checkconfig() {
if ! grep -qs '^ macaroonPath: ' "${THUNDERHUB_CONFIGFILE}"
then
eerror ""
eerror "ERROR: You must set a macaroonPath path to run ThunderHub"
eerror "The setting must appear in ${THUNDERHUB_CONFIGFILE}"
eerror ""
return 1
fi
}
stop() {
ebegin "Stopping ${SVCNAME}"
pkill -TERM -P "$(cat ${pidfile})"
start-stop-daemon \
--stop \
--pidfile="${pidfile}" \
--retry="${THUNDERHUB_SIGTERM_TIMEOUT}" \
--exec="${THUNDERHUB_BIN}"
eend $?
}
- Habilita el permís d’execució
$SU chmod +x /etc/init.d/thunderhub
Habilita logrotate
- Introduïu la configuració següent completa. Guardar i sortir
$SU $EDITOR /etc/logrotate.d/thunderhub
/var/log/thunderhub/*.log {
weekly
missingok
rotate 104
compress
delaycompress
notifempty
create 0640 thunderhub thunderhub
sharedscripts
postrotate
kill -HUP `cat /run/thunderhub/thunderhub.pid`
endscript
}
- Prova
$SU logrotate /etc/logrotate.d/thunderhub --debug
Activa i inicia ThunderHub
$SU rc-update add thunderhub
$SU rc-service thunderhub start
Felicitats! Ara tens el Thunderhub funcionant.
- Comproveu el registre per veure la sortida de Thunderhub. Sortiu amb
Ctrl-C
tail -f /var/log/thunderhub/debug.log
Ara pots accedir a ThunderHub des de la teva xarxa local navegant a https://nakamoto01:4002, https://nakamoto01.local:4002 (o la teva adreça IP equivalent).
Accés al teu compte de node Amboss
- A la pantalla “Home” - secció “Quick Actions”, feu clic a l’icona d’Amboss “Login”, espereu que la notificació a la part superior dreta us mostri “Logged in” i feu clic de nou a l’icona d’Amboss “Go to”. Això obrirà una pestanya secundària al vostre navegador per accedir al vostre compte de node Amboss
Si no podeu fer “Login”, potser la causa és que encara no teniu un canal públic obert. Necessitareu com a mínim un canal públic obert durant uns dies. Planifiqueu obrir un canal de petita mida per estar connectat amb alguns iguals de la Xarxa Lightning o directament al node d’Amboss. Més informació a la documentació d’Amboss
- Assegureu-vos que esteu connectats al compte d’Amboss, ara tornem a Thunderhub per als següents passos
Activar còpies de seguretat automàtiques i notificacions de comprovació d'estat al compte d'Amboss
- Obriu “Settings” prement la roda dentada a la cantonada superior dreta del Thunderhub
- Canvieu a “Yes” -> Amboss: “Auto backups” i “Healthcheck Pings”
- Proveu d’enviar una còpia de seguretat a Amboss introduint-vos a la secció “Tools”, al menú principal de l’esquerra
- Premeu el botó “Push” per provar el funcionament correcte
- Torneu al lloc web d’Amboss i accediu a “Account” al menú principal
- Accediu a “Backup” i assegureu-vos que la data de la darrera còpia de seguretat sigui la mateixa que la feta anteriorment. Es recomana descarregar el fitxer de còpia de seguretat i emmagatzemar-lo en un lloc segur per a futures recuperacions. El fitxer de còpia de seguretat s’actualitzarà automàticament a Amboss per a cada obertura i tancament de canal. També podeu fer-ho a la secció “Tools” del Thunderhub, “Backups” -> “Backup all channels” -> botó “Download”
- A Amboss, accediu a “Monitoring” per configurar “Healthcheck Settings”
No dubteu a enllaçar a les notificacions bot de Telegram, activar les diferents notificacions, completar el vostre perfil de node públic a Amboss i altres coses a les diferents seccions del vostre compte.
Recuperar canals utilitzant el mètode de ThunderHub
Després d’una possible corrupció de dades del teu node LND, assegura’t que aquest node antic estigui completament apagat abans de començar la recuperació. Una vegada hàgiu sincronitzat el nou node, recuperat a la cadena amb les llavors, completat la reexploració completa de la cadena, i instal·lat i engegat el Thunderhub, aneu al tauler de control de Thunderhub.
- Des de la barra lateral esquerra, feu clic a “Tools”, i aneu a la secció “Backups” -> “Recover Funds from Channels” -> feu clic al botó “Recover”.
- Introduïu el text complet del fitxer de còpia de seguretat dels vostres canals descarregat anteriorment en el pas anterior i feu clic al botó “Recover”. Tots els canals que hàgiu obert al vostre node antic es tancaran forçosament i apareixeran a la pestanya “Pending” a la secció “Channels” fins que es confirmi el tancament
Utilitzeu aquesta guia com a últim recurs si heu perdut l’accés al vostre node o no podeu iniciar LND a causa d’un error fatal. Aquesta guia tancarà tots els vostres canals. Els vostres fons estaran disponibles a la cadena a diferents velocitats.
Per al futur: actualització de ThunderHub
Torneu a seguir la pàgina Aplicació web substituint el valor de la
variable d’entorn VERSION=x.xx
per l’últim si encara no s’ha modificat en
aquesta guia.
- Actualitzeu la configuració de ThunderHub si cal (vegeu les notes de la versió)
$SU $EDITOR /etc/thunderhub/thubConfig.yaml
- Reinicieu el servei per aplicar els canvis
$SU rc-service thunderhub restart