This document covers all the questions and issues related to Server Settings. This option is only available to server admin. Take a look at the walkthrough page to easier understand the navigation
There are 2 ways to update your BTCPay Server : 1. Updating through the front end: Server Settings > Maintenance > Update.
2.Updating through SSH: Login into your virtual machine with ssh, then apply following commands:
sudo su -btcpay-update.sh
You can see your BTCPay version in the bottom right of the page footer when you're logged in as a server admin.
In the btcpayserver-docker folder:
BTCPay SSH key, enables users to update their server or quickly change the domain name from btcpay website, the front-end.
You need to edit your database.
First, register a new user on your BTCPay Server, by clicking "Register", for example: "firstname.lastname@example.org". If you can't create a new user because registrations are disabled in your Server Settings > Policies, you need to reset the policies settings with the following command line:
Please skip this step if you can create a new user on the front-end.
# In rootsudo su -# Connect to your postgres containerdocker exec -ti $(docker ps -a -q -f "name=postgres_1") bash# Switch to postgres usersu postgres# Run psqlpsql# Connect to db\c btcpayservermainnetDELETE FROM "Settings" WHERE "Id" = 'BTCPayServer.Services.PoliciesSettings';
Head back to your BTCPay Server and click on the "Register" which should now be enabled. In case you don't see the Register link in the menu, that's probably because of the caching. Restart your btcpay with
Next, add a newly registered user
email@example.com as an admin:
# In rootsudo su -# Connect to your postgres containerdocker exec -ti $(docker ps -a -q -f "name=postgres_1") bash# Switch to postgres usersu postgres# Run psqlpsql# Connect to db\c btcpayservermainnetINSERT INTO "AspNetUserRoles" Values ( (SELECT "Id" FROM "AspNetUsers" WHERE "Email"='firstname.lastname@example.org'), (SELECT "Id" FROM "AspNetRoles" WHERE "NormalizedName"='SERVERADMIN'));
Now you can access with
email@example.com as admin.
When you apply the changes, you'll noticed that newly created user isn't the member of any stores. In that case, follow this guide to add the new users to all or certain stores.
You may see such the following message when you run your docker-compose (either via
WARNING: The BTCPAY_SSHKEYFILE variable is not set. Defaulting to a blank string.WARNING: The BTCPAY_SSHTRUSTEDFINGERPRINTS variable is not set. Defaulting to a blank string.
BTCPay Server requires SSH access, to allow you to perform the following tasks from the front-end:
Updating the server
Changing the domain name of the server
You can run the following command line to give access to BTCPay to your server via SSH.
sudo su -cd $BTCPAY_BASE_DIRECTORY/btcpayserver-dockergit checkout master# Setup SSH access via private keyssh-keygen -t rsa -f /root/.ssh/id_rsa_btcpay -q -P ""echo "# Key used by BTCPay Server" >> /root/.ssh/authorized_keyscat /root/.ssh/id_rsa_btcpay.pub >> /root/.ssh/authorized_keysBTCPAY_HOST_SSHKEYFILE=/root/.ssh/id_rsa_btcpay. ./btcpay-setup.sh -i
Each e-mail provider has different configuration, so we can't provide you with exact setup, but here's the configuration for gmail which should work:
SMTP Host: smtp.gmail.comSMTP Port: 587SSL Protocol: ONTLS Protocol: ONSMTP Username: (your Gmail username)SMTP Password: (your Gmail password)
If by any chance you have 2-step verification added to your gmail account, visit this article.
There are two ways to customize the theme of your BTCPay. The easy way is to head over to the Server Settings > Theme and follow the instructions on how to change your Bootstrap theme.
For advanced theme changes, you'll most likely need to fork BTCPay repository and apply desired design changes. Build and publish the docker image to Docker Hub. Set the
BTCPAY_IMAGE environment variable to your docker image tag(
export BTCPAY_IMAGE="your custom btcpay docker image") and run the setup (
. ./btcpay-setup.sh -i) as usual from BTCPay Docker. Modify generated docker compose to use your custom docker image. You will need to create a new image manually and follow these steps for EACH BTCPay update so it is advised to stick with the default setup.
You should be able to do what you want by injecting your GA code to ~/wwwroot/checkout/js/core.js. Might be the easiest way but you have to redo it every time you update BTCPay to the latest version. Then you won’t have the hassle of forking the code, deploying it manually. Every time there is an update. Just do the docker update and add the same lines to the js file.
You can easily change the appearance of your BTCPay's checkout page by following the instructions here
To allow other users to register and use your server, in Server Settings > Policies enable registration. If you configured SMTP properly, you can request users e-mail confirmation to prevent spam or bot registrating on your instance.
Discouraging search engines from indexing your site in Server Settings > Policies, adds
<meta name="robots" content="noindex"> to your server header, which informs search engines not to index your pages.
It is up to search engines to honor this request, and may take time for your pages to disappear completely. Unfortunatelly, the exact time is beyond our control, it depends on crawl bots of particular search engine like Google.
If you're using an external wallet which allows BTC-P2P connection, you can easily connect it to your BTCPay full node. By doing this, you avoid leaking information to third-party servers and are soley relying on your own full node. To connect to a compatible BTC-P2P wallet, go to Server Settings > Services > Full node P2P Reveal the QR code and scan it with a BTC-P2P compatible wallet, or input it by copy-pasting it.
If you do not see Full node P2P in your Services, you probably have to activate Tor on your server.
To upload files to your BTCPay Server instance, first under Server Settings > Services, enable the External Storage feature and choose which storage service provider you would like to use. Next, go to Server Settings > Files to browse and upload local files. Depending on the limitations of your storage system, you may have difficulty uploading large files.