title | nav_order | parent | layout | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Mobile app |
60 |
Lightning |
|
{% hint style="danger" %} Status: Not tested on RaMiX {% endhint %}
We install Zeus, a cross-platform mobile app that connects to your Lightning network node. Make payments with lightning or on-chain and manage your channels while you're on the go.
- Login as
admin
user, and configure LND to allow LND REST from anywhere. Editlnd.conf
sudo nano /data/lnd/lnd.conf
- Add the next line under the
[Application Options]
section. Save and exit
# Specify all ipv4 interfaces to listen on for REST connections
restlisten=0.0.0.0:8080
- Restart LND to apply changes
sudo systemctl restart lnd
- Ensure the gRPC proxy port is now binding to the
0.0.0.0
host instead of127.0.0.1
sudo ss -tulpn | grep lnd | grep 8080
Expected output:
tcp LISTEN 0 4096 0.0.0.0:8080 0.0.0.0:* users:(("lnd",pid=774047,fd=32))
- Configure the Firewall to allow LND REST incoming requests
sudo ufw allow 8080/tcp comment 'allow LND REST from anywhere'
lndconnect, created by Zap, is a utility that generates QR Code or URI to connect applications to LND instances.
- As
admin
user, navigate to thetmp
folder
cd /tmp
- Set the environment variable
VERSION=0.2.0
- Download
{% code overflow="wrap" %}
wget https://github.com/LN-Zap/lndconnect/releases/download/v$VERSION/lndconnect-linux-arm64-v$VERSION.tar.gz
{% endcode %}
- Extract
tar -xzvf lndconnect-linux-amd64-v$VERSION.tar.gz
- Install it
{% code overflow="wrap" %}
sudo install -m 0755 -o root -g root -t /usr/local/bin lndconnect-linux-arm64-v$VERSION/lndconnect
{% endcode %}
- Ensure
lndconnect
is correctly installed
lndconnect -h
Expected output ⬇️
Usage:
lndconnect [OPTIONS]
Application Options:
--lnddir= The base directory that contains lnd's data, logs, configuration file, etc. (default: /home/admin/.lnd)
--configfile= Path to configuration file (default: /home/admin/.lnd/lnd.conf)
-b, --datadir= The directory to find lnd's data within (default: /home/admin/.lnd/data)
--tlscertpath= Path to read the TLS certificate from (default: /home/admin/.lnd/tls.cert)
--adminmacaroonpath= Path to read the admin macaroon from
--readonlymacaroonpath= Path to read the read-only macaroon from
--invoicemacaroonpath= Path to read the invoice-only macaroon from
[...]
- Ensure that you are logged in with the user admin and add the following lines in the "location hidden services" section, below "
## This section is just for location-hidden services ##
" in the torrc file. Save and exit
sudo nano /etc/tor/torrc
# Hidden Service LND REST
HiddenServiceDir /var/lib/tor/hidden_service_lnd_rest/
HiddenServiceVersion 3
HiddenServicePoWDefensesEnabled 1
HiddenServicePort 8080 127.0.0.1:8080
- Reload the Tor configuration and get your connection address
sudo systemctl reload tor
sudo cat /var/lib/tor/hidden_service_lnd_rest/hostname
Example expected output:
abcdefg..............xyz.onion
- Save the onion address in a safe place (e.g., password manager)
lndconnect generates a URI and displays it as a QR code that Zeus can read.
- Still with the
admin
user, and use the following command depending on if you want If you want to use the:
{% tabs %}
{% tab title="Tor connection" %}
Set the --host
parameter with the .onion
address with the one you generated above. e.g. abcdefg......xyz.onion
lndconnect --host=abcdefg......xyz.onion --port=8080 --nocert
{% endtab %}
{% tab title="Wireguard VPN connection (recommended) " %}
After following the Wireguard VPN bonus guide set the --host
parameter address with the private Wireguard VPN IP address. e.g. 10.0.0.1
lndconnect --host=10.0.0.1 --port=8080 --nocert
{% endtab %}
{% tab title="Local network connection" %}
Set the --host
parameter with the IP address of RaMiX. e.g 192.168.1.10
lndconnect --host=192.168.X.XXX --port=8080
{% endtab %} {% endtabs %}
- It will be a big QR code, so maximize your terminal window and use
CTRL+- / "Terminal unzoom" / "Zoom out"
options of your terminal, to shrink the code further to fit the screen or if you prefer you can use-j
parameter to get a code you can copy and paste into the app
{% hint style="warning" %} Keep the SSH session with the QR code open, it will be necessary later to scan the obtained QR code {% endhint %}
On Android, you can get Zeus from Google Play or the GitHub repository if you can’t or do not want to use Google Play. Tap it, download it, and install it. If it's the first time you install an APK on your phone you will be asked to authorize the app to install unknown apps, follow the on-screen instructions to do so.
- Open Zeus and tap on "SCAN LNDCONNECT CONFIG" and, if prompted, allow Zeus to use the camera
- Scan the QR code generated earlier
- Enter a Nickname for your node (e.g. "RaMiX LN")
{% hint style="info" %} If you will use the Tor connection hit on the switch "Use Tor" {% endhint %}
- Click on "SAVE NODE CONFIG"
- A "Warning" banner will appear, push on "I understand, save node config"
{% hint style="success" %} Zeus is now connecting to your node, and it might take a while the first time depending on the selected connection ⏰ {% endhint %}
{% hint style="info" %}
Once you verify that the connection has been made correctly with your Lightning Node, you can close the SSH session by pressing Ctrl
+ D
{% endhint %}
Anyone using Zeus on your phone controls your node and all its funds. Setting up a password or biometrics identification for the app is strongly recommended.
- In the app, tap on the Zeus icon in the top-left corner
- Click on
Security
andSet/Change Password
to enter a Password/PIN or enable the Biometrics feature - Save your password or PIN somewhere safe, e.g., in your password manager
To preserve your privacy, you can choose your private blockchain explorer when making inquiries about on-chain transactions.
- In the app, tap on the Zeus icon in the top-left corner
- Click on
Privacy
and changeDefault Block explorer
, by selectingCustom
, on theCustom block explorer
box, enter your preferred Block Explorer URL,.onion
, the local IP address of BTC RPC explorer:https://192.168.X.XXX:4000
, or Wireguard VPN IP address:https://10.0.0.1:4000
, depending on the situation
To update Zeus, update the app using the same app store or the app source you chose to install it.
- Ensure you are logged in with the user
admin
, display the UFW firewall rules, and note the numbers of the rules for LND REST (e.g. "Y" below)
sudo ufw status numbered
Expected output:
[Y] 8080 ALLOW IN Anywhere # allow LND REST from anywhere
- Delete the rule with the correct number and confirm with "
yes
"
sudo ufw delete X
You must uninstall the app on your phone and delete the LND REST API on Tor hidden service.
- Uninstall the app on your phone
- To deactivate the LND REST API Tor hidden service, comment out the hidden service lines in
torrc
and reload Tor
sudo nano /etc/tor/torrc
# Hidden Service LND REST
#HiddenServiceDir /var/lib/tor/hidden_service_lnd_rest/
#HiddenServiceVersion 3
HiddenServicePoWDefensesEnabled 1
#HiddenServicePort 8080 127.0.0.1:8080
- Reload Tor to apply changes
sudo systemctl reload tor
Port | Protocol | Use |
---|---|---|
8080 | TCP | LND REST port |