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.

74 lines
2.8 KiB

7 years ago
# How to use
7 years ago
This repository is hosting different docker-compose which can be used to facilitate deployment of BTCPay Server.
7 years ago
![Architecture](https://github.com/btcpayserver/btcpayserver-doc/raw/master/img/Architecture.png)
7 years ago
7 years ago
As you can see, it depends on several piece of infrastructure, mainly:
7 years ago
7 years ago
* 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.
7 years ago
The [Production](Production) `docker-compose` files are used for production environment. It adds NGinx as a reverse proxy and [Let's Encrypt and DockerGen](https://github.com/gilyes/docker-nginx-letsencrypt-sample) to automatically configure HTTPS.
7 years ago
The production `docker-compose` is used under the hood to deploy an instance of BTCPay on Microsoft Azure in one click:
7 years ago
[![Deploy to Azure](https://azuredeploy.net/deploybutton.svg)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fbtcpayserver%2Fbtcpayserver-azure%2Fmaster%2Fazuredeploy.json)
The [Production-NoReverseProxy](Production-NoReverseProxy) `docker-compose` files are used for environment which are already behind a reverse proxy. It exposes BTCPayServer directly on port 80.
7 years ago
# About accessing services inside those docker compose
Several scripts are provided to access the internal of your docker-service:
7 years ago
* `litecoin-cli.sh`
* `bitcoin-cli.sh`
* `litecoin-lightning-cli.sh`
* `bitcoin-lightning-cli.sh`
7 years ago
We also provide powershell `.ps1` scripts if you are on windows.
7 years ago
You can use it easily:
```
7 years ago
./bitcoin-cli.sh getblockcount
```
7 years ago
# For docker noobs <a name="fornoobs" />
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
```
7 years ago
Create an `.env` file with the parameters documented in [Production](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.