# 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

Download and install Bitcoin Core by following the instructions (opens new window).

# 2) Install .NET dependencies

Download and install the .NET 10.0 SDK and the ASP.NET Core Runtime by following the instructions (opens new window).

# 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