Generate docker-compose for integrated clightning

This commit is contained in:
nicolas.dorier
2018-03-21 13:19:02 +09:00
parent f682506a8b
commit d423e118f0
13 changed files with 1087 additions and 61 deletions

View File

@@ -0,0 +1,86 @@
version: "3"
services:
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_CHAINS: "btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_BTCLIGHTNING: "/etc/clightning_bitcoin/lightning-rpc"
links:
- nbxplorer
- postgres
- clightning_bitcoin
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
- "clightning_bitcoin_datadir:/etc/clightning_bitcoin"
ports:
- "80:49392"
nbxplorer:
restart: always
image: nicolasdorier/nbxplorer:1.0.1.23
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: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
clightning_bitcoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/bitcoin
bitcoin-rpcconnect=bitcoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=btc
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
links:
- bitcoind
volumes:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
bitcoin_datadir:
clightning_bitcoin_datadir:

View File

@@ -0,0 +1,125 @@
version: "3"
services:
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc,btc"
BTCPAY_LTCLIGHTNING: "/etc/clightning_litecoin/lightning-rpc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_BTCLIGHTNING: "/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"
ports:
- "80:49392"
nbxplorer:
restart: always
image: nicolasdorier/nbxplorer:1.0.1.23
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: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: always
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.14.2
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "litecoin_datadir:/data"
clightning_litecoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/litecoin
bitcoin-rpcconnect=litecoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=ltc
volumes:
- "clightning_litecoin_datadir:/root/.lightning"
- "litecoin_datadir:/etc/litecoin"
links:
- litecoind
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
clightning_bitcoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/bitcoin
bitcoin-rpcconnect=bitcoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=btc
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
links:
- bitcoind
volumes:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
litecoin_datadir:
clightning_litecoin_datadir:
bitcoin_datadir:
clightning_bitcoin_datadir:

View File

@@ -15,9 +15,9 @@ services:
VIRTUAL_HOST: ${BTCPAY_HOST} VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST} LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com} LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_CHAINS: "btc,ltc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/ BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc,btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
links: links:
- nbxplorer - nbxplorer
- postgres - postgres
@@ -34,38 +34,23 @@ services:
environment: environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest} NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838 NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "btc,ltc" NBXPLORER_CHAINS: "ltc,btc"
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
NBXPLORER_LTCRPCURL: http://litecoind:43782/ NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388 NBXPLORER_LTCNODEENDPOINT: litecoind:39388
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
volumes: volumes:
- "nbxplorer_datadir:/datadir" - "nbxplorer_datadir:/datadir"
- "bitcoin_datadir:/root/.bitcoin"
- "litecoin_datadir:/root/.litecoin" - "litecoin_datadir:/root/.litecoin"
- "bitcoin_datadir:/root/.bitcoin"
links: links:
- bitcoind
- litecoind - litecoind
- bitcoind
postgres: postgres:
restart: always restart: always
image: postgres:9.6.5 image: postgres:9.6.5
volumes: volumes:
- "postgres_datadir:/var/lib/postgresql/data" - "postgres_datadir:/var/lib/postgresql/data"
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
litecoind: litecoind:
restart: always restart: always
container_name: btcpayserver_litecoind container_name: btcpayserver_litecoind
@@ -81,9 +66,24 @@ services:
- "39388" - "39388"
volumes: volumes:
- "litecoin_datadir:/data" - "litecoin_datadir:/data"
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
volumes: volumes:
postgres_datadir: postgres_datadir:
btcpay_datadir: btcpay_datadir:
nbxplorer_datadir: nbxplorer_datadir:
bitcoin_datadir:
litecoin_datadir: litecoin_datadir:
bitcoin_datadir:

View File

@@ -0,0 +1,86 @@
version: "3"
services:
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc"
BTCPAY_LTCLIGHTNING: "/etc/clightning_litecoin/lightning-rpc"
links:
- nbxplorer
- postgres
- clightning_litecoin
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
- "clightning_litecoin_datadir:/etc/clightning_litecoin"
ports:
- "80:49392"
nbxplorer:
restart: always
image: nicolasdorier/nbxplorer:1.0.1.23
expose:
- "32838"
environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "ltc"
NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
volumes:
- "nbxplorer_datadir:/datadir"
- "litecoin_datadir:/root/.litecoin"
links:
- litecoind
postgres:
restart: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: always
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.14.2
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "litecoin_datadir:/data"
clightning_litecoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/litecoin
bitcoin-rpcconnect=litecoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=ltc
volumes:
- "clightning_litecoin_datadir:/root/.lightning"
- "litecoin_datadir:/etc/litecoin"
links:
- litecoind
volumes:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
litecoin_datadir:
clightning_litecoin_datadir:

View File

@@ -0,0 +1,68 @@
version: "3"
services:
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc"
links:
- nbxplorer
- postgres
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
ports:
- "80:49392"
nbxplorer:
restart: always
image: nicolasdorier/nbxplorer:1.0.1.23
expose:
- "32838"
environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "ltc"
NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
volumes:
- "nbxplorer_datadir:/datadir"
- "litecoin_datadir:/root/.litecoin"
links:
- litecoind
postgres:
restart: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: always
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.14.2
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "litecoin_datadir:/data"
volumes:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
litecoin_datadir:

View File

@@ -0,0 +1,132 @@
version: "3"
services:
nginx:
restart: always
image: nginx
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: always
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: always
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
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_CHAINS: "btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_BTCLIGHTNING: "/etc/clightning_bitcoin/lightning-rpc"
links:
- nbxplorer
- postgres
- clightning_bitcoin
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
- "clightning_bitcoin_datadir:/etc/clightning_bitcoin"
nbxplorer:
restart: always
image: nicolasdorier/nbxplorer:1.0.1.23
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: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
clightning_bitcoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/bitcoin
bitcoin-rpcconnect=bitcoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=btc
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
links:
- bitcoind
volumes:
nginx_conf:
nginx_vhost:
nginx_html:
nginx_certs:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
bitcoin_datadir:
clightning_bitcoin_datadir:

View File

@@ -0,0 +1,171 @@
version: "3"
services:
nginx:
restart: always
image: nginx
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: always
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: always
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
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc,btc"
BTCPAY_LTCLIGHTNING: "/etc/clightning_litecoin/lightning-rpc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_BTCLIGHTNING: "/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: always
image: nicolasdorier/nbxplorer:1.0.1.23
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: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: always
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.14.2
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "litecoin_datadir:/data"
clightning_litecoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/litecoin
bitcoin-rpcconnect=litecoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=ltc
volumes:
- "clightning_litecoin_datadir:/root/.lightning"
- "litecoin_datadir:/etc/litecoin"
links:
- litecoind
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
clightning_bitcoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/bitcoin
bitcoin-rpcconnect=bitcoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=btc
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
links:
- 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:

View File

@@ -59,9 +59,9 @@ services:
VIRTUAL_HOST: ${BTCPAY_HOST} VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST} LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com} LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_CHAINS: "btc,ltc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/ BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc,btc"
BTCPAY_BTCEXPLORERURL: http://nbxplorer:32838/
links: links:
- nbxplorer - nbxplorer
- postgres - postgres
@@ -76,38 +76,23 @@ services:
environment: environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest} NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838 NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "btc,ltc" NBXPLORER_CHAINS: "ltc,btc"
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
NBXPLORER_LTCRPCURL: http://litecoind:43782/ NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388 NBXPLORER_LTCNODEENDPOINT: litecoind:39388
NBXPLORER_BTCRPCURL: http://bitcoind:43782/
NBXPLORER_BTCNODEENDPOINT: bitcoind:39388
volumes: volumes:
- "nbxplorer_datadir:/datadir" - "nbxplorer_datadir:/datadir"
- "bitcoin_datadir:/root/.bitcoin"
- "litecoin_datadir:/root/.litecoin" - "litecoin_datadir:/root/.litecoin"
- "bitcoin_datadir:/root/.bitcoin"
links: links:
- bitcoind
- litecoind - litecoind
- bitcoind
postgres: postgres:
restart: always restart: always
image: postgres:9.6.5 image: postgres:9.6.5
volumes: volumes:
- "postgres_datadir:/var/lib/postgresql/data" - "postgres_datadir:/var/lib/postgresql/data"
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
litecoind: litecoind:
restart: always restart: always
container_name: btcpayserver_litecoind container_name: btcpayserver_litecoind
@@ -123,6 +108,21 @@ services:
- "39388" - "39388"
volumes: volumes:
- "litecoin_datadir:/data" - "litecoin_datadir:/data"
bitcoind:
restart: always
container_name: btcpayserver_bitcoind
image: nicolasdorier/docker-bitcoin:0.16.0
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "bitcoin_datadir:/data"
volumes: volumes:
nginx_conf: nginx_conf:
nginx_vhost: nginx_vhost:
@@ -131,5 +131,5 @@ volumes:
postgres_datadir: postgres_datadir:
btcpay_datadir: btcpay_datadir:
nbxplorer_datadir: nbxplorer_datadir:
bitcoin_datadir:
litecoin_datadir: litecoin_datadir:
bitcoin_datadir:

View File

@@ -0,0 +1,132 @@
version: "3"
services:
nginx:
restart: always
image: nginx
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: always
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: always
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
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc"
BTCPAY_LTCLIGHTNING: "/etc/clightning_litecoin/lightning-rpc"
links:
- nbxplorer
- postgres
- clightning_litecoin
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
- "clightning_litecoin_datadir:/etc/clightning_litecoin"
nbxplorer:
restart: always
image: nicolasdorier/nbxplorer:1.0.1.23
expose:
- "32838"
environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "ltc"
NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
volumes:
- "nbxplorer_datadir:/datadir"
- "litecoin_datadir:/root/.litecoin"
links:
- litecoind
postgres:
restart: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: always
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.14.2
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "litecoin_datadir:/data"
clightning_litecoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/litecoin
bitcoin-rpcconnect=litecoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=ltc
volumes:
- "clightning_litecoin_datadir:/root/.lightning"
- "litecoin_datadir:/etc/litecoin"
links:
- litecoind
volumes:
nginx_conf:
nginx_vhost:
nginx_html:
nginx_certs:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
litecoin_datadir:
clightning_litecoin_datadir:

View File

@@ -0,0 +1,114 @@
version: "3"
services:
nginx:
restart: always
image: nginx
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: always
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: always
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
btcpayserver:
restart: always
image: nicolasdorier/btcpayserver:1.0.1.53
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: https://${BTCPAY_HOST}/
VIRTUAL_NETWORK: nginx-proxy
VIRTUAL_PORT: 49392
VIRTUAL_HOST: ${BTCPAY_HOST}
LETSENCRYPT_HOST: ${BTCPAY_HOST}
LETSENCRYPT_EMAIL: ${LETSENCRYPT_EMAIL:-yourname@example.com}
BTCPAY_LTCEXPLORERURL: http://nbxplorer:32838/
BTCPAY_CHAINS: "ltc"
links:
- nbxplorer
- postgres
volumes:
- "btcpay_datadir:/datadir"
- "nbxplorer_datadir:/root/.nbxplorer"
nbxplorer:
restart: always
image: nicolasdorier/nbxplorer:1.0.1.23
expose:
- "32838"
environment:
NBXPLORER_NETWORK: ${NBITCOIN_NETWORK:-regtest}
NBXPLORER_BIND: 0.0.0.0:32838
NBXPLORER_CHAINS: "ltc"
NBXPLORER_LTCRPCURL: http://litecoind:43782/
NBXPLORER_LTCNODEENDPOINT: litecoind:39388
volumes:
- "nbxplorer_datadir:/datadir"
- "litecoin_datadir:/root/.litecoin"
links:
- litecoind
postgres:
restart: always
image: postgres:9.6.5
volumes:
- "postgres_datadir:/var/lib/postgresql/data"
litecoind:
restart: always
container_name: btcpayserver_litecoind
image: nicolasdorier/docker-litecoin:0.14.2
environment:
BITCOIN_EXTRA_ARGS: |
rpcport=43782
${NBITCOIN_NETWORK:-regtest}=1
port=39388
whitelist=0.0.0.0/0
expose:
- "43782"
- "39388"
volumes:
- "litecoin_datadir:/data"
volumes:
nginx_conf:
nginx_vhost:
nginx_html:
nginx_certs:
postgres_datadir:
btcpay_datadir:
nbxplorer_datadir:
litecoin_datadir:

View File

@@ -0,0 +1,26 @@
version: "3"
services:
clightning_bitcoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/bitcoin
bitcoin-rpcconnect=bitcoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=btc
volumes:
- "clightning_bitcoin_datadir:/root/.lightning"
- "bitcoin_datadir:/etc/bitcoin"
links:
- bitcoind
btcpayserver:
environment:
BTCPAY_BTCLIGHTNING: "/etc/clightning_bitcoin/lightning-rpc"
volumes:
- "clightning_bitcoin_datadir:/etc/clightning_bitcoin"
links:
- clightning_bitcoin
volumes:
clightning_bitcoin_datadir:

View File

@@ -0,0 +1,26 @@
version: "3"
services:
clightning_litecoin:
image: nicolasdorier/clightning
environment:
LIGHTNINGD_OPT: |
bitcoin-datadir=/etc/litecoin
bitcoin-rpcconnect=litecoind
ipaddr=${BTCPAY_HOST}
network=${NBITCOIN_NETWORK:-regtest}
chain=ltc
volumes:
- "clightning_litecoin_datadir:/root/.lightning"
- "litecoin_datadir:/etc/litecoin"
links:
- litecoind
btcpayserver:
environment:
BTCPAY_LTCLIGHTNING: "/etc/clightning_litecoin/lightning-rpc"
volumes:
- "clightning_litecoin_datadir:/etc/clightning_litecoin"
links:
- clightning_litecoin
volumes:
clightning_litecoin_datadir:

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using YamlDotNet.Serialization; using YamlDotNet.Serialization;
namespace DockerGenerator namespace DockerGenerator
@@ -14,24 +15,45 @@ namespace DockerGenerator
private void Run() private void Run()
{ {
List<DockerComposeDefinition> defs = new List<DockerComposeDefinition>();
defs.Add(new DockerComposeDefinition("btc",
new List<string> { "nginx", "btcpayserver", "bitcoin" }));
defs.Add(new DockerComposeDefinition("btc-ltc",
new List<string> { "nginx", "btcpayserver", "bitcoin", "litecoin" }));
var fragmentLocation = FindLocation("docker-fragments"); var fragmentLocation = FindLocation("docker-fragments");
var productionLocation = FindLocation("Production"); var productionLocation = FindLocation("Production");
foreach(var def in defs) var testLocation = FindLocation("Production-NoReverseProxy");
HashSet<string> processed = new HashSet<string>();
foreach(var permutation in ItemCombinations(new[] { "btc", "ltc", "clightning" }.ToList()))
{ {
if(permutation.Count == 1 && permutation.First() == "clightning")
continue;
permutation.Sort();
if(permutation.Remove("clightning"))
permutation.Add("clightning"); // ensure clightning at the end
string id = string.Join('-', permutation);
if(!processed.Add(id))
continue;
var fragments = new List<string>();
fragments.Add("nginx");
fragments.Add("btcpayserver");
if(permutation.Contains("ltc"))
{
fragments.Add("litecoin");
if(permutation.Contains("clightning"))
fragments.Add("litecoin-clightning");
}
if(permutation.Contains("btc"))
{
fragments.Add("bitcoin");
if(permutation.Contains("clightning"))
fragments.Add("bitcoin-clightning");
}
var def = new DockerComposeDefinition(id, fragments);
def.FragmentLocation = fragmentLocation; def.FragmentLocation = fragmentLocation;
def.BuildOutputDirectory = productionLocation; def.BuildOutputDirectory = productionLocation;
def.Build(); def.Build();
}
var testLocation = FindLocation("Production-NoReverseProxy");
foreach(var def in defs)
{
def.Fragments.Remove("nginx"); def.Fragments.Remove("nginx");
def.Fragments.Add("btcpayserver-noreverseproxy"); def.Fragments.Add("btcpayserver-noreverseproxy");
def.BuildOutputDirectory = testLocation; def.BuildOutputDirectory = testLocation;
@@ -39,6 +61,44 @@ namespace DockerGenerator
} }
} }
/// <summary>
/// Method to create lists containing possible combinations of an input list of items. This is
/// basically copied from code by user "jaolho" on this thread:
/// http://stackoverflow.com/questions/7802822/all-possible-combinations-of-a-list-of-values
/// </summary>
/// <typeparam name="T">type of the items on the input list</typeparam>
/// <param name="inputList">list of items</param>
/// <param name="minimumItems">minimum number of items wanted in the generated combinations,
/// if zero the empty combination is included,
/// default is one</param>
/// <param name="maximumItems">maximum number of items wanted in the generated combinations,
/// default is no maximum limit</param>
/// <returns>list of lists for possible combinations of the input items</returns>
public static List<List<T>> ItemCombinations<T>(List<T> inputList, int minimumItems = 1,
int maximumItems = int.MaxValue)
{
int nonEmptyCombinations = (int)Math.Pow(2, inputList.Count) - 1;
List<List<T>> listOfLists = new List<List<T>>(nonEmptyCombinations + 1);
if(minimumItems == 0) // Optimize default case
listOfLists.Add(new List<T>());
for(int i = 1; i <= nonEmptyCombinations; i++)
{
List<T> thisCombination = new List<T>(inputList.Count);
for(int j = 0; j < inputList.Count; j++)
{
if((i >> j & 1) == 1)
thisCombination.Add(inputList[j]);
}
if(thisCombination.Count >= minimumItems && thisCombination.Count <= maximumItems)
listOfLists.Add(thisCombination);
}
return listOfLists;
}
private string FindLocation(string path) private string FindLocation(string path)
{ {
while(true) while(true)