三分钟用 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 里,更新不会丢。建议先在测试环境跑一遍再看生产。