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 1a8abe8e71 bump 7 years ago
..
Production.png update image 7 years ago
README.md fix typo 7 years ago
docker-compose.btc-ltc.yml bump 7 years ago
docker-compose.btc.yml bump 7 years ago
docker-compose.yml bump 7 years ago
nginx.tmpl make sure nginx does not crash with long domain name 7 years ago

README.md

About this docker-compose

The docker-compose can be used for production purpose.

It is composed of:

  1. One full node per supported cryptocurrency (bitcoind/litecoind)
  2. A lightweight block explorer (NBxplorer)
  3. A BTCPay Server
  4. A database (Postgres)
  5. A reverse proxy (NGINX)
  6. Two containers configuring NGINX as a reverse proxy and renewing SSL certificates.

Architecture

The Deploy on Azure Button is using this docker-compose under the hood on an Ubuntu machine. You can use it on any docker supporting host.

The relevant environment variables are:

  • NBITCOIN_NETWORK: the blockchain identifier used by NBitcoin (eg., regtest, testnet, mainnet)
  • BTCPAY_HOST: the external url used to access the NGINX server from internet. This domain name must point to this machine for Let's Encrypt to create your certificate. (typically with a CNAME or A record)
  • LETSENCRYPT_EMAIL: The email Let's Encrypt will use to notify you about certificate expiration.
  • ACME_CA_URI: Let's encrypt API endpoint (https://acme-staging.api.letsencrypt.org/directory for a staging certificate, https://acme-v01.api.letsencrypt.org/directory for a production one)

Use docker-compose.btc-ltc.yml for bitcoin and litecoin support, or docker-compose.btc.yml for only bitcoin.

Any unset or empty environment variable will be set for a regtest deployment.

The necessary open ports are:

  1. 80 for Let's encrypt
  2. 443 for the website

Example for running on mainnet:

For linux:

docker-compose up \
    -e "NBITCOIN_NETWORK=mainnet" \
    -e "BTCPAY_HOST=btcpay.example.com" \
    -e "LETSENCRYPT_EMAIL=me@example.com" \
    -e "ACME_CA_URI=https://acme-v01.api.letsencrypt.org/directory"

For powershell:

docker-compose up `
    -e "NBITCOIN_NETWORK=mainnet" `
    -e "BTCPAY_HOST=btcpay.example.com" `
    -e "LETSENCRYPT_EMAIL=me@example.com" `
    -e "ACME_CA_URI=https://acme-v01.api.letsencrypt.org/directory"

Make sure the domain btcpay.example.com point to your server and that port 80 and 443 are open.