services: btcpayserver: image: btcpayserver/btcpayserver:1.13.8 container_name: btcpayserver restart: unless-stopped ports: - "49392:49392" # BTCPay Server HTTP port environment: # Database - POSTGRES_HOST=postgres - POSTGRES_PORT=5432 - POSTGRES_USER=postgres - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-SomeRandomPasswordForDatabase} - POSTGRES_DB=btcpayserver # BTCPay Server Configuration - BTCPAY_HOST=pay.silverlabs.uk - BTCPAY_PROTOCOL=https - BTCPAY_BIND=0.0.0.0:49392 - BTCPAY_SOCKSENDPOINT=tor:9050 - BTCPAY_TORRCFILE=/datadir/Tor/torrc - BTCPAY_TORSERVICES=btcpayserver:49392 # Network settings - BTCPAY_NETWORK=mainnet - BTCPAY_CHAINS=btc - BTCPAY_BTCEXPLORERURL=http://nbxplorer:32838 - BTCPAY_BTCLIGHTNING=type=lnd-rest;server=https://lnd:8080/;macaroonfilepath=/datadir/admin.macaroon;certfilepath=/datadir/tls.cert # Other settings - BTCPAY_ROOTPATH=/ - BTCPAY_DEBUGLOG=btcpay.log - BTCPAY_LOGS_FILE=/datadir/logs/btcpay.log - BTCPAY_LOGS_LEVEL=info volumes: - btcpay_datadir:/datadir - btcpay_logs:/var/log/btcpayserver networks: - btcpaynetwork depends_on: - postgres - nbxplorer labels: - "traefik.enable=true" - "traefik.http.routers.btcpay.rule=Host(`pay.silverlabs.uk`)" - "traefik.http.routers.btcpay.tls=true" - "traefik.http.routers.btcpay.tls.certresolver=letsencrypt" - "traefik.http.services.btcpay.loadbalancer.server.port=49392" postgres: image: postgres:13 container_name: btcpay-postgres restart: unless-stopped environment: - POSTGRES_USER=postgres - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-SomeRandomPasswordForDatabase} - POSTGRES_DB=btcpayserver volumes: - postgres_data:/var/lib/postgresql/data networks: - btcpaynetwork nbxplorer: image: nicolasdorier/nbxplorer:2.5.0 container_name: btcpay-nbxplorer restart: unless-stopped ports: - "32838:32838" environment: - NBXPLORER_NETWORK=mainnet - NBXPLORER_CHAINS=btc - NBXPLORER_BTCRPCURL=http://bitcoind:8332 - NBXPLORER_BTCRPCUSER=bitcoinrpc - NBXPLORER_BTCRPCPASSWORD=${BTC_RPC_PASSWORD:-SomeRandomBitcoinPassword} - NBXPLORER_BIND=0.0.0.0:32838 - NBXPLORER_VERBOSE=1 - NBXPLORER_NOAUTH=1 volumes: - nbxplorer_data:/datadir networks: - btcpaynetwork depends_on: - bitcoind bitcoind: image: ruimarinho/bitcoin-core:25 container_name: btcpay-bitcoind restart: unless-stopped command: > bitcoind -server=1 -rpcuser=bitcoinrpc -rpcpassword=${BTC_RPC_PASSWORD:-SomeRandomBitcoinPassword} -rpcbind=0.0.0.0:8332 -rpcallowip=0.0.0.0/0 -txindex=1 -prune=0 volumes: - bitcoin_data:/home/bitcoin/.bitcoin networks: - btcpaynetwork ports: - "8333:8333" # Bitcoin P2P - "8332:8332" # Bitcoin RPC (internal only) tor: image: btcpayserver/tor:latest container_name: btcpay-tor restart: unless-stopped environment: - TOR_EXTRA_ARGS= volumes: - tor_data:/datadir networks: - btcpaynetwork volumes: btcpay_datadir: driver: local btcpay_logs: driver: local postgres_data: driver: local nbxplorer_data: driver: local bitcoin_data: driver: local tor_data: driver: local networks: btcpaynetwork: driver: bridge