Categorygithub.com/lightninglabs/lightning-terminal
modulepackage
0.13.994-experimental
Repository: https://github.com/lightninglabs/lightning-terminal.git
Documentation: pkg.go.dev

# README

Lightning Terminal (LiT)

CI

Lightning Terminal (LiT) is a browser-based interface for managing channel liquidity.

screenshot

Features

  • Visualize your channels and balances
  • Perform submarine swaps via the Lightning Loop service
  • Classify channels according to your node's operating mode
  • Run a single binary that integrates loopd, poold and faraday daemons all in one
  • Access a preview release of the Pool UI
  • Use Pool to earn sats by opening channels to those needing inbound liquidity

Installation

Download the latest binaries from the releases page.

Additionally, you can find detailed instructions on the docs.lightning.engineering page.

Execution

Run Lightning Terminal with a local lnd instance:

⛰  ./litd --uipassword=UP48lm4Vjqxy<change_this_or_you_will_get_robbed>

Visit https://localhost:8443 to access Terminal.

Note that a password with a minimum of 8 characters is required to run Lightning Terminal. In a production environment, it's recommended that you store this password as an environment variable to avoid it being recorded in the command history.

To use LiT with a remote lnd instance please follow these instructions. If you would like to replace your existing LND instance with the one integrated within LiT please see configuring Terminal.

LND

Note that LiT requires lnd to be built with all of its subservers and requires running at least v0.11.0. Download the latest official release binary or build lnd from source by following the installation instructions. If you choose to build lnd from source, use the following command to enable all the relevant subservers:

⛰  make install tags="signrpc walletrpc chainrpc invoicesrpc"

Interaction

If you plan to run LiT on a remote machine but access the web-interface from your computer you may not want to deal with self-signed certificate browser warnings. To avoid these warnings configure the HTTP server to use a certificate from Let's Encrypt. View the Let's Encrypt Configuration doc for instructions on how to configure this.

Upgrading

If you used command line arguments with previous versions then you don't need to change anything when upgrading.

To upgrade from v0.1.1-alpha or earlier simply create a lit.conf file in your LiT directory. The default location LiT uses depends on your operating system:

  • MacOS: ~/Library/Application Support/Lit/lit.conf
  • Linux: ~/.lit/lit.conf
  • Windows: ~/AppData/Roaming/Lit/lit.conf

Move all the configuration settings specific to LiT from lnd.conf to lit.conf and remove any previous LiT-specific customizations from the configuration settings in lnd.conf. Note that any section headers ([ Example ]) in lit.conf should be removed or changed to comments (# Example).

Usage

Read the walkthrough document to learn more about how to use LiT.

Troubleshooting

If you encounter any issues please see our troubleshooting guide.

Build from source

If you’d prefer to compile from source code please follow these instructions.

Compatibility

Full Lightning Terminal functionality can be dependent on running a compatible version of lnd. View the table below to ensure that you run a compatible version of lnd with the relevant litd release.

This version compatibility dependency table is only relevant when running litd in remote mode (meaning that lnd-mode=remote is set). It shows the minimum lnd version that can be used with different versions of litd (LiT). The bundled version will always come with the correct, compatible versioning.

LiTLND
v0.13.1-alphav0.17.0-beta
v0.13.0-alphav0.17.0-beta
v0.12.5-alphav0.17.0-beta
v0.12.4-alphav0.17.0-beta
v0.12.3-alphav0.16.0-beta
v0.12.2-alphav0.16.0-beta
v0.12.1-alphav0.16.0-beta
v0.12.0-alphav0.16.0-beta
v0.11.0-alphav0.16.0-beta
v0.10.5-alphav0.16.0-beta
v0.10.4-alphav0.16.0-beta
v0.10.2-alphav0.16.0-beta
v0.10.1-alphav0.16.0-beta
v0.10.0-alphav0.16.0-beta
v0.9.2-alphav0.16.0-beta
v0.9.1-alphav0.16.0-beta
v0.9.0-alphav0.16.0-beta
v0.8.6-alphav0.15.4-beta
v0.8.5-alphav0.15.4-beta
v0.8.4-alphav0.15.1-beta
v0.8.3-alphav0.15.1-beta
v0.8.2-alphav0.15.1-beta
v0.8.1-alphav0.15.1-beta
v0.8.0-alphav0.15.1-beta
v0.7.1-alphav0.14.3-beta
v0.7.0-alphav0.14.3-beta
v0.6.7-alphav0.13.3-beta
v0.6.6-alphav0.13.3-beta
v0.6.5-alphav0.13.3-beta
v0.6.4-alphav0.13.3-beta
v0.6.3-alphav0.13.3-beta
v0.6.2-alphav0.13.3-beta
v0.6.1-alphav0.13.3-beta
v0.6.0-alphav0.13.3-beta
v0.5.2-alphav0.12.0-beta
v0.5.1-alphav0.12.0-beta
v0.5.0-alphav0.12.0-beta
v0.4.1-alphav0.11.1-beta
v0.4.0-alphav0.11.1-beta
v0.3.4-alphav0.11.1-beta
v0.3.3-alphav0.11.1-beta
v0.3.2-alphav0.11.1-beta
v0.3.1-alphav0.11.1-beta
v0.3.0-alphav0.11.1-beta
v0.2.0-alphav0.11.0-beta

LiT offers two main operating modes, one in which lnd is running inside the LiT process (called "lnd integrated mode", set by lnd-mode=integrated config option) and one in which lnd is running in a standalone process on the same or remote machine (called "lnd remote mode", set by lnd-mode=remote config option).

In addition to those main modes, the individual bundled daemons (Faraday, Loop and Pool) can be toggled to be integrated or remote as well, or as disabled. This offers a large number of possible configuration combinations, of which not all are fully supported due to technical reasons.

The following table shows the supported combinations:

lnd-mode=integratedlnd-mode=remote
faraday-mode=integratedXX
loop-mode=integratedXX
pool-mode=integratedXX
taprootassets-mode=integratedXX
faraday-mode=remoteX
loop-mode=remoteX
pool-mode=remoteX
taprootassets-mode=remoteX
faraday-mode=disableXX
loop-mode=disableXX
pool-mode=disableXX
taprootassets-mode=disableXX
lnd running in "stateless init" modeX

Daemon Versions packaged with LiT

LiTLNDLoopFaradayPoolTaproot Assets
v0.13.1-alphav0.18.1-betav0.28.5-betav0.2.13-alphav0.6.5-betav0.3.3-alpha
v0.13.0-alphav0.18.0-betav0.28.5-betav0.2.13-alphav0.6.5-betav0.3.3-alpha
v0.12.5-alphav0.17.5-betav0.28.1-betav0.2.13-alphav0.6.4-betav0.3.3-alpha
v0.12.4-alphav0.17.4-betav0.28.0-betav0.2.13-alphav0.6.4-betav0.3.3-alpha
v0.12.3-alphav0.17.4-betav0.27.0-betav0.2.11-alphav0.6.4-betav0.3.3-alpha
v0.12.2-alphav0.17.3-betav0.26.6-betav0.2.11-alphav0.6.4-betav0.3.2-alpha
v0.12.1-alphav0.17.1-betav0.26.5-betav0.2.11-alphav0.6.4-betav0.3.1-alpha
v0.12.0-alphav0.17.0-betav0.26.4-betav0.2.11-alphav0.6.4-betav0.3.0-alpha
v0.11.0-alphav0.17.0-betav0.26.3-betav0.2.11-alphav0.6.4-betav0.2.3-alpha
v0.10.5-alphav0.16.4-betav0.26.2-betav0.2.11-alphav0.6.4-betav0.2.3-alpha
v0.10.4-alphav0.16.4-betav0.25.2-betav0.2.11-alphav0.6.4-betav0.2.3-alpha
v0.10.2-alphav0.16.4-betav0.25.2-betav0.2.11-alphav0.6.4-betav0.2.2-alpha
v0.10.1-alphav0.16.3-betav0.24.1-betav0.2.11-alphav0.6.4-betav0.2.0-alpha
v0.10.0-alphav0.16.2-betav0.23.0-betav0.2.11-alphav0.6.2-betav0.2.0-alpha
v0.9.2-alphav0.16.2-betav0.23.0-betav0.2.11-alphav0.6.2-betan/a
v0.9.1-alphav0.16.1-betav0.23.0-betav0.2.11-alphav0.6.2-betan/a
v0.9.0-alphav0.16.0-betav0.22.0-betav0.2.10-alphav0.6.2-betan/a
v0.8.6-alphav0.15.5-betav0.21.0-betav0.2.9-alphav0.6.1-betan/a
v0.8.5-alphav0.15.5-betav0.20.2-betav0.2.9-alphav0.6.1-betan/a
v0.8.4-alphav0.15.5-betav0.20.1-betav0.2.9-alphav0.5.8-alphan/a
v0.8.3-alphav0.15.4-betav0.20.1-betav0.2.8-alphav0.5.8-alphan/a
v0.8.2-alphav0.15.3-betav0.20.1-betav0.2.8-alphav0.5.8-alphan/a
v0.8.1-alphav0.15.2-betav0.20.1-betav0.2.8-alphav0.5.8-alphan/a
v0.8.0-alphav0.15.1-betav0.20.1-betav0.2.8-alphav0.5.8-alphan/a
v0.7.1-alphav0.15.0-betav0.19.1-betav0.2.8-alphav0.5.7-alphan/a
v0.7.0-alphav0.15.0-betav0.19.1-betav0.2.8-alphav0.5.7-alphan/a
v0.6.7-alphav0.14.3-betav0.18.0-betav0.2.7-alphav0.5.6-alphan/a
v0.6.6-alphav0.14.3-betav0.18.0-betav0.2.7-alphav0.5.6-alphan/a
v0.6.5-alphav0.14.2-betav0.15.1-betav0.2.7-alphav0.5.5-alphan/a
v0.6.4-alphav0.14.2-betav0.15.1-betav0.2.7-alphav0.5.4-alphan/a
v0.6.3-alphav0.14.2-betav0.15.1-betav0.2.7-alphav0.5.4-alphan/a
v0.6.2-alphav0.14.1-betav0.15.1-betav0.2.7-alphav0.5.4-alphan/a
v0.6.1-alphav0.14.1-betav0.15.1-betav0.2.7-alphav0.5.2-alphan/a
v0.5.3-alphav0.13.3-betav0.14.1-betav0.2.6-alphav0.5.0-alphan/a
v0.5.2-alphav0.13.3-betav0.14.1-betav0.2.6-alphav0.5.0-alphan/a
v0.5.1-alphav0.13.0-betav0.14.1-betav0.2.6-alphav0.5.0-alphan/a
v0.5.0-alphav0.13.0-betav0.14.1-betav0.2.6-alphav0.5.0-alphan/a
v0.4.1-alphav0.12.1-betav0.11.4-betav0.2.3-alphav0.4.4-alphan/a
v0.4.0-alphav0.12.0-betav0.11.2-betav0.2.3-alphav0.4.3-alphan/a
v0.3.4-alphav0.11.1-betav0.11.2-betav0.2.2-alphav0.3.4-alphan/a
v0.3.3-alphav0.11.1-betav0.11.2-betav0.2.2-alphav0.3.4-alphan/a
v0.3.2-alphav0.11.1-betav0.11.1-betav0.2.2-alphav0.3.4-alphan/a
v0.3.1-alphav0.11.1-betav0.11.1-betav0.2.2-alphav0.3.3-alphan/a
v0.3.0-alphav0.11.1-betav0.11.0-betav0.2.2-alphav0.3.2-alphan/a
v0.2.0-alphav0.11.1-betav0.10.0-betav0.2.1-alphan/an/a
v0.1.1-alphav0.11.0-betav0.8.1-betav0.2.0-alphan/an/a
v0.1.0-alphav0.10.3-betav0.6.5-betav0.2.0-alphan/an/a

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Package litrpc is a reverse proxy.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

BakeSuperMacaroon uses the lnd client to bake a macaroon that can include permissions for multiple daemons.
New creates a new instance of the lightning-terminal daemon.
NewGrpcLogLogger creates a new grpclog compatible logger and attaches it as a sub logger to the passed root logger.
SetupLoggers initializes all package-global logger variables.
UseLogger uses a specified Logger to output package logging info.
Version returns the application version as a properly formed string per the semantic versioning 2.0.0 spec (http://semver.org/).

# Constants

DefaultAutogenValidity is the default validity of a self-signed certificate.
No description provided by the author
DefaultMacaroonFilename is the default file name for the autogenerated lit macaroon.
No description provided by the author
No description provided by the author
No description provided by the author
GrpcLogSubsystem defines the logging code for the gRPC subsystem.
HeaderMacaroon is the HTTP header field name that is used to send the macaroon.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
Subsystem defines the logging code for this subsystem.
No description provided by the author

# Variables

Commit stores the current commit hash of this build, this should be set using the -ldflags during compilation.
DefaultLitDir is the default directory where LiT tries to find its configuration file and store its data (in remote lnd node).
DefaultMacaroonPath is the default full path of the base lit macaroon.
DefaultRemoteLndMacaroonPath is the default path we assume for a local lnd node to store its admin.macaroon file at.
DefaultTLSCertPath is the default full path of the autogenerated TLS certificate that is created in remote lnd mode.
ErrUnknownRequest is an error returned when the request URI is unknown if the permissions for the request are unknown.
ErrWaitingToStart is returned if Lit's rpcProxy is not yet ready to handle calls.

# Structs

ClientRouteWrapper is a wrapper around a FileSystem which properly handles URL routes that are defined in the client app but unknown to the backend http server.
Config is the main configuration struct of lightning-terminal.
GrpcLogLogger is a wrapper around a btclog logger to make it compatible with the grpclog logger package.
LightningTerminal is the main grand unified binary instance.