From 7f7c1275121cbc73cb3e509921a15d9e35ff54d1 Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Tue, 2 Oct 2018 11:30:12 +0900 Subject: [PATCH 1/3] restore old pregen for backward compat reason --- .../docker-compose.btc-ltc-clightning.yml | 206 ++++++++++++++++++ Production/docker-compose.btc-ltc.yml | 148 +++++++++++++ Production/docker-compose.btc.yml | 122 +++++++++++ btcpay-update.sh | 5 + 4 files changed, 481 insertions(+) create mode 100644 Production/docker-compose.btc-ltc-clightning.yml create mode 100644 Production/docker-compose.btc-ltc.yml create mode 100644 Production/docker-compose.btc.yml diff --git a/Production/docker-compose.btc-ltc-clightning.yml b/Production/docker-compose.btc-ltc-clightning.yml new file mode 100644 index 0000000..7ca69b4 --- /dev/null +++ b/Production/docker-compose.btc-ltc-clightning.yml @@ -0,0 +1,206 @@ +version: "3" +# DO NOT USE THOSE ARE DEPRECATED +services: + nginx: + restart: unless-stopped + image: nginx:stable + container_name: nginx + ports: + - "80:80" + - "443:443" + volumes: + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:ro" + links: + - btcpayserver + nginx-gen: + restart: unless-stopped + image: jwilder/docker-gen + container_name: nginx-gen + volumes: + - "/var/run/docker.sock:/tmp/docker.sock:ro" + - "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro" + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:ro" + entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf + links: + - nginx + letsencrypt-nginx-proxy-companion: + restart: unless-stopped + image: jrcs/letsencrypt-nginx-proxy-companion + container_name: letsencrypt-nginx-proxy-companion + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:rw" + environment: + NGINX_DOCKER_GEN_CONTAINER: "nginx-gen" + NGINX_PROXY_CONTAINER: "nginx" + ACME_CA_URI: ${ACME_CA_URI:-https://acme-staging.api.letsencrypt.org/directory} + links: + - nginx-gen + btcpayserver: + restart: unless-stopped + image: nicolasdorier/btcpayserver:1.0.2.106 + expose: + - "49392" + environment: + BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest} + BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest} + BTCPAY_BIND: 0.0.0.0:49392 + BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/ + BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/} + BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS} + BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE} + VIRTUAL_NETWORK: nginx-proxy + VIRTUAL_PORT: 49392 + VIRTUAL_HOST: ${BTCPAY_HOST} + SSL_POLICY: Mozilla-Modern + LETSENCRYPT_HOST: ${BTCPAY_HOST} + LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-} + BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/ + BTCPAY_CHAINS: "ltc,btc" + BTCPAY_LTCLIGHTNING: "type=clightning;server=unix://etc/clightning_litecoin/lightning-rpc" + BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/ + BTCPAY_BTCLIGHTNING: "type=clightning;server=unix://etc/clightning_bitcoin/lightning-rpc" + links: + - nbxplorer + - postgres + - clightning_litecoin + - clightning_bitcoin + volumes: + - "btcpay_datadir:/datadir" + - "nbxplorer_datadir:/root/.nbxplorer" + - "clightning_litecoin_datadir:/etc/clightning_litecoin" + - "clightning_bitcoin_datadir:/etc/clightning_bitcoin" + nbxplorer: + restart: unless-stopped + image: nicolasdorier/nbxplorer:1.0.2.31 + expose: + - "32838" + environment: + NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest} + NBXPLORER_BIND: 0.0.0.0:32838 + NBXPLORER_CHAINS: "ltc,btc" + NBXPLORER_LTCRPCURL: http://litecoind:43782/ + NBXPLORER_LTCNODEENDPOINT: litecoind:39388 + NBXPLORER_BTCRPCURL: http://bitcoind:43782/ + NBXPLORER_BTCNODEENDPOINT: bitcoind:39388 + volumes: + - "nbxplorer_datadir:/datadir" + - "litecoin_datadir:/root/.litecoin" + - "bitcoin_datadir:/root/.bitcoin" + links: + - litecoind + - bitcoind + postgres: + restart: unless-stopped + image: postgres:9.6.5 + volumes: + - "postgres_datadir:/var/lib/postgresql/data" + litecoind: + restart: unless-stopped + container_name: btcpayserver_litecoind + image: nicolasdorier/docker-litecoin:0.16.3 + environment: + BITCOIN_EXTRA_ARGS: | + rpcport=43782 + ${NBITCOIN_NETWORK:-regtest}=1 + port=39388 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + whitelist=0.0.0.0/0 + expose: + - "43782" + - "39388" + - "28332" + - "28333" + volumes: + - "litecoin_datadir:/data" + clightning_litecoin: + image: nicolasdorier/clightning:v0.6.1 + container_name: btcpayserver_clightning_litecoin + restart: unless-stopped + environment: + LIGHTNINGD_NETWORK: ${NBITCOIN_NETWORK:-regtest} + LIGHTNINGD_CHAIN: ltc + LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/" + LIGHTNINGD_OPT: | + bitcoin-datadir=/etc/litecoin + bitcoin-rpcconnect=litecoind + bind-addr=0.0.0.0:9735 + announce-addr=${BTCPAY_HOST}:9736 + network=${NBITCOIN_NETWORK:-regtest} + alias=${LIGHTNING_ALIAS} + chain=ltc + volumes: + - "clightning_litecoin_datadir:/root/.lightning" + - "litecoin_datadir:/etc/litecoin" + - "nbxplorer_datadir:/root/.nbxplorer" + ports: + - "9736:9735" + links: + - nbxplorer + - litecoind + bitcoind: + restart: unless-stopped + container_name: btcpayserver_bitcoind + image: nicolasdorier/docker-bitcoin:0.16.3 + environment: + BITCOIN_EXTRA_ARGS: | + rpcport=43782 + ${NBITCOIN_NETWORK:-regtest}=1 + port=39388 + whitelist=0.0.0.0/0 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + expose: + - "43782" + - "39388" + - "28332" + - "28333" + volumes: + - "bitcoin_datadir:/data" + clightning_bitcoin: + image: nicolasdorier/clightning:v0.6.1 + container_name: btcpayserver_clightning_bitcoin + restart: unless-stopped + environment: + LIGHTNINGD_NETWORK: ${NBITCOIN_NETWORK:-regtest} + LIGHTNINGD_CHAIN: btc + LIGHTNINGD_EXPLORERURL: "http://nbxplorer:32838/" + LIGHTNINGD_OPT: | + bitcoin-datadir=/etc/bitcoin + bitcoin-rpcconnect=bitcoind + announce-addr=${BTCPAY_HOST}:9735 + bind-addr=0.0.0.0:9735 + network=${NBITCOIN_NETWORK:-regtest} + alias=${LIGHTNING_ALIAS} + chain=btc + volumes: + - "clightning_bitcoin_datadir:/root/.lightning" + - "bitcoin_datadir:/etc/bitcoin" + - "nbxplorer_datadir:/root/.nbxplorer" + ports: + - "9735:9735" + links: + - nbxplorer + - bitcoind +volumes: + nginx_conf: + nginx_vhost: + nginx_html: + nginx_certs: + postgres_datadir: + btcpay_datadir: + nbxplorer_datadir: + litecoin_datadir: + clightning_litecoin_datadir: + bitcoin_datadir: + clightning_bitcoin_datadir: diff --git a/Production/docker-compose.btc-ltc.yml b/Production/docker-compose.btc-ltc.yml new file mode 100644 index 0000000..6adaa2d --- /dev/null +++ b/Production/docker-compose.btc-ltc.yml @@ -0,0 +1,148 @@ +version: "3" +# DO NOT USE THOSE ARE DEPRECATED +services: + nginx: + restart: unless-stopped + image: nginx:stable + container_name: nginx + ports: + - "80:80" + - "443:443" + volumes: + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:ro" + links: + - btcpayserver + nginx-gen: + restart: unless-stopped + image: jwilder/docker-gen + container_name: nginx-gen + volumes: + - "/var/run/docker.sock:/tmp/docker.sock:ro" + - "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro" + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:ro" + entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf + links: + - nginx + letsencrypt-nginx-proxy-companion: + restart: unless-stopped + image: jrcs/letsencrypt-nginx-proxy-companion + container_name: letsencrypt-nginx-proxy-companion + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:rw" + environment: + NGINX_DOCKER_GEN_CONTAINER: "nginx-gen" + NGINX_PROXY_CONTAINER: "nginx" + ACME_CA_URI: ${ACME_CA_URI:-https://acme-staging.api.letsencrypt.org/directory} + links: + - nginx-gen + btcpayserver: + restart: unless-stopped + image: nicolasdorier/btcpayserver:1.0.2.106 + expose: + - "49392" + environment: + BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest} + BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest} + BTCPAY_BIND: 0.0.0.0:49392 + BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/ + BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/} + BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS} + BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE} + VIRTUAL_NETWORK: nginx-proxy + VIRTUAL_PORT: 49392 + VIRTUAL_HOST: ${BTCPAY_HOST} + SSL_POLICY: Mozilla-Modern + LETSENCRYPT_HOST: ${BTCPAY_HOST} + LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-} + BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/ + BTCPAY_CHAINS: "ltc,btc" + BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/ + links: + - nbxplorer + - postgres + volumes: + - "btcpay_datadir:/datadir" + - "nbxplorer_datadir:/root/.nbxplorer" + nbxplorer: + restart: unless-stopped + image: nicolasdorier/nbxplorer:1.0.2.31 + expose: + - "32838" + environment: + NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest} + NBXPLORER_BIND: 0.0.0.0:32838 + NBXPLORER_CHAINS: "ltc,btc" + NBXPLORER_LTCRPCURL: http://litecoind:43782/ + NBXPLORER_LTCNODEENDPOINT: litecoind:39388 + NBXPLORER_BTCRPCURL: http://bitcoind:43782/ + NBXPLORER_BTCNODEENDPOINT: bitcoind:39388 + volumes: + - "nbxplorer_datadir:/datadir" + - "litecoin_datadir:/root/.litecoin" + - "bitcoin_datadir:/root/.bitcoin" + links: + - litecoind + - bitcoind + postgres: + restart: unless-stopped + image: postgres:9.6.5 + volumes: + - "postgres_datadir:/var/lib/postgresql/data" + litecoind: + restart: unless-stopped + container_name: btcpayserver_litecoind + image: nicolasdorier/docker-litecoin:0.16.3 + environment: + BITCOIN_EXTRA_ARGS: | + rpcport=43782 + ${NBITCOIN_NETWORK:-regtest}=1 + port=39388 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + whitelist=0.0.0.0/0 + expose: + - "43782" + - "39388" + - "28332" + - "28333" + volumes: + - "litecoin_datadir:/data" + bitcoind: + restart: unless-stopped + container_name: btcpayserver_bitcoind + image: nicolasdorier/docker-bitcoin:0.16.3 + environment: + BITCOIN_EXTRA_ARGS: | + rpcport=43782 + ${NBITCOIN_NETWORK:-regtest}=1 + port=39388 + whitelist=0.0.0.0/0 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + expose: + - "43782" + - "39388" + - "28332" + - "28333" + volumes: + - "bitcoin_datadir:/data" +volumes: + nginx_conf: + nginx_vhost: + nginx_html: + nginx_certs: + postgres_datadir: + btcpay_datadir: + nbxplorer_datadir: + litecoin_datadir: + bitcoin_datadir: diff --git a/Production/docker-compose.btc.yml b/Production/docker-compose.btc.yml new file mode 100644 index 0000000..3d569ac --- /dev/null +++ b/Production/docker-compose.btc.yml @@ -0,0 +1,122 @@ +version: "3" +services: + nginx: + restart: unless-stopped + image: nginx:stable + container_name: nginx + ports: + - "80:80" + - "443:443" + volumes: + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:ro" + links: + - btcpayserver + nginx-gen: + restart: unless-stopped + image: jwilder/docker-gen + container_name: nginx-gen + volumes: + - "/var/run/docker.sock:/tmp/docker.sock:ro" + - "./nginx.tmpl:/etc/docker-gen/templates/nginx.tmpl:ro" + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:ro" + entrypoint: /usr/local/bin/docker-gen -notify-sighup nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf + links: + - nginx + letsencrypt-nginx-proxy-companion: + restart: unless-stopped + image: jrcs/letsencrypt-nginx-proxy-companion + container_name: letsencrypt-nginx-proxy-companion + volumes: + - "/var/run/docker.sock:/var/run/docker.sock:ro" + - "nginx_conf:/etc/nginx/conf.d" + - "nginx_vhost:/etc/nginx/vhost.d" + - "nginx_html:/usr/share/nginx/html" + - "nginx_certs:/etc/nginx/certs:rw" + environment: + NGINX_DOCKER_GEN_CONTAINER: "nginx-gen" + NGINX_PROXY_CONTAINER: "nginx" + ACME_CA_URI: ${ACME_CA_URI:-https://acme-staging.api.letsencrypt.org/directory} + links: + - nginx-gen + btcpayserver: + restart: unless-stopped + image: nicolasdorier/btcpayserver:1.0.2.106 + expose: + - "49392" + environment: + BTCPAY_POSTGRES: User ID=postgres;Host=postgres;Port=5432;Database=btcpayserver${NBITCOIN_NETWORK:-regtest} + BTCPAY_NETWORK: ${NBITCOIN_NETWORK:-regtest} + BTCPAY_BIND: 0.0.0.0:49392 + BTCPAY_EXTERNALURL: ${BTCPAY_PROTOCOL:-https}://${BTCPAY_HOST}/ + BTCPAY_ROOTPATH: ${BTCPAY_ROOTPATH:-/} + BTCPAY_SSHTRUSTEDFINGERPRINTS: ${BTCPAY_SSHTRUSTEDFINGERPRINTS} + BTCPAY_SSHKEYFILE: ${BTCPAY_SSHKEYFILE} + VIRTUAL_NETWORK: nginx-proxy + VIRTUAL_PORT: 49392 + VIRTUAL_HOST: ${BTCPAY_HOST} + SSL_POLICY: Mozilla-Modern + LETSENCRYPT_HOST: ${BTCPAY_HOST} + LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-} + BTCPAY_CHAINS: "btc" + BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/ + links: + - nbxplorer + - postgres + volumes: + - "btcpay_datadir:/datadir" + - "nbxplorer_datadir:/root/.nbxplorer" + nbxplorer: + restart: unless-stopped + image: nicolasdorier/nbxplorer:1.0.2.31 + expose: + - "32838" + environment: + NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest} + NBXPLORER_BIND: 0.0.0.0:32838 + NBXPLORER_CHAINS: "btc" + NBXPLORER_BTCRPCURL: http://bitcoind:43782/ + NBXPLORER_BTCNODEENDPOINT: bitcoind:39388 + volumes: + - "nbxplorer_datadir:/datadir" + - "bitcoin_datadir:/root/.bitcoin" + links: + - bitcoind + postgres: + restart: unless-stopped + image: postgres:9.6.5 + volumes: + - "postgres_datadir:/var/lib/postgresql/data" + bitcoind: + restart: unless-stopped + container_name: btcpayserver_bitcoind + image: nicolasdorier/docker-bitcoin:0.16.3 + environment: + BITCOIN_EXTRA_ARGS: | + rpcport=43782 + ${NBITCOIN_NETWORK:-regtest}=1 + port=39388 + whitelist=0.0.0.0/0 + zmqpubrawblock=tcp://0.0.0.0:28332 + zmqpubrawtx=tcp://0.0.0.0:28333 + expose: + - "43782" + - "39388" + - "28332" + - "28333" + volumes: + - "bitcoin_datadir:/data" +volumes: + nginx_conf: + nginx_vhost: + nginx_html: + nginx_certs: + postgres_datadir: + btcpay_datadir: + nbxplorer_datadir: + bitcoin_datadir: diff --git a/btcpay-update.sh b/btcpay-update.sh index 327ab25..b9f6a5f 100755 --- a/btcpay-update.sh +++ b/btcpay-update.sh @@ -9,6 +9,11 @@ if [ ! -z $BTCPAY_DOCKER_COMPOSE ] && [ ! -z $DOWNLOAD_ROOT ] && [ -z $BTCPAYGEN exit fi +if [[ $BTCPAY_DOCKER_COMPOSE != *docker-compose.generated.yml ]]; then + echo "Your deployment is too old, you need to migrate by following instructions on this link https://github.com/btcpayserver/btcpayserver-docker/tree/master#i-deployed-before-btcpay-setupsh-existed-before-may-17-can-i-migrate-to-this-new-system" + exit +fi + cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker" git pull --force From df0a784ab4516b6a592c8ae95335e50dc400b8f0 Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Tue, 2 Oct 2018 11:32:00 +0900 Subject: [PATCH 2/3] Simplify script --- btcpay-update.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/btcpay-update.sh b/btcpay-update.sh index b9f6a5f..895766b 100755 --- a/btcpay-update.sh +++ b/btcpay-update.sh @@ -17,14 +17,12 @@ fi cd "$BTCPAY_BASE_DIRECTORY/btcpayserver-docker" git pull --force -if [[ $BTCPAY_DOCKER_COMPOSE == *docker-compose.generated.yml ]]; then - # Generate the docker compose in BTCPAY_DOCKER_COMPOSE - . ./build.sh - if [ "$BTCPAYGEN_OLD_PREGEN" == "true" ]; then - cp Generated/docker-compose.generated.yml $BTCPAY_DOCKER_COMPOSE - fi +. ./build.sh +if [ "$BTCPAYGEN_OLD_PREGEN" == "true" ]; then + cp Generated/docker-compose.generated.yml $BTCPAY_DOCKER_COMPOSE fi + for scriptname in *.sh; do if [ "$scriptname" == "build.sh" ] || \ [ "$scriptname" == "build-pregen.sh" ] || \ From 1b8ecfeb976427124f17d43cb539f0a215f0e41b Mon Sep 17 00:00:00 2001 From: "nicolas.dorier" Date: Tue, 2 Oct 2018 19:37:11 +0900 Subject: [PATCH 3/3] update dotnet version of docker-compose generator --- docker-compose-generator/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose-generator/Dockerfile b/docker-compose-generator/Dockerfile index 48fb91c..162d94e 100644 --- a/docker-compose-generator/Dockerfile +++ b/docker-compose-generator/Dockerfile @@ -1,4 +1,4 @@ -FROM microsoft/dotnet:2.1.300-sdk-alpine3.7 AS builder +FROM microsoft/dotnet:2.1.402-sdk-alpine3.7 AS builder WORKDIR /source COPY src/docker-compose-generator.csproj docker-compose-generator.csproj # Cache some dependencies @@ -6,7 +6,7 @@ RUN dotnet restore COPY src/. . RUN dotnet publish --output /app/ --configuration Release -FROM microsoft/dotnet:2.1.0-runtime-alpine3.7 +FROM microsoft/dotnet:2.1.4-runtime-alpine3.7 WORKDIR /app RUN mkdir /datadir