This section describes how to provision and connect to ‘BTCPay Server: Bitcoin Payments Made Easy’ VM solution on GCP.
Note: The VM requires a DNS name to configure BTCPay Server. Please create and allocate an Static IP before deploying the instance and use it on the instance deployment page as shown in below guide. If you have a DNS name, create an A record pointing to the VM’s Static IP. Make sure to use a STATIC IP, as a dynamic IP will change after a VM reboot. If you do not have a DNS Name, you can create Dynamic DNS and configure BTCPay Server. Steps to created DDNS(Dynamic DNS) are covered below.
Please note that the VM can only be deployed in us-cetral1-a zone. So select this zone on deployment page.
To create a Static IP, follow these steps:
a. Open your GCP console and select the project where you plan to deploy the BTCPay Sever instance. In the top search bar, search for IP address and select the IP addresses from the search result.
b. On the IP addresses page, click on RESERVE EXTERNAL STATIC IP ADDRESS link on top.
c. On reserve static ip page, provide the name, description. Make sure to select the Network service tier as Premium and keep the IP version as IPv4.
d. On the same page, select the same region us-central1 in which you will deploy the BtcPay Server instance. So that your Static IP and your BtcPay instance will be in the same region. Keep Attached to option to None. We will attach this static ip during VM deployment as explained below. Once done click on Reserve. Now your Static IP is ready.
It will ask you to enable the API’s if they are not enabled already for your account. Please click on enable as shown in the screenshot.
It will take you to the agreement page. On this page, you can change the project from the project selector on top navigator bar as shown in the below screenshot.
Accept the Terms and agreements by ticking the checkbox and clicking on the AGREE button.
It will show you the successfully agreed popup page. Click on Deploy.
On deployment page, give a name to your deployment.
You are missing resourcemanager.projects.setIamPolicy permission, which is needed to set the required roles on the created Service Account
Click Deploy when you are done.
BTCPay Server: Bitcoin Payments Made Easy will begin deploying.
A summary page displays when the compute engine is successfully deployed. Click on the Instance link to go to the instance page .
On the instance page, click on the “SSH” button, select “Open in browser window”.
sudo su ubuntu
cd /home/ubuntu/
sudo passwd ubuntu
Now the password for ubuntu user is set, you can connect to the VM’s desktop environment from any local windows machine using RDP or linux machine using Remmina.
To connect using RDP via Windows machine, first note the Static IP of the VM from VM details page as highlighted below
Then From your local windows machine, goto “start” menu, in the search box type and select “Remote desktop connection”
In the “Remote Desktop connection” wizard, paste the Static IP and click connect
To connect using RDP via Linux machine, first note the external IP of the VM from VM details page,then from your local Linux machine, goto menu, in the search box type and select “Remmina”.
Note: If you don’t have Remmina installed on your Linux machine, first Install Remmina as per your linux distribution.
BTCPay Server, when configured to use Dynamic DNS, will periodically check and update the DNS record if an external IP change is detected. However as we are using Elastic IP for our Ec2 instance, we will not need this extra step.
Please refer to Dynamic DNS Provider list to create a (Free/NonFree) DDNS for this instance. First, create an account on a Dynamic DNS provider of your choice (Free/NonFree) , Once you’ve created an account, you can create a free domain name through their website. Provide the Elastic IP of the instance when prompted and create a DNS Host A record. Proceed to next step when you are ready with your DNS Name.
Connect via SSH terminal using public IP of the VM with ubuntu user as explained in above steps. Switch to root user using -
sudo su -
./btcpay-server-setup.sh
sudo docker ps -a
For more details, please visit Official Documentation page
For video tutorials on this solution, please visit Free course on ‘BTCPay Server: Bitcoin Payments Made Easy’