−25%

Windows 按年付费,截至 10 月 31 日。 查看套餐

EQVPS
开始使用

BTCPay Server VPS:在自己的服务器上收加密货币

自带修剪 Bitcoin 节点的 BTCPay Server:付款直接进入你的钱包,中间没有支付商。经过实测的安装步骤,以及 35 GB 磁盘的容量测算。

每一个夹在中间的支付商,都带着自己的条款、自己的 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 是最干净的方案。如果你需要刷卡收款或法币提现,这不是你要的工具。

相关内容

准备好部署了?加密货币付款、无需KYC——约一分钟上线。

立即部署 →

常见问题

BTCPay Server 需要多少磁盘?

使用 opt-save-storage-xxs 配置时,Bitcoin 节点只保留约 5 GB 区块。再加上 chainstate(UTXO 集,十几 GB 且持续增长)、约 2.5 GB 的 Docker 镜像和操作系统。这些都能装进 Small-IP 的 35 GB。下一档配置 opt-save-storage-xs 单是区块就要 25 GB,需要 Pro 套餐,可按需申请。

首次同步要多久?

以天计,而不是以小时计。即使是修剪节点,也要下载并验证整条 Bitcoin 区块链——超过 700 GB 流量——之后才会丢弃旧区块。我们的套餐流量不限,下载不会产生额外费用,但在节点追上网络之前,BTCPay 看不到付款。

BTCPay 会托管我的币吗?

如果你用扩展公钥(xpub)连接钱包,就不会。服务器可以生成地址、监视付款,但它没有私钥,什么也花不出去。丢了服务器,丢的是商店设置,不是钱。

需要独立 IP 吗?

需要。你的商店和顾客的浏览器必须能通过 443 端口访问 BTCPay,Let's Encrypt 签发证书也需要 80 端口。NAT 套餐从外部只接受你的 SSH 端口。

它也能收 Lightning 或 Monero 吗?

两者都有对应选项,但都装不进小套餐。Lightning 节点比链上付款需要更大的区块窗口和更多照看;Monero 节点需要的磁盘远多于修剪后的 Bitcoin 节点。先在 Small-IP 上从链上 bitcoin 开始;如需其中任何一个,请向我们咨询 Pro 套餐。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。