返回应用列表
BTCPay Server

Deploy BTCPay Server on Your Own Server

Free, open-source & self-hosted, Bitcoin payment processor.

📦 Other

想更快部署 BTCPay Server到服务器?试试 Senate,一条命令完成部署,自动配置 HTTPS 和监控。

立即开始

什么是 BTCPay Server?

BTCPay Server is a free, open-source & self-hosted bitcoin payment gateway. It allows self-sovereign individuals and businesses to accept bitcoin payments online or in person without any fees. This will deploy BTCPay Server with Bitcoin Full Node (with 50 GB pruning), Core Lightning Node, Spark Wallet and Ride The Lightning. Please note that features like SSH access and Onion service have been omitted to keep deployment simple. You may need to open the port `9735` in your firewall.

了解更多

自托管 BTCPay Server

按照以下步骤在您的服务器上部署。

1

安装 Docker

如果服务器上已安装 Docker,可跳过此步骤。

curl -fsSL https://get.docker.com | sh
2

配置

自定义以下设置。大多数情况下使用默认值即可。

General
Explorer
Database
Application
Bitcoin Node
Lightning Node
Ride The Lightning
3

部署

复制配置并在服务器上运行。

services:
  btcpayserver:
    image: btcpayserver/btcpayserver:1.6.11
    environment:
      BTCPAY_BIND: 0.0.0.0:49392
      BTCPAY_BTCEXPLORERURL: http://btcpayserver-nbxplorer:32838/
      BTCPAY_BTCEXTERNALCLIGHTNINGREST: server=/clightning-rest/btc;macaroonfilepath=/etc/clightning_bitcoin_rest_certs/access.macaroon;macaroondirectorypath=/etc/clightning_bitcoin_rest_certs
      BTCPAY_BTCEXTERNALRTL: server=/rtl/api/authenticate/cookie;cookiefile=/etc/clightning_bitcoin_rtl/.cookie
      BTCPAY_BTCEXTERNALSPARK: server=/spark/btc/;cookiefile=/etc/clightning_bitcoin_spark/.cookie
      BTCPAY_BTCLIGHTNING: type=clightning;server=unix://etc/clightning_bitcoin/lightning-rpc
      BTCPAY_CHAINS: btc
      BTCPAY_DEBUGLOG: btcpay.log
      BTCPAY_DOCKERDEPLOYMENT: "true"
      BTCPAY_EXPLORERPOSTGRES: User ID=postgres;Host=btcpayserver-postgres;Port=5432;Application Name=btcpayserver;MaxPoolSize=80;Database=nbxplorermainnet
      BTCPAY_HOST: btcpayserver.your-domain.com
      BTCPAY_NETWORK: mainnet
      BTCPAY_POSTGRES: User ID=postgres;Host=btcpayserver-postgres;Port=5432;Application Name=btcpayserver;Database=btcpayservermainnet
      BTCPAY_ROOTPATH: /
      BTCPAY_UPDATEURL: https://api.github.com/repos/btcpayserver/btcpayserver/releases/latest
    volumes:
      - btcpayserver-data:/datadir
      - btcpayserver-nbxplorer-data:/root/.nbxplorer
      - btcpayserver-plugins:/root/.btcpayserver/Plugins
      - btcpayserver-lightning-data:/etc/clightning_bitcoin
      - btcpayserver-lightning-spark:/etc/clightning_bitcoin_spark
      - btcpayserver-lightning-rtl-data:/etc/clightning_bitcoin_rtl
      - btcpayserver-lightning-rest-certificates:/etc/clightning_bitcoin_rest_certs
    depends_on:
      - btcpayserver-postgres
      - btcpayserver-bitcoind
      - btcpayserver-lightning
  btcpayserver-bitcoind:
    image: btcpayserver/bitcoin:23.0
    environment:
      BITCOIN_EXTRA_ARGS: |+
        rpcport=43782
        rpcbind=0.0.0.0:43782
        rpcallowip=0.0.0.0/0
        port=39388
        whitelist=0.0.0.0/0
        maxmempool=500
        prune=50000

      BITCOIN_NETWORK: mainnet
      BITCOIN_WALLETDIR: /walletdata
    volumes:
      - btcpayserver-bitcoind-wallet-data:/walletdata
      - btcpayserver-bitcoind-data:/data
  btcpayserver-lightning:
    image: btcpayserver/lightning:v0.10.2
    environment:
      LIGHTNINGD_ALIAS: 570038ecff5be3851461632af480ba9a
      LIGHTNINGD_ANNOUNCEADDR: ""
      LIGHTNINGD_CHAIN: btc
      LIGHTNINGD_NETWORK: mainnet
      LIGHTNINGD_OPT: |+
        bitcoin-datadir=/etc/bitcoin
        bitcoin-rpcconnect=btcpayserver-bitcoind
        experimental-offers

      LIGHTNINGD_PORT: "9735"
      LIGHTNINGD_READY_FILE: /root/.nbxplorer/btc_fully_synched
    volumes:
      - btcpayserver-lightning-data:/root/.lightning
      - btcpayserver-bitcoind-data:/etc/bitcoin
      - btcpayserver-nbxplorer-data:/root/.nbxplorer
    ports:
      - $$cap_LIGHTNINGD_PORT:$$cap_LIGHTNINGD_PORT
    depends_on:
      - btcpayserver-bitcoind
  btcpayserver-lightning-rest:
    image: saubyk/c-lightning-rest:0.9.0
    environment:
      LIGHTNINGD_READY_FILE: /root/.nbxplorer/btc_fully_synched
      NODE: btcpayserver-lightning:9835
      PROTOCOL: http
    volumes:
      - btcpayserver-lightning-data:/root/.lightning
      - btcpayserver-bitcoind-data:/etc/bitcoin
      - btcpayserver-lightning-rest-certificates:/usr/src/app/certs
      - btcpayserver-nbxplorer-data:/root/.nbxplorer
    depends_on:
      - btcpayserver-lightning
  btcpayserver-lightning-spark:
    image: shesek/spark-wallet:0.3.1-standalone
    environment:
      NETWORK: mainnet
      SPARK_OPT: --no-tls -C /data/.cookie
    volumes:
      - btcpayserver-lightning-data:/etc/lightning
      - btcpayserver-lightning-spark:/data
    depends_on:
      - btcpayserver-lightning
  btcpayserver-nbxplorer:
    image: nicolasdorier/nbxplorer:2.3.38
    environment:
      NBXPLORER_AUTOMIGRATE: "true"
      NBXPLORER_BIND: 0.0.0.0:32838
      NBXPLORER_BTCNODEENDPOINT: btcpayserver-bitcoind:39388
      NBXPLORER_BTCRPCURL: http://btcpayserver-bitcoind:43782/
      NBXPLORER_CHAINS: btc
      NBXPLORER_NETWORK: mainnet
      NBXPLORER_NOMIGRATEEVTS: "true"
      NBXPLORER_POSTGRES: User ID=postgres;Host=btcpayserver-postgres;Port=5432;Application Name=nbxplorer;MaxPoolSize=20;Database=nbxplorermainnet
      NBXPLORER_SIGNALFILESDIR: /datadir
      NBXPLORER_TRIMEVENTS: "10000"
    volumes:
      - btcpayserver-nbxplorer-data:/datadir
      - btcpayserver-bitcoind-data:/root/.bitcoin
    depends_on:
      - btcpayserver-postgres
  btcpayserver-postgres:
    environment:
      POSTGRES_HOST_AUTH_METHOD: trust
    volumes:
      - btcpayserver-postgres:/var/lib/postgresql/data
  btcpayserver-rtl:
    image: shahanafarooqui/rtl:0.13.1
    environment:
      BITCOIND_CONFIG_PATH: /etc/bitcoin/bitcoin.conf
      CONFIG_PATH: /root/.lightning/config
      LN_IMPLEMENTATION: CLT
      LN_SERVER_URL: http://btcpayserver-lightning-rest:3001/v1
      LOGOUT_REDIRECT_LINK: /server/services
      MACAROON_PATH: /etc/clightning_bitcoin_rest_certs
      RTL_CONFIG_PATH: /data/
      RTL_COOKIE_PATH: /data/.cookie
      RTL_SSO: "1"
    volumes:
      - btcpayserver-lightning-data:/root/.lightning
      - btcpayserver-bitcoind-data:/etc/bitcoin
      - btcpayserver-lightning-rtl-data:/data
      - btcpayserver-lightning-rest-certificates:/etc/clightning_bitcoin_rest_certs
volumes:
  btcpayserver-data: {}
  btcpayserver-nbxplorer-data: {}
  btcpayserver-plugins: {}
  btcpayserver-lightning-data: {}
  btcpayserver-lightning-spark: {}
  btcpayserver-lightning-rtl-data: {}
  btcpayserver-lightning-rest-certificates: {}
  btcpayserver-bitcoind-wallet-data: {}
  btcpayserver-bitcoind-data: {}
  btcpayserver-postgres: {}

然后运行:

docker compose up -d
4

访问

启动后,访问您的应用: http://localhost:80

为什么要自托管 BTCPay Server?

完全数据所有权

数据保存在您的服务器上,无第三方访问。

无月费

只需支付服务器费用,无按席位或用量收费。

完全控制

按您的需求自定义、备份和扩展。

隐私与合规

满足 GDPR、HIPAA 或内部安全要求。

技术细节

Docker 镜像

btcpayserver/btcpayserver:${BTCPAYSERVER_VERSION}

官方文档

docs.btcpayserver.org

想更快部署?

尝试 Senate!Senate 帮您处理 Docker、HTTPS、更新和监控。一条命令部署 300+ 应用。

在任意 Linux 服务器上安装:

sh -c "$(curl -sSL https://get.senate.sh)"