# Minimal manual setup

DANGER

Manual installation is NOT recommended for production use unless you are very confident with your Operating System and Bitcoin security expertise. If you are unsure use the docker deployment or one of the other deployment options.

# You must have technical literacy and be able to resolve any issues on your own. The community will not provide extensive support for this deployment.

The process is basically the following:

  1. Download and sync Bitcoin Core (opens new window)
  2. Clone and run NBXplorer (opens new window)
  3. Clone and run BTCPay Server (opens new window)

Take a look at our video to learn more:

Manual installation is NOT recommended in production. It should be only used for learning purpose.

Instead you should use the docker deployment (opens new window).

The docker deployment will provide you easy update system and make sure that all moving parts are wired correctly without any technical knowledge. It will also setup HTTPS for you.

# Typical manual installation

This steps have been done on Ubuntu 18.04, adapt for your own install.

For Testnet specific deployment, after installing Bitcoin, .NET Core, NBXplorer and BTCPayServer, see Commands for Running in Testnet Mode

# 1) Install Bitcoin Core 0.19.1

BITCOIN_VERSION="0.19.1"
BITCOIN_URL="https://bitcoin.org/bin/bitcoin-core-0.19.1/bitcoin-0.19.1-x86_64-linux-gnu.tar.gz"
BITCOIN_SHA256="5fcac9416e486d4960e1a946145566350ca670f9aaba99de6542080851122e4c"

# install bitcoin binaries
cd /tmp
wget -O bitcoin.tar.gz "$BITCOIN_URL"
echo "$BITCOIN_SHA256 bitcoin.tar.gz" | sha256sum -c - && \
mkdir bin && \
sudo tar -xzvf bitcoin.tar.gz -C /usr/local/bin --strip-components=2 "bitcoin-$BITCOIN_VERSION/bin/bitcoin-cli" "bitcoin-$BITCOIN_VERSION/bin/bitcoind"
rm bitcoin.tar.gz

# 2) Install .NET 6.0 SDK

On my Ubuntu 20.04 (See these instructions (opens new window) or here (opens new window) for different OS).

# Add Microsoft package repository
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

# Install the SDK
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-6.0

## Check
dotnet --version

# 3) Install NBXplorer

cd ~
git clone https://github.com/dgarage/NBXplorer
cd NBXplorer
git checkout latest
./build.sh

# 4) Install BTCPayServer

cd ~
git clone https://github.com/btcpayserver/btcpayserver
cd btcpayserver
git checkout latest
./build.sh

# 5) Run bitcoind

bitcoind

# 6) Run NBXplorer

cd ~/NBXplorer
./run.sh --dbtrie

Note that using the --dbtrie backend for NBXplorer, while easier, is deprecated. You should better use a postgresql backend as documented on Extended Manual Deployment.

# 7) Run BTCPay Server

cd ~/btcpayserver
./run.sh --port 8080 --bind 0.0.0.0

Now you can browse your server on port 8080.

Note that by default, BTCPay Server will use SQLite as backend, while being easier, this is deprecated. You should better use a postgresql backend as documented on Extended Manual Deployment.

# Testnet Specific Deployments

Follow the instructions for installing Bitcoin, .NET Core, NBXplorer and BTCPayServer above.

Then when running them use:

# Run bitcoind in testnet mode

bitcoind -testnet

# Run NBXplorer in testnet mode

cd ~/NBXplorer
./run.sh --network=testnet

# Run BTCPayServer in testnet mode

cd ~/btcpayserver
./run.sh --port 8080 --bind 0.0.0.0 --network testnet