You can deploy a self-hosted BTCPay Server (Full Bitcoin Node + Lightning Network LND) from a cheap, straightforward and customizable web-interface in just a few clicks with LunaNode hosting. This is a joint effort of BTCPay community and LunaNode. You can now print BTCPay faster than fiat. The installation is as easy as installing FIFA19 on your PC.
We could end the announcement now. Head over to the deployment wizzard and launch your first BTCPay. No further instructions needed. Just create LunaNode account and copy/paste the API.
However, BitcoinShirt loves drama and announcements, so here’s the full story.
Ever since I began using BTCPay back in February 2018, as a non-techie, I found the installation process a bit intimidating. I’m a quick learner, but the fact that as a merchant I had to use the terminal and command line (even if it’s a simple copy-paste tutorial) was not a good user experience.
From the beginning, BTCPay Server had sort of a 1-click deployment with Microsoft Azure. The Azure VPS is expensive. The UI is cluttered and overwhelming.
I’ve spent a fair amount of time on Reddit trying to explain to merchants why BTCPay matters and the importance of self-sovereignty, privacy and censorship-resistance it brings. The only argument I couldn’t argue in those fierce discussions on late-night Reddit sessions is that BTCPay was indeed a bit harder to set up and takes more time compared to custodial options.
The entire BTCPay community and developers knew this was a problem which we must solve. Let’s find a way to deploy BTCPay easy and cheap!
The journey of finding the cheapest a most straightforward way to install BTCPay began a few months ago. We researched and tried various options recommended to us on Twitter and Reddit. Somehow we always bumped into obstacles. Either the hosting provider was expensive, did not accept Bitcoin, or didn’t have Docker support. The enthusiasm started to fade away that we’ll find a hosting provider that meets all of the requirements.
Luckily, Francis Pouliot suggested LunaNode – a hosting provider that accepts Bitcoin payments, does not have KYC, has reasonable prices and meets all the technical requirements. It sounded like a perfect solution, so Nicolas gave it a try and it worked. He then created the installation article which I later used in my video guide. The process of manually deploying BTCPay on LunaNode, although well-documented on our end, was far from effortless deployments we wanted to have.
We knew there’s more we can do to strip the complexity and bring BTCPay closer to an average Joe. The solution was not on the horizon until one evening RockStarDev created the #lunanode Slack channel.
“I called LunaNode, and one of their guys will join us shortly. Be polite” – he said. I was surprised. It felt a bit corporate. “Should I wear a tie” I wanted to exclaim but decided not to.
A few hours later guy name Favyen joined the channel. Little did I know at that moment that Favyen is a magician. He, like all of the guys in the Slack channel (except for myself), has some mad skills. To my surprise, the company was very open-minded to our suggestions and ideas.
All of a sudden, Nicolas, RockstarDev and Kukks decided to throw me into the fire and “assigned” me with a task to help Favyen. For someone with no developer background, I was a bit hesitant. Nah. I wasn’t hesitant; I was freaking out.
I had no idea what to do, but I wanted BTCPay to be available to the masses badly, so I behaved like I knew what I was talking about and provided some sketches to look professional. I did not wear a tie during those Slack chats with Favyen.
I can’t stress enough how hard Favyen worked on the project. I am thankful how patient he was with me and my lack of server architecture and back-end understanding. Our mission was clear – it has to work out of the box, be super-easy, customizable and cheap. Nicolas, Kukks, and RockstarDev helped with few impressive commits and made our life much more comfortable.
During the process, Favyen and I deployed over 40 test servers and tested various implementations, cutting off the unnecessary stuff and ironing the minor bugs along the way. Plenty of servers were hurt and trashed during the trial and error process.
We wanted to leave a bit of space for customization. Favyen added the ability to add SSH keys for security (optional) and the ability to select the repository, branch from which you want to install BTCPay. These features are optional. Newbie has all the recommended settings pre-selected, so he only has to click “Continue” three times and – boom the server is online.
Before we begin
Before you begin, make sure to create your LunaNode account and fill it with some credits. They accept Bitcoin. If you want step by step tutorial how to create LunaNode account and add credits, see this article I wrote.
Log in into your LunaNode, go to API page and create a new API.
Deploying BTCPay Server
Video bellow walks you through the setup and explains all of the options you can customize.
The interface is so easy and self-explanatory. All of the features are pre-selected. That’s why I don’t think you need the step by step guidance, but just in case you do:
- Go to https://launchbtcpay.lunanode.com/
- Paste your API key and API ID.
- Click Continue
- Use generated LunanNode domain or use your own (see this guide for using your domain)
- Click Continue
- Customize BTCPay according to your needs (add SSH key, SSL e-mail, altcoins, Lightning Network implementation, etc.). Note: If you’re using more than two altcoins, go with a better hosting plan.
- Launch BTCPay
- Wait for 5 minutes for the server to deploy. Be patient.
- Go to your domain.
Now you have to wait for BTCPay to sync. The speed of sync depends on the hosting plan you used and the number of coins you’ve added. For the cheapest 8.8$ USD. For BTC + LND it takes around 5-6 days to sync on the M2 plan fully. If you want your node to synchronize faster – select a higher-priced plan.
Making BTCPay easy to install is the first step towards getting more people to use it. We need more tutorials, more people, more translations, more documentation, and ultimately better UI and UX, which can be done only when we’re finished with adding features. And oh boy, the features that are coming, but let’s leave that for another article.
Here is a fun video comparing the number of steps and complexity we stripped with this new web-interface.
— bitcoinshirt (@bitcoinshirtco) October 1, 2018
An Open Invitation to hosting providers
To prevent a single point of failure, I would like to invite other hosting providers to follow LunaNode example and provide easy 1-click deployment for BTCPay Server. If you’re a hosting provider, feel free to join us on Slack to see how we can make BTCPay more accessible to users.
Once again, I would like to thank LunaNode and Favyen for amazing efforts and accomplishment.