{"id":13499229,"url":"https://github.com/mably/lncli-web","last_synced_at":"2026-01-28T21:40:31.849Z","repository":{"id":16961136,"uuid":"80927233","full_name":"mably/lncli-web","owner":"mably","description":"Light-weight web client for the lnd daemon written in NodeJS / Angular.","archived":false,"fork":false,"pushed_at":"2023-03-18T03:56:40.000Z","size":2145,"stargazers_count":184,"open_issues_count":42,"forks_count":58,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-10-31T17:39:17.615Z","etag":null,"topics":["bitcoin","cryptocurrency","lightning","lightning-network","web-client"],"latest_commit_sha":null,"homepage":"https://github.com/lightningnetwork/lnd","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mably.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-02-04T15:13:33.000Z","updated_at":"2024-06-13T18:01:41.000Z","dependencies_parsed_at":"2024-01-14T03:49:54.831Z","dependency_job_id":"985f8517-9407-4ce9-9ea6-e70ed293fe8b","html_url":"https://github.com/mably/lncli-web","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mably%2Flncli-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mably%2Flncli-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mably%2Flncli-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mably%2Flncli-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mably","download_url":"https://codeload.github.com/mably/lncli-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246140565,"owners_count":20729797,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","cryptocurrency","lightning","lightning-network","web-client"],"created_at":"2024-07-31T22:00:31.100Z","updated_at":"2026-01-28T21:40:31.843Z","avatar_url":"https://github.com/mably.png","language":"JavaScript","readme":"# Lnd Web Client\n\n## Installation\n\n\n### Requirements\n\n* [Git](https://git-scm.com/)\n* [NodeJS 11.2+ / npm](https://nodejs.org)\n\n### Procedure\n\nFetch sources from the Lnd Web Client git repository:\n\n```\ngit clone https://github.com/mably/lncli-web.git\n```\nMove into the newly created directory:\n\n```\ncd lncli-web\n```\n\nFetch the dependencies and build the application by running:\n\n```\nnpm install\n```\n\nIf not started automatically, run the following command to build the application:\n\n```\n\"./node_modules/.bin/gulp\" bundles\n```\n\n## Execution\n\n### Requirements\n\n`lncli-web` is now fully compatible with macaroons and encrypted wallets.\n\nBut if you want to start `lnd` with wallet encryption and macaroons disabled, just add those two parameters to the command line:\n\n```\nlnd [...] --no-macaroons --noencryptwallet\n```\n\nIf you want to use macaroons, you need to copy the `lnd` `admin.macaroon` file to the `lncli-web` root directory (by default).  The default path to the `admin.macaroon` file can be modified in the `\u003clncliweb\u003e/config/defaults.js` file.\n\n### Generate lnd certificates compatible with NodeJS gRPC\n\nBeware that lnd autogenerated certificates are not compatible with current NodeJS gRPC module implementation.\n\nLnd uses the `P-521` curve for its certificates but NodeJS gRPC module is only compatible with certificates using the `P-256` curve ([link](https://github.com/grpc/grpc/issues/6722#issuecomment-320348094)).\n\nYou need to generate your own lnd certificates using the following commands (thanks to Alex Akselrod for helping me on this):\n\n```\n# Enter the Lnd home directory, located by default at ~/.lnd on Linux or\n# /Users/[username]/Library/Application Support/Lnd/ on Mac OSX\n# $APPDATA/Local/Lnd on Windows. Also change '/CN=localhost/O=lnd' to '//CN=localhost\\O=lnd' if you are using Git Bash.\ncd ~/.lnd\nopenssl ecparam -genkey -name prime256v1 -out tls.key\nopenssl req -new -sha256 -key tls.key -out csr.csr -subj '/CN=localhost/O=lnd'\nopenssl req -x509 -sha256 -days 36500 -key tls.key -in csr.csr -out tls.cert\nrm csr.csr\n```\n\n\n### Copy generated certificate file into lncli-web directory\n\ncp tls.cert [lncli-web_directory]/lnd.cert\n\n### Start the Webserver\n\n```\nnode server\n```\n\nAvailable command-line arguments:\n\n```\nnode server --help\n\n  Usage: server [options]\n\n  Options:\n\n    -h, --help                    output usage information\n    -V, --version                 output the version number\n    -s, --serverport [port]       web server listening port (defaults to 8280)\n    -h, --serverhost [host]       web server listening host (defaults to localhost)\n    -l, --lndhost [host:port]     RPC lnd host (defaults to localhost:10009)\n    -t, --usetls [path]           path to a directory containing key.pem and cert.pem files\n    -u, --user [login]            basic authentication login\n    -p, --pwd [password]          basic authentication password\n    -r, --limituser [login]       basic authentication login for readonly account\n    -w, --limitpwd [password]     basic authentication password for readonly account\n    -d, --disable-macaroon        set this flag if you do not want to use macaroon files for auth\n    -f, --logfile [file path]     path to file where to store the application logs\n    -e, --loglevel [level]        level of logs to display (debug, info, warn, error)\n    -n, --lndlogfile \u003cfile path\u003e  path to lnd log file to send to browser\n    -k, --le-email [email]        lets encrypt required contact email\n\n```\n\nOpen your browser at the following address: [http://localhost:8280](http://localhost:8280)\n\nIf you want to access `lncli-web` using a domain, add the `--serverhost` flag like so:\n\n ```\n node server --serverhost \u003cyourdomain\u003e\n ```\n Open your browser at the following addres:\n [http://yourdomain:8280](http://yourdomain:8280)\n\n Enjoy!\n\n\n## Docker\n\n#### Build the container\n(from inside the lncli-web folder)\n```\ndocker build . -t lncli-web\n```\n\n#### Run in a Docker container\nMount your .lnd directory to the container:\n\n```\ndocker run -v /path/to/.lnd/:/config lncli-web\n```\n\nThe container will generate certs if necessary.\n\nAny commandline option (see below) can be overridden by setting an appropriate environment variable.\n\nExample: set `SET_LNDHOST` for `--lndhost`, or set `SET_LE_EMAIL` for `--le-email`\n\n#### Running in a Docker container connecting to a remote LND instance\nCopy the admin.macaroon, tls.key and tls.cert to your machine, for example in /tmp/config.\n\nThen, use `docker run` accordingly:\n```\ndocker run -it -e SET_LNDHOST=[IP of lightning host]:10009 -v /tmp/config:/config --net=host lncli-web\n```\nThen just browse to http://127.0.0.1:8280. Note: this still requires you to re-generate your certificates as per above.\n\n## Screenshots\n\nCheck here for the mandatory screenshots: [http://imgur.com/a/LgWcs](http://imgur.com/a/LgWcs)\n\n## Enabling https for remote access\n\nYou need to have a `key.pem` (private key) file and a `cert.pem` (certificate) file available in your path (check the --usetls command-line option).\n\nOn Linux you can create the above files using a self-signed certificate by executing the following command:\n\n```\nopenssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 36500\n```\n\nYou might need to run this extra command to remove the password protection:\n\n```\nopenssl rsa -in key.pem -out newkey.pem \u0026\u0026 mv newkey.pem key.pem\n```\n\nAnd the you need to add the `--usetls` command-line option to point to the directory containing your two `pem` files.\n\nExample command starting a password protected Lnd Web Client with readonly account enabled, running on port 443, and using https with corresponding `pem` files located in the app directory:\n\n```\nnode server -s 443 --usetls . --user manager --pwd 33H966wG --limituser lnd --limitpwd rocks\n```\n\nHoping that helps.\n\n## Network graph\n\nThe lightning network graph rendering functionality requires to have `graphviz` installed on the server.\n\n\n### Contributing to the project\n\nAs of September 27th, all new code that is created or refactored should abide by the [Airbnb JS Style guide](https://github.com/airbnb/javascript). You can use automated tooling to maintain the style guide using [eslint](https://eslint.org). For simplicity, I have outlined a suggested workflow:\n\n\n#### Suggested Workflow\n\n1. write your code changes. For example, you are fixing a bug in `app/lightning.js`\n2. once you are finished your patch, run `eslint app/lightning.js`. This will show you the errors in the source code\n3. optionally, you can also run `eslint --fix app/lightning.js` to let eslint fix errors that it can fix without human intervention\n4. fix the remainig style issues. You are only required to change and commit style for the code you changed (although the more, the merrier!)\n5. commit your clean code\n","funding_links":[],"categories":["Applications"],"sub_categories":["Web Interfaces"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmably%2Flncli-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmably%2Flncli-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmably%2Flncli-web/lists"}