Cada procesador de pagos que se pone en medio trae sus propias condiciones, su propio KYC y su propio botón para congelar tu saldo. BTCPay Server quita el medio. Las facturas se crean en tu servidor, el cliente paga a una dirección derivada de tu monedero y tu propio nodo Bitcoin confirma el pago. Nadie salvo tú puede apagarlo.
Es para tiendas, freelancers y servicios que ya aceptan bitcoin —o quieren hacerlo— y prefieren no dejar ese trabajo en manos de una empresa.
Qué plan
BTCPay funciona como unos siete contenedores: la app de BTCPay, NBXplorer (que vigila la cadena), Bitcoin Core, Postgres y un nginx delante con Let's Encrypt automático. En nuestro servidor de prueba usaron unos 0,7 GB de RAM al arrancar, y Bitcoin Core toma más mientras sincroniza; 4 GB dan de sobra. La limitación real es el disco, no la memoria.
| Configuración | Plan |
|---|---|
| BTC on-chain, nodo podado con ~5 GB de bloques | Small-IP: 4 vCPU, 4 GB, 35 GB ($16/mes) |
| Lo mismo, con más margen para logs y actualizaciones | Medium-IP: 6 vCPU, 6 GB, 45 GB ($20/mes) |
| Lightning, una ventana de bloques mayor o una segunda moneda | Pro-32: 8 vCPU, 32 GB, 400 GB ($40/mes), bajo solicitud |
Necesitas un plan con su propia IPv4: los clientes llegan a BTCPay por HTTPS y Let's Encrypt tiene que alcanzar el puerto 80. Elige Alemania o Finlandia, la que esté disponible al hacer el pedido; para una página de pago, la latencia apenas importa. Y como de lo que se trata es de cobrar en cripto, tiene sentido que el propio servidor se pague en cripto, sin KYC.
Instalación
Apunta pay.example.com al servidor y luego, como root en un Ubuntu 24.04 o Debian 12 recién instalado:
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 es lo que hace que quepa: Bitcoin Core poda hasta dejar 5 GB de bloques. El script descarga las imágenes, crea un servicio systemd btcpayserver y lo arranca todo. Por el camino también reinicia el demonio de Docker, otra razón para darle a BTCPay un servidor propio en vez de meterlo junto a otros contenedores.
Comprueba el nodo:
bitcoin-cli.sh getblockchaininfo
Compara blocks con headers y fíjate en "pruned": true. A los veinte minutos de nuestra prueba iba por unos 218 000 de aproximadamente 972 000 bloques; los primeros son diminutos, así que no extrapoles. El trabajo de verdad llega después.
Primer acceso: hazlo ya
Abre https://pay.example.com en cuanto responda. BTCPay te lleva a una página de registro, y la primera cuenta se convierte en administradora del servidor. Si alguien encuentra la página antes que tú, tu servidor de pagos es suyo. Regístrate, luego entra en Server Settings → Policies y deja los registros nuevos como quieras.
Después crea una tienda y conecta tu monedero con su clave pública extendida (xpub), desde un monedero de hardware o la exportación de tu monedero de escritorio. BTCPay deriva una dirección nueva para cada factura y nunca ve una clave privada. Usa para esto un monedero nuevo o una cuenta nueva en lugar de uno con años de historial: a un nodo podado le va mejor seguir lo que pasa de ahora en adelante.
Hasta que el nodo se ponga al día, BTCPay muestra que sigue sincronizando y no vigila pagos. Planea el lanzamiento para después de la sincronización, no para la noche en que lo instalas.
Lo que debes saber antes de abrir
- La primera sincronización es larga. Un nodo podado igualmente descarga y verifica toda la cadena —más de 700 GB— antes de poder tirar bloques viejos. En nuestros planes el tráfico es ilimitado a 1 Gbit/s, así que no cuesta nada extra, pero en un servidor de 4 vCPU piensa en días. En el repositorio hay un script de sincronización rápida; se salta ese trabajo confiando en la copia del conjunto UTXO de otra persona, lo que anula parte del motivo para tener tu propio nodo.
- Actualizaciones.
btcpay-update.shtrae la última versión de BTCPay y sus dependencias. Ejecútalo en una hora tranquila, no en mitad de una campaña de ventas. - Qué respaldar. Con un monedero solo por xpub, tus monedas no están en el servidor. Lo que perderías es la configuración de la tienda y el historial de facturas en Postgres: haz copia de ese volumen y guarda la semilla de tu monedero en un sitio que no tenga nada que ver con este servidor.
- Lightning, más adelante. Empieza on-chain. Lightning supone una ventana de bloques mayor, gestión de canales y liquidez entrante: un proyecto en sí mismo y un plan Pro que configuramos bajo solicitud.
Mi opinión: para una tienda pequeña que cobra en bitcoin una vez al día, BTCPay en Small-IP es la configuración más limpia que existe. Si necesitas pagos con tarjeta o retiros en moneda fiduciaria, esta no es la herramienta.
Relacionado
- Tu propio nodo Bitcoin en un VPS: el nodo por sí solo, si solo quieres verificar tu monedero
- Tu propio nodo Monero en un VPS
- Crypto VPS: pagar servidores con cripto
- VPS para un sitio web con IP propia: la tienda que envía a los clientes a BTCPay
- Cómo configurar un cortafuegos ufw
Comentarios
Aún no hay comentarios. Sé el primero.