每一個夾在中間的金流商,都帶著自己的條款、自己的 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 裡的商店設定和發票歷史——備份這個 volume,並把錢包助記詞放在與這台伺服器毫無關係的地方。
- Lightning 以後再說。 先從鏈上開始。Lightning 意味著更大的區塊視窗、通道管理和入站流動性——本身就是一個專案,需要的 Pro 方案我們可依需求設定。
我的看法:對於每天收一次 bitcoin 的小商店,Small-IP 上的 BTCPay 是最乾淨的方案。如果你需要刷卡收款或法幣提領,這不是你要的工具。
相關內容
- 在 VPS 上運行自己的 Bitcoin 節點:只想驗證自己的錢包,單獨跑節點即可
- 在 VPS 上運行自己的 Monero 節點
- Crypto VPS:用加密貨幣支付伺服器
- 獨立 IP 網站 VPS:把顧客引到 BTCPay 的那家商店
- 如何設定 ufw 防火牆
評論
目前還沒有評論。歡迎成為第一位。