每一个夹在中间的支付商,都带着自己的条款、自己的 KYC,以及一个能冻结你余额的按钮。BTCPay Server 把中间这一环去掉了。发票在你的服务器上生成,顾客付款到从你钱包派生出的地址,由你自己的 Bitcoin 节点确认到账。除了你,谁也关不掉它。
它适合已经在收 bitcoin——或者想收——又不想把这件事交给某家公司的商店、自由职业者和服务。
选哪个套餐
BTCPay 大约由七个容器组成:BTCPay 应用、监视链上数据的 NBXplorer、Bitcoin Core、Postgres,以及前面自动处理 Let's Encrypt 的 nginx。在我们的测试服务器上,启动时约占 0.7 GB 内存,同步期间 Bitcoin Core 会用得更多;4 GB 绰绰有余。真正的瓶颈是磁盘,而不是内存。
| 配置 | 套餐 |
|---|---|
| 链上 BTC,修剪节点保留约 5 GB 区块 | Small-IP:4 vCPU、4 GB、35 GB(每月 $16) |
| 同上,为日志和更新多留些余量 | Medium-IP:6 vCPU、6 GB、45 GB(每月 $20) |
| Lightning、更大的区块窗口或第二种币 | Pro-32:8 vCPU、32 GB、400 GB(每月 $40),按需申请 |
你需要带独立 IPv4 的套餐:顾客通过 HTTPS 访问 BTCPay,Let's Encrypt 也必须能访问 80 端口。德国或芬兰,下单时哪个有货选哪个——对支付页面来说,延迟几乎无关紧要。既然目的就是收加密货币,服务器本身也能免 KYC 用加密货币付款,正合适。
安装
把 pay.example.com 解析到服务器,然后在全新的 Ubuntu 24.04 或 Debian 12 上以 root 身份执行:
mkdir BTCPayServer && cd BTCPayServer
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker
export BTCPAY_HOST="pay.example.com"
export LETSENCRYPT_EMAIL="you@yourdomain.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-xxs"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_LIGHTNING="none"
. ./btcpay-setup.sh -i
能装得下,靠的是 opt-save-storage-xxs:Bitcoin Core 会把区块修剪到 5 GB。脚本会拉取镜像,创建名为 btcpayserver 的 systemd 服务并启动全部组件。过程中它还会重启 Docker 守护进程——这又是一个理由:给 BTCPay 一台独立服务器,而不是把它塞在别的容器旁边。
检查节点:
bitcoin-cli.sh getblockchaininfo
对比 blocks 和 headers,并确认 "pruned": true。测试进行到第二十分钟时,约 972,000 个区块已同步约 218,000 个——早期区块非常小,别据此推算。真正的活儿在后面。
首次登录:马上就做
https://pay.example.com 一有响应就立刻打开。BTCPay 会带你到注册页面,而第一个账号会成为服务器管理员。如果别人比你先找到这个页面,你的收款服务器就归了对方。注册完成后,到 Server Settings → Policies 里按你的需要设置新用户注册。
然后创建商店,用扩展公钥(xpub)连接你的钱包——可以来自硬件钱包,也可以来自桌面钱包的导出。BTCPay 为每张发票派生新地址,从不接触私钥。请为此使用新钱包或新账户,而不是有多年历史的旧钱包:修剪节点最擅长跟踪从现在开始发生的事情。
在节点追上网络之前,BTCPay 会显示仍在同步,也不会监视付款。上线时间请安排在同步完成之后,而不是安装当晚。
正式上线前须知
- 首次同步很长。 修剪节点同样要先下载并验证整条链——超过 700 GB——然后才能丢弃旧区块。我们的套餐流量在 1 Gbit/s 下不限量,不额外收费,但在 4 vCPU 的服务器上要按天计算。仓库里有一个快速同步脚本,它通过信任别人提供的 UTXO 集副本来跳过这一步,这在一定程度上抵消了自己运行节点的意义。
- 更新。
btcpay-update.sh会拉取最新版 BTCPay 及其依赖。请在清闲时段运行,别在促销进行时。 - 备份什么。 只用 xpub 连接的钱包,币不在服务器上。可能丢失的是 Postgres 里的商店配置和发票历史——备份这个卷,并把钱包助记词放在与这台服务器毫无关系的地方。
- Lightning 以后再说。 先从链上开始。Lightning 意味着更大的区块窗口、通道管理和入站流动性——本身就是一个项目,需要的 Pro 套餐我们可按需配置。
我的看法:对于每天收一次 bitcoin 的小商店,Small-IP 上的 BTCPay 是最干净的方案。如果你需要刷卡收款或法币提现,这不是你要的工具。
相关内容
- 在 VPS 上运行自己的 Bitcoin 节点:只想验证自己的钱包,单独跑节点即可
- 在 VPS 上运行自己的 Monero 节点
- Crypto VPS:用加密货币支付服务器
- 独立 IP 网站 VPS:把顾客引到 BTCPay 的那家商店
- 如何配置 ufw 防火墙
评论
暂无评论。来做第一个吧。