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.103
    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"
      BTCPAY_LTCLIGHTNING: "type=clightning;server=unix://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: 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"
      NBXPLORER_LTCRPCURL: http://litecoind:43782/
      NBXPLORER_LTCNODEENDPOINT: litecoind:39388
    volumes:
    - "nbxplorer_datadir:/datadir"
    - "litecoin_datadir:/root/.litecoin"
    links:
    - litecoind
  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.15.1
    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:aeafe4dbe7d5c61f664c18417698866b0d70252f-2
    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
volumes:
  nginx_conf: 
  nginx_vhost: 
  nginx_html: 
  nginx_certs: 
  postgres_datadir: 
  btcpay_datadir: 
  nbxplorer_datadir: 
  litecoin_datadir: 
  clightning_litecoin_datadir: