Ogni processore di pagamento che sta in mezzo porta con sé le sue condizioni, il suo KYC e il suo pulsante per congelarti il saldo. BTCPay Server toglie di mezzo il mezzo. Le fatture nascono sul tuo server, il cliente paga a un indirizzo derivato dal tuo wallet e il tuo nodo Bitcoin conferma il pagamento. Nessuno tranne te può spegnerlo.
È pensato per negozi, freelance e servizi che già accettano bitcoin — o vogliono farlo — e preferiscono non affidare questo lavoro a un'azienda.
Quale piano
BTCPay gira come circa sette container: l'app BTCPay, NBXplorer (che osserva la catena), Bitcoin Core, Postgres e un nginx davanti con Let's Encrypt automatico. Sul nostro server di prova usavano circa 0,7 GB di RAM all'avvio, e Bitcoin Core ne prende di più durante la sincronizzazione; 4 GB bastano e avanzano. Il vero limite è il disco, non la memoria.
| Configurazione | Piano |
|---|---|
| BTC on-chain, nodo potato con ~5 GB di blocchi | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/mese) |
| Lo stesso, con più margine per log e aggiornamenti | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/mese) |
| Lightning, una finestra di blocchi più ampia o una seconda moneta | Pro-32: 8 vCPU, 32 GB, 400 GB ($40/mese), su richiesta |
Ti serve un piano con un IPv4 tutto suo: i clienti raggiungono BTCPay via HTTPS e Let's Encrypt deve arrivare alla porta 80. Scegli Germania o Finlandia, quella disponibile al momento dell'ordine: per una pagina di pagamento la latenza conta poco. E dato che il punto è proprio incassare in crypto, è coerente che anche il server si paghi in crypto, senza KYC.
Installazione
Punta pay.example.com sul server, poi, come root su un Ubuntu 24.04 o Debian 12 appena installato:
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 a far entrare tutto: Bitcoin Core pota fino a 5 GB di blocchi. Lo script scarica le immagini, crea un servizio systemd btcpayserver e avvia tutto. Strada facendo riavvia anche il demone Docker: un motivo in più per dare a BTCPay un server tutto suo invece di infilarlo accanto ad altri container.
Controlla il nodo:
bitcoin-cli.sh getblockchaininfo
Confronta blocks con headers e guarda "pruned": true. Dopo venti minuti di test eravamo a circa 218.000 blocchi su circa 972.000: i primi sono minuscoli, quindi non fare proiezioni. Il lavoro vero arriva dopo.
Primo accesso: fallo subito
Apri https://pay.example.com appena risponde. BTCPay ti porta a una pagina di registrazione, e il primo account diventa amministratore del server. Se qualcun altro trova la pagina prima di te, il tuo server di pagamento è suo. Registrati, poi guarda in Server Settings → Policies e imposta le nuove registrazioni come preferisci.
Poi crea un negozio e collega il tuo wallet con la sua chiave pubblica estesa (xpub), da un hardware wallet o dall'esportazione del wallet desktop. BTCPay deriva un indirizzo nuovo per ogni fattura e non vede mai una chiave privata. Usa per questo un wallet nuovo o un account nuovo invece di uno con anni di storia: a un nodo potato piace seguire ciò che succede da adesso in poi.
Finché il nodo non si è messo in pari, BTCPay mostra che sta ancora sincronizzando e non osserva i pagamenti. Pianifica il lancio dopo la sincronizzazione, non per la sera in cui lo installi.
Cosa sapere prima di andare online
- La prima sincronizzazione è lunga. Un nodo potato scarica e verifica comunque l'intera catena — oltre 700 GB — prima di poter buttare i blocchi vecchi. Sui nostri piani il traffico è illimitato a 1 Gbit/s, quindi non costa nulla in più, ma su un server da 4 vCPU ragiona in giorni. Nel repository c'è uno script di sincronizzazione veloce; salta quel lavoro fidandosi della copia dell'insieme UTXO di qualcun altro, il che vanifica in parte il motivo per cui tieni un nodo tuo.
- Aggiornamenti.
btcpay-update.shscarica l'ultima versione di BTCPay e delle sue dipendenze. Lancialo in un'ora tranquilla, non nel mezzo dei saldi. - Cosa salvare. Con un wallet solo xpub le tue monete non sono sul server. Perderesti la configurazione del negozio e lo storico delle fatture in Postgres: fai il backup di quel volume e tieni il seed del wallet in un posto che non c'entri nulla con questo server.
- Lightning più avanti. Parti on-chain. Lightning significa una finestra di blocchi più ampia, gestione dei canali e liquidità in entrata: un progetto a sé e un piano Pro che configuriamo su richiesta.
Il mio parere: per un piccolo negozio che incassa bitcoin una volta al giorno, BTCPay su Small-IP è la soluzione più pulita che esista. Se ti servono pagamenti con carta o prelievi in valuta fiat, non è lo strumento giusto.
Correlati
- Il tuo nodo Bitcoin su un VPS: il nodo da solo, se vuoi solo verificare il tuo wallet
- Il tuo nodo Monero su un VPS
- Crypto VPS: pagare i server in crypto
- VPS per un sito con IP proprio: il negozio che manda i clienti a BTCPay
- Come configurare un firewall ufw
Commenti
Ancora nessun commento. Sii il primo.