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:-<no value>}
      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: