These instructions assume that you are starting with “virgin” Raspberry Pi Model 3 B+ that is running the latest updated version of Raspbian Stretch.

Requirements:
– Raspberry Pi 3 B+
– Minimum 64 Gb SD Card (if no external storage)
– USB HDD or Thumb Drive (optional)
– Sub domain pointed to “btcpay.mydomain.com”
– Static External IP Address
– Forward ports 80,443,8333,9735 on your router to the Raspberry Pi

SSH to Raspberry Pi

# Switch to root
sudo su –

# Create a folder for BTCPay
mkdir BTCPayServer
cd BTCPayServer

# Clone this repository
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker

# Run btcpay-setup.sh with the right parameters
export BTCPAY_HOST=”btcpay.mydomain.com”
export NBITCOIN_NETWORK=”mainnet”
export BTCPAYGEN_CRYPTO1=”btc”
export BTCPAYGEN_REVERSEPROXY=”nginx”
export BTCPAYGEN_LIGHTNING=”lnd”
export BTCPAYGEN_ADDITIONAL_FRAGMENTS=”opt-save-storage-xs;opt-save-memory”
. ./btcpay-setup.sh -i

BTCPayServer’s FastSync documentation is available here.
Please read very carefully to understand what FastSync is and why it’s important to verify the UTXO set yourself.

Allow BTCPayServer run for a few minutes and visit your website (https://btcpay.mydomain.com) to confirm BTCPayServer is running.

#From the /root/BTCPayServer/btcpayserver-docker folder run the following commands.
./btcpay-down.sh
cd contrib
cd FastSync
./load-utxo-set.sh

This will take about 30 minutes or so depending on your download speed. After FastSync finishes run the following command.
./btcpay-up.sh

Visit your domain and you should now see that your sync is at least 99%.
Enjoy!