You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
nicolas.dorier 378746380c Fix name of containers 7 years ago
Production Fix name of containers 7 years ago
Production-NoReverseProxy Fix name of containers 7 years ago
docker-compose-generator Fix name of containers 7 years ago
.gitattributes add gitattribute 7 years ago
.gitignore Add instructions for docker noobs 7 years ago
LICENSE Init 7 years ago
README.md Fix name of containers 7 years ago
bitcoin-cli.ps1 Add utilities 7 years ago
bitcoin-cli.sh Add utilities 7 years ago
bitcoin-lightning-cli.ps1 Add cli tools 7 years ago
bitcoin-lightning-cli.sh Add cli tools 7 years ago
generate-docker-compose.ps1 Use generated docker-compose 7 years ago
litecoin-cli.ps1 Add utilities 7 years ago
litecoin-cli.sh Add utilities 7 years ago
litecoin-lightning-cli.ps1 Add cli tools 7 years ago
litecoin-lightning-cli.sh Add cli tools 7 years ago
publish-stable.ps1 helper script 7 years ago

README.md

How to use

This repository is hosting different docker-compose which can be used to facilitate deployment of BTCPay Server.

Architecture

As you can see, it depends on several piece of infrastructure, mainly:

  • A lightweight block explorer (NBXplorer),
  • A database (Postgres, or SQLite),
  • A full node (Bitcoin Core)

Setting up the dependencies might be time consuming, this repository is meant to give working example of docker-compose file which will setup everything for you.

The Production docker-compose files are used for production environment. It adds NGinx as a reverse proxy and Let's Encrypt and DockerGen to automatically configure HTTPS.

The production docker-compose is used under the hood to deploy an instance of BTCPay on Microsoft Azure in one click:

Deploy to Azure

The Production-NoReverseProxy docker-compose files are used for environment which are already behind a reverse proxy. It exposes BTCPayServer directly on port 80.

About accessing services inside those docker compose

Several scripts are provided to access the internal of your docker-service:

  • litecoin-cli.sh
  • bitcoin-cli.sh
  • litecoin-lightning-cli.sh
  • bitcoin-lightning-cli.sh

We also provide powershell .ps1 scripts if you are on windows.

You can use it easily:

./bitcoin-cli.sh getblockcount

For docker noobs

If you are a docker noob here is how you would create a HTTPS ready server.

First step is to make sure you have a domain name pointing to your host, and that port 443 and 80 and externally accessible. Let's assume it is btcpay.example.com.

Clone the repository:

git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker

Create an .env file with the parameters documented in Production:

NBITCOIN_NETWORK=mainnet
BTCPAY_HOST=btcpay.example.com
LETSENCRYPT_EMAIL=me@example.com
ACME_CA_URI=https://acme-v01.api.letsencrypt.org/directory

Save, then run it:

docker-compose -f "$(pwd)/Production/docker-compose.btc-ltc.yml" up -d

Wait a little bit, then you can now browse https://btcpay.example.com/.

About generate-docker-compose

The files in Production and Production-NoReverseProxy are generated by a dotnet program located in docker-compose-generator. It is meant to generate a wide range a configuration from docker-compose-generator/docker-fragments without repeating myself.