三分钟用 Docker 部署加密货币支付网关

教程 Docker 自托管

2026 年 5 月,DeFi 协议单月被盗金额突破 2 亿美元,MARA 花 430 万美元保护 CEO。加密行业的安全问题不是能不能发生,是多久发生一次。托管支付网关的钱你管不了,自托管网关你完全控制。这篇教程告诉你如何在三分钟内部署自己的加密货币支付网关,支持比特币、USDT 和 100+ 条链。

托管支付网关的问题:不是会不会出事,是多久

上周,一个 DeFi 借贷协议被闪电贷攻击,损失 4700 万美元。同一周,比特币矿企 MARA 在 SEC 文件里披露:2025 年花了 430 万美元在 CEO 安全保护上。防的是物理攻击,但反映了整个行业的心态变化——资产安全正在变成系统性问题。

托管支付网关(CoinGate、OpenNode、Coinbase Commerce)替你管理私钥和资金。方便——但钱不是你控制的。2019 年 QuadrigaCX 关闭,1.9 亿美元拿不回来。2022 年 FTX 倒闭,几十亿蒸发。每次出事,用户都是最后一个知道的。

自托管支付网关的逻辑很简单:你运行自己的服务器,你持有自己的私钥,你控制自己的资金。没有中间商可以冻结资产、提高费率、或者因为合规审查拒绝你的交易。2026 年的 Docker 技术让这个门槛降到了极低——一台 VPS、两条命令、三分钟。

为什么选 Xcash 做自托管支付网关

市面上自托管选项不多。BTCPay Server 是最大名气的——但只支持比特币。如果你要收 USDT、USDC、ETH、MATIC 或者任意 EVM 链的原生代币,BTCPay 帮不了你。

Xcash 是 2025 年发布的开源自托管多链支付网关。设计目标很直接:一条命令启动,所有链都支持。比特币 + 以太坊 + BSC + Polygon + Arbitrum + Optimism + Avalanche + Fantom + 100+ EVM 链。USDT 和 USDC 覆盖 ERC-20、TRC-20、BEP-20 三个网络。

不开玩笑——部署真的只要三分钟:

git clone https://github.com/xca-sh/xcash.git
cd xcash && ./scripts/init_env.sh && docker compose up -d

这之后打开浏览器访问 http://你的服务器IP:8000,后台管理面板已经在运行了。

部署前准备

你只需要三样东西:

  • 一台 Linux 服务器。最低配置 1 核 2GB 内存,Ubuntu 22.04 或 Debian 12。Vultr、Hetzner、阿里云都行。Xcash 不靠全节点运作——不需要存几百 GB 的区块链数据
  • Docker 和 Docker Compose。如果服务器是新的,跑一行安装:curl -fsSL https://get.docker.com | sh。Docker Compose 现在内置在 Docker 里了
  • 一个域名(可选)。用 IP 直接访问也完全能用。想绑域名的话,在后面加一层 Nginx 反向代理就行

对比:BTCPay Server 需要你先跑一个比特币全节点——600GB+ 数据,1-3 天同步时间。Xcash 通过公共 RPC 或你自己配的 Infura/Alchemy 端点连接链上数据,启动即用。

三步部署实战

第一步:克隆仓库

git clone https://github.com/xca-sh/xcash.git
cd xcash

第二步:初始化配置

./scripts/init_env.sh

脚本会引导你设置几项基本配置——管理员用户名和密码、SECRET_KEY、数据库密码。可以一路回车用默认值,也可以自定义。所有配置写在 .env 文件里,部署后随时改。

最重要的是 CHAIN_RPC_URLS 这一项——定义每条链的 RPC 端点。默认配置用公共节点,如果你有 Infura、Alchemy 或 QuickNode 的 API key,把端点换上去会更稳定。

第三步:启动服务

docker compose up -d

Docker Compose 会拉起四个容器:Django 应用(API + 后台管理面板)、PostgreSQL 数据库、Redis 缓存、Celery 任务队列。首次构建需要拉镜像,大概 30 秒。之后再启动就是秒级。

等容器跑起来后,访问 http://你的IP:8000/admin/ 用你设的管理员账号登录,后台面板就出来了。

部署后你得到了什么

三条命令跑完,你的服务器上已经在运行:

  • 一个 Web 后台管理面板——创建钱包、查看交易、配置 Webhook、管理 API 权限
  • 一套 REST API——创建发票、查询支付状态、生成收款地址、发起提现,标准 JSON 请求/响应
  • 多链 HD 钱包——每笔交易自动生成唯一收款地址,客户不会拿到重复地址,你也不用担心地址管理混乱
  • Webhook 回调——支付确认后自动通知你的后端,不需要轮询
  • 内置风控——MistTrack 集成,可疑地址自动标记

和托管方案比:一张表说清楚

维度 自托管 (Xcash) 托管 (CoinGate/OpenNode)
平台费1% 每笔交易
私钥✅ 你持有❌ 平台持有
支持的链100+ EVM + 比特币10-30 条链
KYC 要求❌ 不需要强制 KYC
部署时间3 分钟注册即用(但不属于你)
资金冻结风险❌ 零(你控制)✅ 平台可冻结
API 限制❌ 无限制按套餐限速
月流水 5 万刀,年费服务器费 ~$20/月1% = $6000/年
提现到任意地址✅ 支持部分支持/审核

生产环境加固

三条命令部署够用,但放生产环境还要加几层。

反向代理 + HTTPS:用 Nginx 做反向代理并 terminate TLS。核心配置:listen 443,proxy_pass 指向本地 8000,设置 X-Forwarded-For 和 Host 头。证书用 Let's Encrypt 自动签发。不要暴露 Django 的 8000 端口到公网——只走 Nginx。

数据库备份:用 cron 定时任务每晚自动备份。

0 3 * * * docker exec xcash-db-1 pg_dump -U xcash xcash > /backups/xcash_backup.sql

防火墙规则:只开放必要端口。

ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

和别的自托管方案对比

BTCPay Server 是唯一一个同级别的自托管竞品,但它们的哲学完全不同:

  • BTCPay:Bitcoin-only。需要比特币全节点 + 1-3 天同步 + 600GB 磁盘。对 Lightning 支持极好,对稳定币支持为零。适合已经跑着节点的比特币原生团队
  • Xcash:多链优先。不需要全节点,启动即用。100+ EVM 链全部原生支持。对 Lightning 还在开发中。适合要立刻接多种加密货币收款的业务

更深度的对比见我们的 BTCPay Server vs Xcash 详细对比

开始接入:你的第一笔收款

部署完成后,创建你的第一笔发票只需要一个 POST 请求:

curl -X POST http://你的IP:8000/api/v1/invoices/ \
  -H "Authorization: Token YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d @invoice.json

invoice.json 里填入金额、币种、链、订单号和回调地址。返回的 JSON 里有一个 payment_url——把它嵌进你的结账页面,或者直接发给客户。客户打开链接、选钱包付 USDT、收到确认——整个流程和 CoinGate 一样,但零手续费,钱直接进你的钱包。

完整 API 文档见 docs.xca.sh

常见问题

部署加密支付网关需要全节点吗?

不需要。Xcash 通过公共 RPC 端点或你自己的 Infura/Alchemy/QuickNode API key 连接区块链。不存几百 GB 的链上数据,不用等同步。一台 1 核 2GB 的轻量 VPS 就够了。

Xcash 收哪些加密货币?

默认支持比特币(BTC)、以太坊(ETH)、USDT(ERC-20 / TRC-20 / BEP-20)、USDC 和 100+ EVM 兼容链的原生代币——包括 BSC、Polygon、Arbitrum、Optimism、Avalanche、Fantom 等。所有币种通过同一套 API 管理。

和 CoinGate / OpenNode 比,优势在哪里?

两点:零费用和完全控制。CoinGate 收 1% 每笔交易。你月流水 5 万美元,一年是 6000 美元——够买好几台好 VPS 了。而且托管方有权随时冻结你的账户——私钥在他们手上。自托管方案省下的不只是手续费,还有你的资金安全。

部署后怎么更新?

cd xcash && git pull && docker compose pull && docker compose up -d

数据在 Docker volume 里,更新不会丢。建议先在测试环境跑一遍再看生产。


相关阅读