−25%

en Windows con pago anual, hasta el 31/10. Ver planes

EQVPS
Empezar

VPS para BTCPay Server: cobra cripto en tu servidor

BTCPay Server con su propio nodo Bitcoin podado: los pagos van directos a tu monedero, sin intermediarios. Instalación probada y cuentas de disco para 35 GB.

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ónPlan
BTC on-chain, nodo podado con ~5 GB de bloquesSmall-IP: 4 vCPU, 4 GB, 35 GB ($16/mes)
Lo mismo, con más margen para logs y actualizacionesMedium-IP: 6 vCPU, 6 GB, 45 GB ($20/mes)
Lightning, una ventana de bloques mayor o una segunda monedaPro-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.sh trae 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

¿Listo para desplegar? Paga en cripto, sin KYC — en línea en aproximadamente un minuto.

Desplegar →

Preguntas frecuentes

¿Cuánto disco necesita BTCPay Server?

Con el perfil opt-save-storage-xxs, el nodo Bitcoin guarda solo unos 5 GB de bloques. Encima van el chainstate (el conjunto UTXO, una docena de GB y creciendo), unos 2,5 GB de imágenes Docker y el sistema. Todo eso cabe en los 35 GB de Small-IP. El siguiente perfil, opt-save-storage-xs, guarda por sí solo 25 GB de bloques y necesita un plan Pro, disponible bajo solicitud.

¿Cuánto tarda la primera sincronización?

Días, no horas. Incluso un nodo podado descarga y verifica toda la cadena de Bitcoin —más de 700 GB de tráfico— y solo después tira los bloques viejos. El tráfico es ilimitado en nuestros planes, así que la descarga no cuesta nada extra, pero BTCPay no verá pagos hasta que el nodo se ponga al día.

¿BTCPay guarda mis monedas?

No, si conectas un monedero por su clave pública extendida (xpub). El servidor puede entonces crear direcciones y vigilar pagos, pero no tiene claves privadas y no puede gastar nada. Perder el servidor significa perder la configuración de la tienda, no el dinero.

¿Necesito una IP dedicada?

Sí. Tu tienda y los navegadores de tus clientes tienen que llegar a BTCPay por el puerto 443, y Let's Encrypt necesita el puerto 80 para emitir el certificado. Un plan NAT solo acepta desde fuera tu puerto SSH.

¿Puede aceptar también Lightning o Monero?

Ambos existen como opción, pero ninguno cabe en los planes pequeños. Un nodo Lightning pide una ventana de bloques mayor y más cuidado que los pagos on-chain; un nodo Monero necesita mucho más disco que un nodo Bitcoin podado. Empieza con bitcoin on-chain en Small-IP; para cualquiera de los dos, pregúntanos por un plan Pro.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario

Los comentarios se moderan antes de aparecer.