Todo processador de pagamento no meio do caminho traz suas próprias regras, seu próprio KYC e seu próprio botão de congelar o saldo. O BTCPay Server tira o meio do caminho. As faturas são criadas no seu servidor, o cliente paga para um endereço derivado da sua carteira e o seu próprio nó Bitcoin confirma o pagamento. Ninguém além de você pode desligar isso.
É para lojas, freelancers e serviços que já aceitam bitcoin — ou querem aceitar — e preferem não entregar esse trabalho a uma empresa.
Qual plano
O BTCPay roda como uns sete contêineres: o app BTCPay, o NBXplorer (que acompanha a cadeia), o Bitcoin Core, o Postgres e um nginx na frente com Let's Encrypt automático. No nosso servidor de teste eles usaram cerca de 0,7 GB de RAM no início, e o Bitcoin Core pega mais durante a sincronização; 4 GB sobram. A restrição real é o disco, não a memória.
| Configuração | Plano |
|---|---|
| BTC on-chain, nó podado com ~5 GB de blocos | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/mês) |
| O mesmo, com mais folga para logs e atualizações | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/mês) |
| Lightning, uma janela de blocos maior ou uma segunda moeda | Pro-32: 8 vCPU, 32 GB, 400 GB ($40/mês), sob consulta |
Você precisa de um plano com IPv4 próprio: os clientes chegam ao BTCPay por HTTPS, e o Let's Encrypt precisa alcançar a porta 80. Escolha Alemanha ou Finlândia, o que estiver disponível na hora do pedido; para uma página de pagamento, a latência quase não importa. E como a ideia toda é receber em cripto, faz sentido que o próprio servidor seja pago em cripto, sem KYC.
Instalação
Aponte pay.example.com para o servidor e então, como root num Ubuntu 24.04 ou Debian 12 recém-criado:
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
É o opt-save-storage-xxs que faz caber: o Bitcoin Core poda até ficar com 5 GB de blocos. O script baixa as imagens, cria um serviço systemd btcpayserver e sobe tudo. No caminho ele também reinicia o daemon do Docker — mais um motivo para dar ao BTCPay um servidor só dele em vez de espremê-lo ao lado de outros contêineres.
Confira o nó:
bitcoin-cli.sh getblockchaininfo
Compare blocks com headers e veja "pruned": true. Com vinte minutos de teste estávamos em cerca de 218.000 de uns 972.000 blocos — os primeiros são minúsculos, então não extrapole. O trabalho de verdade vem depois.
Primeiro acesso: faça agora
Abra https://pay.example.com assim que ele responder. O BTCPay leva você a uma página de cadastro, e a primeira conta vira administradora do servidor. Se outra pessoa achar a página antes, o seu servidor de pagamentos é dela. Cadastre-se, depois vá em Server Settings → Policies e deixe os novos cadastros do jeito que você quer.
Em seguida crie uma loja e conecte sua carteira pela chave pública estendida (xpub) — de uma carteira de hardware ou da exportação da sua carteira de desktop. O BTCPay deriva um endereço novo para cada fatura e nunca vê uma chave privada. Use para isso uma carteira nova ou uma conta nova, e não uma com anos de histórico: um nó podado se dá melhor acompanhando o que acontece daqui para a frente.
Até o nó alcançar a rede, o BTCPay mostra que ainda está sincronizando e não acompanha pagamentos. Planeje o lançamento para depois da sincronização, não para a noite em que você instalar.
O que saber antes de abrir
- A primeira sincronização é longa. Um nó podado ainda baixa e verifica a cadeia inteira — mais de 700 GB — antes de poder descartar blocos antigos. O tráfego nos nossos planos é ilimitado a 1 Gbit/s, então não custa nada a mais, mas num servidor de 4 vCPU pense em dias. Há um script de sincronização rápida no repositório; ele pula esse trabalho confiando na cópia do conjunto UTXO de outra pessoa, o que tira parte do motivo de rodar seu próprio nó.
- Atualizações. O
btcpay-update.shtraz a versão mais recente do BTCPay e das dependências. Rode numa hora tranquila, não no meio de uma promoção. - O que fazer backup. Com uma carteira só por xpub, suas moedas não estão no servidor. O que você perderia é a configuração da loja e o histórico de faturas no Postgres — faça backup desse volume e guarde a seed da sua carteira num lugar que não tenha nada a ver com este servidor.
- Lightning depois. Comece on-chain. Lightning significa uma janela de blocos maior, gestão de canais e liquidez de entrada — um projeto à parte, e um plano Pro que configuramos sob consulta.
Minha opinião: para uma loja pequena que recebe bitcoin uma vez por dia, BTCPay no Small-IP é a configuração mais limpa que existe. Se você precisa de pagamento com cartão ou saques em moeda fiduciária, esta não é a ferramenta.
Relacionados
- Seu próprio nó Bitcoin num VPS: o nó sozinho, se você só quer verificar sua carteira
- Seu próprio nó Monero num VPS
- Crypto VPS: pagar servidores com cripto
- VPS para um site com IP próprio: a loja que manda os clientes para o BTCPay
- Como configurar um firewall ufw
Comentários
Nenhum comentário ainda. Seja o primeiro.