Todo processador de pagamento em cripto hospedado por terceiros pede as mesmas duas coisas antes de mover um satoshi para você: quem você é, e permissão para segurar o dinheiro em trânsito. As duas são decisões que outra pessoa tomou sobre o seu negócio. O BTCPay Server faz o mesmo trabalho — faturas, taxas de câmbio, uma página de checkout, webhooks, um ponto de venda — como um software que você roda, sem conta, sem porcentagem, e sem ninguém entre a carteira do cliente e a sua.
A troca é que você vira o operador. Este guia é sobre o que isso custa de verdade: qual parte da stack consome os recursos (não é o BTCPay), que plano a coisa realmente precisa, como fazer o deploy em cerca de uma hora de atenção e um dia de espera, e — a parte que decide se tudo isso valeu a pena — onde as chaves vivem depois que está rodando. Bitcoin e Lightning são o padrão; Monero é uma integração opcional e, por acaso, a que tem a história de chaves mais limpa das três. A máquina por baixo pode ser alugada com um endereço de e-mail e paga nas mesmas moedas que você está prestes a começar a aceitar.
O que um processador auto-hospedado realmente muda
O discurso de venda geralmente é “sem taxas”, que é a parte menos interessante disso. Quatro coisas mudam, e só uma delas é sobre dinheiro:
- Ninguém segura os seus fundos em trânsito. Um processador hospedado por terceiros recebe o pagamento do cliente na própria carteira dele e só depois credita para você. É nessa brecha que acontecem retenções, revisões e bloqueios. O BTCPay nunca recebe nada: o cliente paga um endereço derivado da sua chave, e as moedas são suas desde a primeira confirmação.
- Ninguém pergunta quem você é. Entrar em um processador é um processo de identidade que termina em um banco. Instalar um software não é. Essa é a diferença inteira, e é por isso que a resposta para “como eu recebo cripto sem KYC” é sempre “rode o processador você mesmo”.
- O custo para de escalar com você. Uma porcentagem é cobrada para sempre e cresce com o sucesso. Um VPS e um domínio custam o mesmo em um mês bom e em um mês ruim.
- Você herda o trabalho operacional. Uptime, atualizações, backups, e ser a pessoa que recebe a mensagem quando um cliente diz que a fatura nunca foi confirmada. Esse é o preço de verdade, e ele é pago em atenção, não em dinheiro.
O que você não ganha é a única coisa em que os processadores são genuinamente bons: transformar moedas em dinheiro de conta bancária em seu nome. O BTCPay guarda o que foi pago, na moeda em que foi pago. Conversão, faturamento em moeda fiduciária, exportações contábeis que uma autoridade fiscal reconheça — problemas totalmente separados, e a maioria das formas de resolvê-los reintroduz exatamente a contraparte identificada que você acabou de remover. Descubra qual metade dessa troca você realmente queria antes de construir qualquer coisa.
O que o deploy realmente coloca no ar, e qual parte sai cara
O nome engana de um jeito útil. “BTCPay Server” não é um programa só; o deploy padrão é uma pequena frota de contêineres que sobem juntos, e saber qual é qual faz a diferença entre dimensionar isso direito e simplesmente chutar:
- Bitcoin Core. Um nó completo de verdade, validando desde o genesis. Este é o componente que consome seu disco, a maior parte do primeiro dia, e quase toda a memória. Todo o resto é, em comparação, de graça.
- NBXplorer. O indexador entre o Core e o BTCPay. Você entrega a ele chaves públicas estendidas; ele rastreia os endereços derivados e avisa o BTCPay quando o dinheiro chega. É também a peça que se importa com a poda, por motivos que a seção de modos de falha retoma.
- O BTCPay Server em si. A aplicação: lojas, faturas, a página de checkout, o ponto de venda, webhooks, a Greenfield API. Modesto em comparação — algumas centenas de megabytes de memória.
- PostgreSQL. Faturas, lojas, configurações, usuários, chaves de API. Pequeno, e é para isso que os seus backups realmente servem.
- nginx com certificados automáticos. Um proxy reverso mais um companheiro que emite e renova um certificado para o seu hostname. É por isso que as portas 80 e 443 precisam estar genuinamente alcançáveis pela internet.
- Opcionalmente um nó Lightning (Core Lightning ou LND) e um daemon Monero com um RPC de carteira ao lado — cada um trazendo sua própria chain e seu próprio apetite por disco.
Então a pergunta de dimensionamento nunca é “quão grande o BTCPay precisa ser”. É “quanta chain eu estou guardando, e quantas chains”. Responda isso e o plano se escolhe sozinho.
Dimensionando com honestidade, e qual plano cabe
O projeto documenta 2 GB de RAM com swap como mínimo e 4 GB como recomendação, e a diferença entre esses dois números é a diferença entre uma instalação que tecnicamente termina e uma que você está disposto a indicar para clientes. Um runtime de aplicação, o PostgreSQL e um bitcoind sincronizando, dividindo 2 GB, vão terminar — devagar, com o arquivo de swap fazendo um trabalho que não deveria precisar fazer.
O disco é definido por quão forte você poda, e o deploy expõe isso como um fragmento que você passa para o instalador. A família roda aproximadamente o opt-save-storage em cerca de 100 GB de arquivos de blocos, o -s em cerca de 50 GB, o -xs em cerca de 25 GB e o -xxs em cerca de 5 GB. Esse último é uma armadilha para qualquer coisa que precise sobreviver: ele mantém tão pouco histórico que a manutenção comum começa a falhar. Para uma loja, -s ou -xs é a faixa sensata.
Números concretos da grade, porque “depende” não é uma resposta:
- Só Bitcoin, podado, uma loja — Scout, 2 vCPU / 4 GB / 70 GB NVMe, $9.00/mo. O piso honesto, e a resposta certa para a maioria dos leitores.
- Bitcoin e Lightning — Runner, 3 vCPU / 6 GB / 100 GB, $14.00/mo. Um daemon Lightning é leve em disco e insistente em ficar online; a folga é para o nó por baixo dele.
- Bitcoin, Lightning e Monero — Alpha, 6 vCPU / 12 GB / 200 GB, $28.00/mo. Uma chain Monero podada tem sozinha cerca de 85 GB, então duas chains e dois indexadores é onde 8 GB fica apertado. Hunter (4 vCPU / 8 GB / 140 GB, $19.00/mo) cabe só se o Bitcoin ficar podado com força e continuar assim.
- Um nó não podado por trás da loja — um projeto diferente, com uma conta diferente. O guia de nó completo tem esses números, e eles começam no Fenrir.
A CPU importa exatamente uma vez. A verificação de assinaturas durante o download inicial de blocos é paralelizável, então de duas a quatro vCPU transformam a primeira sincronização de dias em cerca de um dia, e depois voltam a ficar ociosas. A banda é um custo único da chain inteira, em uma porta de 1 Gbps com tráfego ilimitado e sem fatura por excedente no fim do mês. Latência é irrelevante para um processador de pagamentos, então escolha o local pela jurisdição, não pelos milissegundos — Amsterdã, Paris, Bucareste e Sófia ficam todas no preço base.
O que você precisa antes de começar
Uma lista curta, e um item dela não é técnico.
- Um domínio, com um registro A já apontando para o servidor. O certificado é emitido via HTTP contra esse hostname, então o DNS precisa resolver antes de o instalador rodar, não durante. Um subdomínio como
pay.example.comé o formato normal. - Portas 80 e 443 abertas para o mundo. A porta 80 não é opcional, mesmo que nada de útil sirva nela depois; o desafio do certificado precisa dela.
- Debian 13 da biblioteca de templates, em uma máquina que já passou pelos dez minutos de hardening. Faça isso primeiro — é bem mais difícil fazer com educação depois que uma stack já está rodando.
- Uma carteira que você já controla, e sua chave pública estendida. Sparrow, Electrum ou uma carteira de hardware. Tenha-a em mãos antes de instalar, para nunca ficar tentado a deixar o servidor gerar uma para você.
- Um endereço de e-mail para a autoridade certificadora. Ele só recebe avisos de expiração, e nada mais.
- Uma decisão sobre poda, tomada agora. Mudar de ideia depois significa ressincronizar a chain do zero, um dia que você não vai gostar de gastar duas vezes.
Passo a passo
- Faça o deploy do servidor, aponte o domínio para ele, e proteja-o primeiro
Peça o plano que a seção de dimensionamento indicou, escolha Debian 13, e escolha o local pela jurisdição, não pela latência. Crie o registro DNS imediatamente, porque ele precisa ter propagado até o momento em que o instalador pedir para uma autoridade certificadora provar que você é dono do nome:
pay.example.com. 300 IN A 198.51.100.10Depois o passo do guia de proteção do Debian: um usuário não-root com uma chave, autenticação por senha desligada, atualizações de segurança automáticas ligadas, e um firewall com negação por padrão. Tudo abaixo presume que isso já aconteceu, e que 22, 80 e 443 são as únicas portas abertas.
apt update && apt full-upgrade -y apt install -y git curlNão instale o Docker manualmente. O script de configuração instala e configura a versão que ele espera, e uma instalação feita na mão é o motivo mais comum de uma primeira execução falhar.
- Clone o repositório do deploy e escolha seus fragmentos
O deploy inteiro é um repositório só de shell scripts e fragmentos de compose. Clone-o como root, em algum lugar que você vá lembrar:
git clone https://github.com/btcpayserver/btcpayserver-docker cd btcpayserver-dockerConfiguração são variáveis de ambiente, lidas uma vez pelo instalador e depois persistidas, então os exports abaixo são o único arquivo de configuração que você vai escrever:
export BTCPAY_HOST="pay.example.com" export NBITCOIN_NETWORK="mainnet" export BTCPAYGEN_CRYPTO1="btc" export BTCPAYGEN_REVERSEPROXY="nginx" export BTCPAYGEN_LIGHTNING="clightning" export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s" export LETSENCRYPT_EMAIL="you@example.com"BTCPAYGEN_LIGHTNINGaceitaclightning,lnd,phoenixdou nada — deixe vazio se você não estiver pronto para guardar fundos quentes, já que adicionar depois é só mais uma execução do mesmo script. Os nomes dos fragmentos são a parte disso que muda entre versões, então leia a página de deploy atual do projeto antes de colar. - Rode o instalador, e deixe a chain sincronizar
Um único comando monta o arquivo de compose, baixa as imagens e sobe tudo:
. ./btcpay-setup.sh -iEle termina em poucos minutos e deixa uma interface web funcionando. Ele não deixa uma loja funcionando, porque o Bitcoin Core está agora baixando e validando a chain, e nada pode ser pago até que isso termine. Acompanhe em vez de chutar:
bitcoin-cli.sh -getinfo btcpay-down.sh # stop everything btcpay-up.sh # start everythingO número em que confiar é o
verificationprogress, e ele engana no começo: os primeiros noventa por cento são rápidos e os últimos dez levam a maior parte do tempo, porque os blocos recentes são cheios. Em NVMe com duas a quatro vCPU, espere cerca de um dia. Deixe rodando sem mexer — reiniciar no meio da sincronização só custa o cache. - Crie a conta de administrador e feche a porta atrás de você
Abra
https://pay.example.come registre-se. A primeira conta criada vira a administradora, o que faz da janela entre o instalador terminar e você se registrar o único momento genuinamente perigoso de todo esse processo. Faça isso imediatamente, a partir de uma aba do navegador que você já tenha aberta.Depois, nas configurações do servidor, desligue o registro aberto para que o segundo visitante não consiga criar uma conta, e ative a autenticação de dois fatores na sua própria conta. Os dois são dois cliques, e juntos são a diferença entre um processador de pagamentos e o processador de pagamentos de outra pessoa. Convide qualquer administrador adicional explicitamente.
- Conecte uma carteira da qual o servidor não consegue gastar
Crie uma loja, e depois anexe uma carteira Bitcoin. O BTCPay se oferece para gerar uma nova para você; siga pelo outro caminho — conectar uma carteira existente — e cole a chave estendida pública, em nível de conta, exportada da sua própria carteira:
zpub6r... # account-level extended PUBLIC key (xpub / ypub / zpub), never a prv # Sparrow: wallet settings. Electrum: Wallet -> Information -> Master Public KeyEssa string é pública por design. Ela deixa o BTCPay derivar um suprimento ilimitado de endereços de recebimento e reconhecer pagamentos para eles; ela não deixa o BTCPay, nem quem quer que o comprometa, mover um satoshi sequer. A chave privada continua onde estava, idealmente em uma carteira de hardware que nunca teve contato com essa máquina.
Duas consequências que vale a pena internalizar. Use uma conta nova ou um caminho de derivação dedicado para a loja, em vez da chave de uma carteira que você usa há anos — a seção de modos de falha explica por que histórico e poda não combinam. E lembre-se de que quem quer que segure essa chave estendida consegue ver todo pagamento que você já recebeu: não é uma chave, mas também não é nada. Trate-a como um livro-razão deixado aberto em uma mesa.
- Adicione o Lightning, e decida quanto do seu dinheiro mora lá
Se você definir
BTCPAYGEN_LIGHTNINGno momento da instalação, o nó já fica rodando e conectado internamente, e as configurações da loja só precisam ligá-lo. Se você deixou vazio, exporte a variável e rode o script de configuração de novo; ele é idempotente e não vai ressincronizar a chain.export BTCPAYGEN_LIGHTNING="clightning" . ./btcpay-setup.sh -iAgora a parte que é uma decisão, não uma configuração. Os saldos de canal ficam guardados em uma carteira da qual o servidor pode gastar, porque é isso que um canal de pagamento é; não existe Lightning somente observação. Comprometer essa máquina custa exatamente o saldo do canal e mais nada, e é por isso que o valor certo para manter ali é o valor que incomodaria perder, não que arruinaria. Varra para armazenamento frio em uma programação que você realmente vá manter.
Espere que o primeiro mês seja sobre liquidez, não sobre pagamentos. Um nó de comerciante precisa de capacidade de entrada, que é o oposto do que abrir um canal te dá — abrir um canal financia o seu próprio lado. Comprar liquidez de entrada de um serviço, rodar um submarine swap para empurrar seus fundos para o outro lado, ou esperar que peers abram canais na sua direção depois que você tiver volume são as três opções honestas. Core Lightning e LND funcionam, os dois; o Core Lightning é o mais fácil de entender ao lado de um nó podado, por motivos que o guia de nó completo cobre.
- Adicione o Monero com uma carteira somente visualização
O Monero se conecta do mesmo jeito, como um segundo slot de cripto, o que sobe um daemon Monero e um RPC de carteira junto com todo o resto:
export BTCPAYGEN_CRYPTO2="xmr" . ./btcpay-setup.sh -iReserve espaço para uma segunda chain: cerca de 85 GB podada, e uma primeira sincronização medida em um dia ou dois em NVMe. O guia de nó Monero tem o detalhe dos dois.
O tratamento das chaves aqui é a melhor parte de toda a configuração. O Monero separa a capacidade de ver pagamentos recebidos da capacidade de gastá-los, então você gera uma carteira somente visualização a partir do seu endereço primário e da chave privada de visualização, e isso é tudo que o servidor jamais guarda:
monero-wallet-cli --generate-from-view-key store-viewEle pede o endereço padrão, a chave privada de visualização e uma senha. Copie os arquivos de carteira resultantes para o diretório de carteiras Monero que o deploy expõe, aponte a loja para lá, e o BTCPay gera um subendereço por fatura e fica de olho nos pagamentos para ele. A chave de gasto nunca sai da máquina em que você a gerou.
Uma coisa para planejar em torno do checkout: os outputs recebidos ficam travados por dez blocos, cerca de vinte minutos, então o BTCPay vê o pagamento chegar bem antes de ele poder ser gasto. Para produtos digitais, isso é uma escolha de política. Para qualquer coisa entregue pessoalmente, é uma fila.
- Teste como um cliente, depois como um operador
“A página carrega” não é um teste. Crie uma fatura de um valor trivial, pague-a a partir de uma carteira de verdade, e depois passe pelas configurações que decidem o que acontece quando um pagamento não é perfeito:
- Política de confirmação. Quantos blocos antes de uma fatura contar como confirmada. Zero confirmações é razoável para um café e errado para um notebook; é uma configuração por loja, e o número mais consequente da interface.
- Expiração da fatura. Quanto tempo um cliente tem antes de a cotação parar de valer. Quinze minutos é o padrão, e é pouco para quem está pagando a partir de um saque de exchange.
- Tolerância de pagamento. A porcentagem de subpagamento que você vai aceitar em vez de deixar um cliente com uma fatura meio paga e um chamado de suporte. Pequena e diferente de zero é a configuração pragmática.
- Subpagamento e sobrepagamento. Pague uma fatura a menos de propósito, uma vez, e veja o que a sua loja faz a respeito. É bem melhor aprender isso com o seu próprio dinheiro.
Depois, a metade do operador: ative um webhook e confirme que a sua loja realmente o recebe, gere uma chave da Greenfield API se algo for criar faturas de forma programática, e faça um backup completo antes de entrar no ar — para que o primeiro restore que você já fizer seja um ensaio, e não uma emergência.
Onde as chaves vivem, e o único erro que importa
Quase todo resultado ruim com um processador auto-hospedado remonta a uma única decisão tomada cedo e sem cuidado: deixar o servidor guardar algo capaz de gastar. Vale a pena ser explícito sobre os três casos, porque eles são genuinamente diferentes.
- Bitcoin on-chain: somente observação, sempre. O BTCPay guarda uma chave pública estendida e mais nada. Se a máquina for comprometida, o invasor descobre o que você recebeu e pode mudar para onde as futuras faturas apontam — um ataque real, e o motivo para reconferir a carteira da sua loja depois de qualquer incidente — mas não consegue tocar em uma moeda já recebida.
- Lightning: quente por definição. Os canais são financiados com moedas que o servidor pode gastar, porque é isso que um canal é. Esta é a exceção deliberada, e a seção acima dimensiona ela.
- Monero: somente visualização, estruturalmente. A chave privada de visualização revela todo pagamento que chega e não autoriza nenhum deles. Não existe equivalente do lado do Bitcoin.
A única funcionalidade que quebra esse modelo de propósito é o Payjoin. Ele deixa seu servidor contribuir com uma entrada na transação do cliente, o que degrada de forma significativa a heurística de entrada comum em que a análise de chain se apoia, e é um ganho real de privacidade para as duas partes — mas quem recebe precisa conseguir assinar, então isso exige uma carteira quente dentro do BTCPay. Essa é uma troca real, não uma funcionalidade de graça. Assuma isso conscientemente, e financie-a do mesmo jeito que você financia a carteira do Lightning: com um valor, não com tudo.
E se você deixar o assistente de configuração gerar a carteira da loja porque era o caminho mais rápido: anote a seed que ele mostrou, verifique-a em uma carteira offline, e depois planeje a migração para uma configuração somente observação. Uma seed que já esteve em um servidor exposto à internet é uma seed com uma contagem regressiva correndo.
Backups, e as partes que são genuinamente insubstituíveis
Organize o estado pelo que seria preciso para recriá-lo, porque as respostas são bem diferentes:
- A chain. Não é um problema de backup. É um dado público e ela ressincroniza, devagar e de graça. Nunca faça backup dela.
- O banco de dados. Faturas, lojas, configurações, usuários, chaves de API. Este é o backup de verdade, é pequeno, e perdê-lo custa o registro contábil de cada venda — não o dinheiro, mas o papelório.
- Sua carteira on-chain. Já está segura, porque a chave nunca esteve aqui. Essa é a recompensa do passo cinco.
- O estado dos canais Lightning. O que morde. Um backup estático de canal deixa você recuperar os fundos dos seus canais depois de uma perda total, forçando o fechamento deles; ele não restaura os canais, e não vale nada se estiver desatualizado. Ele muda toda vez que um canal abre ou fecha, então pertence a uma cópia automatizada fora do local, não a uma pasta que você lembra trimestralmente.
- A carteira Monero somente visualização. Reconstruível a partir do endereço e da chave de visualização que você ainda guarda offline. Faça backup delas e trate os arquivos da carteira como um cache.
O deploy vem com ferramentas auxiliares que fazem isso corretamente:
btcpay-backup.sh # stops the stack, dumps Postgres, tars the config, restarts
btcpay-restore.sh # puts one of those archives backEssa pausa é o ponto principal — uma cópia quente de um banco de dados rodando pode restaurar para algo problemático. Criptografe tudo o que sai da máquina, e lembre-se de que o snapshot semanal incluído em todo plano é uma conveniência, não um backup: um snapshot mora junto com a coisa que ele protege.
Modos de falha que os guias rápidos pulam
Em ordem aproximada de quantas vezes já custaram uma noite de alguém:
- O certificado nunca é emitido. Nove em cada dez vezes o registro A foi criado depois que o instalador rodou, ou a porta 80 está filtrada. Corrija o DNS, confirme que o nome resolve a partir de algum lugar que não seja o seu próprio laptop, e então rode o script de configuração de novo. Tentar de novo às cegas contra a autoridade certificadora rende um rate limit e uma semana de espera, então mude alguma coisa entre as tentativas.
- Uma chave estendida importada com histórico não mostra saldo. Esta é a armadilha da poda. O indexador encontra pagamentos novos observando blocos novos, mas reconstruir o passado de uma carteira já existente significa ler blocos que um nó podado já apagou. Use uma conta nova para a loja e o problema simplesmente não existe; se você precisar importar histórico, vai precisar de um nó não podado e de um rescan.
- “O cliente pagou e a fatura continua aberta.” Geralmente é subpagamento pela taxa da carteira que enviou, uma fatura que expirou enquanto o pagamento ficava sem confirmação, ou uma política de confirmação mais rígida do que você lembra de ter escolhido. As três são configurações, e as três são o motivo de você testar primeiro com o seu próprio dinheiro.
- O nó fica para trás silenciosamente. Um bitcoind travado distribui endereços e perde pagamentos sem reclamar. Compare a sua altura de bloco com qualquer fonte pública em um cronômetro e alerte sobre a diferença; isso não é algo para você aprender através de um cliente.
- Uma atualização no momento errado. O
btcpay-update.shse comporta bem, mas reinicia tudo. Rode-o de forma deliberada, nunca automaticamente, e nunca durante uma venda. - O endereço ganha uma reputação. Uma página de checkout em um IPv4 na blocklist é uma página de checkout que algumas redes corporativas e filtros de e-mail recusam silenciosamente. Todo plano aqui vem com um endereço dedicado sem histórico, e vale a pena verificar isso antes de imprimir o domínio em qualquer lugar.
Jurisdição, o domínio, e o que hospedar por conta própria não esconde
O software remove uma contraparte. Ele não remove o resto da superfície, e ser honesto sobre isso é mais útil do que mais uma lista de funcionalidades.
O domínio é o ponto fraco. Ele é registrado em algum lugar, resolve publicamente, e é a primeira coisa que qualquer um olha. Um processador auto-hospedado em um hostname registrado no seu próprio nome, em um registrador no seu próprio país, tirou o dinheiro das mãos de terceiros e deixou a identidade exatamente onde estava. Se isso importa para o que você vende, o registrador merece pelo menos tanta atenção quanto o host.
A jurisdição é uma variável real. Onde a máquina fica decide de quem é a ordem judicial que a alcança e quanto processo fica no caminho. Isso é atrito e distância, não imunidade — um ponto que o verbete de hospedagem offshore explica em detalhes, e vale a pena ler antes de escolher uma bandeira em vez de uma rede.
A conta é o último elo. Alugar o servidor com um endereço de e-mail e pagar em Monero significa que nenhum extrato de cartão liga a página de checkout a um banco — uma coisa estranha de esquecer enquanto você constrói um sistema cujo ponto inteiro é não precisar de um. Todo plano aqui é no-KYC por padrão, e todo local vem com um IPv4 limpo e dedicado com DNS reverso personalizado.
E o limite é declarado, não implícito. Nós, processadores e lojas são infraestrutura comum e são bem-vindos aqui; a política de uso aceitável é curta, pública, e tem um piso embaixo dela. Se você precisa de uma licença para receber pagamentos é uma pergunta sobre o que você vende e onde você está, não sobre o software — e é uma pergunta para alguém qualificado, não para um guia de hospedagem.
Perguntas frequentes
De qual plano de VPS eu preciso para o BTCPay Server?
O Scout (2 vCPU / 4 GB / 70 GB NVMe, $9.00/mo) rodando um nó Bitcoin podado é o piso honesto para uma loja funcionando, e é o que a maioria dos leitores deveria comprar. Adicione Lightning e o Runner (3 vCPU / 6 GB / 100 GB, $14.00/mo) fica mais confortável; adicione Monero como uma segunda chain e o Alpha (6 vCPU / 12 GB / 200 GB, $28.00/mo) é o tamanho que faz você parar de pensar nisso. O projeto documenta 2 GB como o mínimo dele, o que é verdade e não é agradável.
Posso rodar o BTCPay Server sem um nó Bitcoin completo?
Sim, mas você está escolhendo em qual confiança ficar. O BTCPay pode ser apontado para um nó externo que você já roda — a versão sensata disso, e um bom motivo para ter seguido o guia de nó completo antes — ou para o nó de outra pessoa, o que reintroduz um terceiro que vê todo endereço que a sua loja gera. O nó embutido existe porque é a única configuração em que ninguém está observando. Um nó podado continua sendo um nó completo: pode-o e a maior parte da objeção sobre recursos desaparece.
O BTCPay Server suporta Monero?
Sim, como uma integração opcional que você ativa no momento do deploy. Ela sobe um daemon Monero e um RPC de carteira, e você a conecta com uma carteira somente visualização gerada a partir do seu endereço primário e da chave privada de visualização — então o servidor consegue ver os pagamentos e não consegue gastá-los, o que é um arranjo melhor do que qualquer coisa disponível do lado do Bitcoin. Os custos são uma segunda chain para sincronizar e guardar, e o travamento de dez blocos nos outputs recebidos, cerca de vinte minutos antes de os fundos poderem ser gastos.
É legal rodar meu próprio processador de pagamentos?
Rodar o software é operação comum de software. A atividade regulada na maioria dos lugares é guardar ou movimentar dinheiro em nome de outras pessoas, e um processador sem custódia recebendo pagamento pelos seus próprios produtos especificamente não faz isso, porque nada é jamais guardado em nome de ninguém. O que você vende e onde você mora ainda determinam suas obrigações, impostos incluídos, e hospedar por conta própria não muda nenhuma delas. Este é um guia de hospedagem, não aconselhamento jurídico: se você pretende processar pagamentos para terceiros, assuma que está em uma categoria diferente e procure alguém qualificado.
Se o servidor morrer, eu perco o dinheiro?
O dinheiro on-chain, não — desde que você tenha seguido o passo cinco — essas moedas ficam em uma carteira cuja chave nunca esteve no servidor, e uma instalação nova, alimentada com a mesma chave pública estendida, volta a vê-las. O que você perde é o registro: faturas, configurações da loja, chaves de API, a menos que você tenha guardado o backup do banco de dados. O Lightning é a exceção, porque os fundos dos canais ficam no servidor; recuperá-los depois de uma perda total exige um backup estático de canal atualizado, e isso força o fechamento dos seus canais em vez de restaurá-los.
Eu preciso de um domínio para o BTCPay Server?
Na prática, sim. O deploy emite um certificado para um hostname, navegadores e carteiras esperam HTTPS em uma página de checkout, e os clientes estão sendo pedidos para mandar dinheiro para o que quer que esteja na barra de endereço. Um subdomínio de algo que você já possui é mais do que suficiente. Se um domínio público é o próprio problema, o BTCPay pode ser acessado por um serviço onion em vez disso — uma configuração legítima que também muda quantos clientes conseguem alcançar a página.
Quanto custa, de verdade, hospedar por conta própria por mês?
O software é gratuito e licenciado sob AGPL, então a conta é o VPS, o domínio e o seu tempo. A $9.00 por mês pelo Scout e alguns dólares por ano por um nome, a matemática contra qualquer processador baseado em porcentagem deixa de ser parecida a partir de um volume bem pequeno — e, ao contrário de uma porcentagem, isso não cresce quando você tem sucesso. O custo honesto é o terceiro item: agora você é a pessoa que percebe quando o nó para de sincronizar.

