Up until now, this Lightning Network series was mostly dealing with using software that is confined to a cell phone. Part IV might be a bit of a jump: you're going to move from everything being confined on the phone to hosting your own full Bitcoin node and LND (Lightning Network Daemon) node on a cloud server.

We are going to get there by using a BTCPay Server installation and LunaNode. We will use the Joule Chrome browser extension to use your LND node via the browser and use the Zeus app from your cell phone. Some things to note before we get started:

  • It will cost at least $10 per month for the cloud server hosting, more if you use backups like I recommend, so the cost might be more like $12 a month. If you intend to keep this up long term, you'll need to remember to pay this with Bitcoin each month. If you elect to pay with a credit card, you can set up auto-pay.
  • You will need a phone number to confirm your account, you can use a burner phone number to maximize privacy if you so desire.
  • You will need to lock up some liquidity in the form of some Bitcoin. (You could skip opening an outbound channel and skip to the section about getting an inbound channel established.)
  • The difficulty and complexity from the previous part has skyrocketed. It isn't that complicated but there might be a lot of new concepts (including SSHing into your BTCPay Server) that you may not be familiar with.

Getting started with LunaNode

Your Bitcoin full node and LND node are going to be housed in a cloud server called LunaNode. LunaNode accepts Bitcoin (through BitPay! ugh) and BTCPay Server has set up an automated deployment system with them to make the process of getting started very easy.

First you will have to create your LunaNode account:

Go to LunaNode.com and click Sign Up in the upper right hand corner. Note: The link to LunaNode is an affiliate link.

Create a username/password and input your country.

Fund the account, either by depositing some Bitcoin or by using a credit card. If you use your credit card, you will get a $20 promotional credit. Good for roughly two months of running your node!

You'll be prompted to enter your phone number and verify the four digit code that you are sent via SMS.

Once the credit you've entered above is on the account, please go to the API page. Click Create New API key. It will give you a long string, copy that for the next step.

Navigate to https://launchbtcpay.lunanode.com/
You will then Paste the long string into API key field and copy paste the small string labeled API ID seen at the bottom of the API page into API ID field.

Choose if you want to deploy this to the hostname presented or if you want to use your own domain.

Next, you'll need to configure your deployment of your BTCPay Server. Your VM plan will determine the speed of the server that will house your BTCPay Server. The m.2 plan is the plan that will keep the costs around $10-$12 per month.

Ensure that you choose LND as your Lightning implementation and to choose an alias for for your node at the bottom of the page. Once everything looks good, click Launch VM.

It will take around 5 minutes for your server to deploy.

Eventually, your BTCPay Server will be deployed. Once it is, you'll click on the provided hostname or your own domain to access your server. It'll probably take another five minutes for everything to spin up and be ready for you to access.

Your Bitcoin full node will now sync. It can take up to four days depending on the level of VM that you selected during the deployment step above.

Once that is complete, return to this page and click on the register button. Input an email and password. Please retain this information in a safe place like a password manager because it is tedious to recover from losing this information.

Accessing your LND Node

Now that you have your cloud server and your BTCPay Server all set up, it is time to set up a way to access your LND node. We are going to do this by using Joule, a browser extension. At the end of this article, we will set up Zeus on mobile.

Joule is a browser extension that works on Chrome, Firefox, Opera, and Brave. It allows you to access your LND node remotely and do things with it using a graphical interface.

Go ahead and install Joule in whatever browser you'd like. Once done, click on the extension and it will prompt you to get started. Click on that button.

Since you have a BTCPay Server, we are going to choose that option.

Return to your BTCPay server interface. Navigate to Server Settings -> Services -> LND (REST server) -> See Information.

Please click on "Show QR Code."

Then click on the "here" at the end of the sentence "See QR Code information by clicking here."

It will show you a connection string. Copy this into your clipboard. Return to your Joule interface and paste this string. If successful, you should see something like the following screen.

Choose a password.

Viola! You now have access to your newly spun up LND node on your BTCPay Server.

Establishing your First Channel

Now that we have a way to access our LND node, the next step is to get a channel established that will allow us to perform outbound transactions. You will not be able to receive any funds using just this step, you will need to also find some other nodes to connect to you, the next section will go over how to do that. Note: You can skip this section if you prefer to only have an inbound channel that you will fund with current Lightning Network funds, this might make sense if you followed the previous part of this series.

The first step is to deposit some Bitcoin into your LND node by clicking on Deposit in the Joule interface and sending Bitcoin to the node. Please try to send at least 150k sats (~$15) to your node to ensure we can open up a channel.

Please wait for that Bitcoin transaction to get a confirmation. Once it gets a confirmation, open up the menu in the upper right hand corner, and click "open channel." Ensure that you click the "show advanced fields" at the bottom of the screen that pops up.

Choosing the best channel to connect with is a separate article onto itself. For now, we are going to check https://moneni.com/mcb/nodematch to see what the best routing node for us to connect to might be. It looks like rompert.com is #1. We'll just go with that for simplicity sake.

The relevant connection string is:


Copy and paste this string into the Joule interface. Choose the capacity of the channel. In my case, I'm choosing 149500 sats, giving about room for a fee of up to 500 sats. Choose the fee that you'd like to pay for this transaction, I'm a cheapskate so I picked 2 sats per byte. If everything looks correct, click "open channel."

If everything went correctly, you should get the following screen:

Depending on what fee you selected and how many other transactions are pending in the mempool, it might take a while for your channel to confirm. Come back in an hour and check up on it. Once it is confirmed, you will be able to pay Lightning invoices in your browser very easily. I'll list ways to do this later on in this article.

Getting Inbound Capacity

As stated previously, the previous section only covers inbound liquidity. In this section, we will cover some ways to get some inbound liquidity. Note: We are going to use SSH in this section, being able to SSH in to your LND node will give you far more control over your Lightning Network experience that we will use again at the end of this article.

Option 1: LNBIG

This part might be a more complicated but I'm confident my steps should help guide you through the process. You can get a inbound channel as large as 5 million satoshis with this option.

In order to complete this step, we need to return the BTCPay Server interface. Login if you aren't already, then return to Sever Settings -> Services -> SSH -> See information.

You will see an option that says "Download Key File", click this and save this file in a secure place. This will give anyone who possess it the ability to access your BTCPay Server and access your LND node with all of your Bitcoin in it.

Next, download Secure Shell app for Chrome. We will use this to access our BTCPay Server and give commands to the LND command line interface needed to get LNBIG to open up an inbound channel to your node.

Once installed, launch the app. You will be presented with the connection screen.

Return the SSH screen on your BTCPay server interface. You will see something that says "ssh root@[yourdomainhere]", copy and paste that string into the top field in the Secure Shell app. Click on import and find the key file that you saved earlier. Now click enter to connect.

You will be prompted to authorize the connection, type yes.

Input the following line to update all the software on your server:

apt-get update && apt-get upgrade -y

Just to note, bitcoin-lncli.sh is the command that you will use to access your LND node. I'd advise that you use the following command to get acquainted with the possible commands on your LND node:

bitcoin-lncli.sh help

Let's go LNBIG's page to begin the process there.

Choose the amount of inbound capacity that you would like and then make sure the LND / C-Lightning / BTCPay / Eclair option is selected then click next.

You will be presented with three commands, you can ignore the sudo su command since you already are in root. Change the directory to btcpayserver-docker:

cd btcpayserver-docker

Once done, copy and paste the long string in the LNBIG interface to the Secure Hell app.  It should start with "./bitcoin-lncli.sh connect" followed by a bunch of other random looking characters. Note: You can right click to paste things into Secure Shell. Click enter after you have pasted the command.

Your command line won't show any feedback, but if everything went okay, you should see the following on the LNBIG website:

You should also see a new channel opening within the Joule interface:

Once again, you will have to wait for a few Bitcoin confirmations in order to begin using your new channel.

Option 2: Bitrefill

Bitrefill offers two paid inbound channel options, with one option allowing you to have outbound capacity included as well. These channels go up to 8 million sats or 10 million sats respectively. Note: This Bitrefill service will charge you a fee to open these channels, from $1 up to $25.

Lightning Channel will open up just an inbound channel with an extra fee being added for the service.
Turbo Lightning Channel will open up an inbound channel with half of it being granted to you as outbound capacity. You will pay the amount of the outbound capacity, as well as an extra fee for the inbound capacity. Note: At this time of this article, the Turbo Lightning Channel is "out of stock."

We will go with the Lightning Channel for this article. Let's go for 500,000 sats.

There are many different ways to pay for this: on-chain Bitcoin, with Lightning, altcoins, and directly from Coinbase. In this example, we are going to use Lightning.

Once you pay for the channel, you should get a confirmation.

Once you click "Claim your purchase", you will be presented with a QR code and some command line options. Similar to the LNBIG option above, you'll need to SSH in to the command line of your LND node.

Following the steps in the LNBIG section, you will SSH into your LND node and then change the directory:

cd btcpayserver-docker

Once you reach this part, you will then copy and paste the command from Bitrefill under the "BTCPay LND Channel" section. It should return a {"status":"OK"} message if everything goes okay. You should now be able to see your new opening channel in your Joule interface.

Getting Mobile Access via Zeus Wallet

In order to get access to your LND node when you're on your mobile phone, you'll use Zeus wallet. It is available on both Android and iOS. Download and install the app.

You'll be presented with a settings screen when you open it. Go to settings.

Click "Scan BTCPay Config" to continue.

Your camera will then activate.

Return to the BTCPay Server interface. Server Settings -> Services -> LND (Rest Server) -> See Information.

Click "Show QR Code".

Scan the QR code that appears with your Zeus app.

Within the Zeus app, click "Save Node Config" and then return to the front page of the app. You will be able to access your channels of your LND node like any other Lightning Network wallet.

Hopefully Part IV of my series has given you the tools to run your own LND node and learn more about the Lightning Network. This concludes my series about onboarding to the Lightning Network.

Thanks to Adam for helping me to correct some of my grammar.

If you learned anything from this series or if you have any other feedback, please let me know.

Here are the other parts of the series:

Part I: Getting started with a Custodial Wallet/Usability of LN

Part II: Non-Custodial Wallets

Part III: Non-custodial wallet with Channel Management