−25%

op Windows bij jaarbetaling, tot 31/10. Naar de pakketten

EQVPS
Aan de slag

VPS voor BTCPay Server: crypto op je eigen server

BTCPay Server met een eigen geprunede Bitcoin-node: betalingen direct naar je wallet, geen tussenpartij. Geteste installatie en de schijfrekensom voor 35 GB.

Elke betaalverwerker in het midden komt met eigen voorwaarden, een eigen KYC en een eigen knop die je saldo bevriest. BTCPay Server haalt het midden weg. Facturen ontstaan op je server, de klant betaalt naar een adres dat uit je wallet is afgeleid, en je eigen Bitcoin-node bevestigt de betaling. Niemand behalve jij kan het uitzetten.

Het is voor winkels, freelancers en diensten die al bitcoin aannemen — of dat willen — en dat werk liever niet aan een bedrijf overlaten.

Welk plan

BTCPay draait als ongeveer zeven containers: de BTCPay-app, NBXplorer (die de chain volgt), Bitcoin Core, Postgres en een nginx ervoor met automatische Let's Encrypt. Op onze testserver gebruikten ze bij de start ongeveer 0,7 GB RAM, en Bitcoin Core neemt meer tijdens het synchroniseren; 4 GB is ruim voldoende. De echte beperking is schijfruimte, niet geheugen.

OpzetPlan
On-chain BTC, geprunede node met ~5 GB aan blokkenSmall-IP: 4 vCPU, 4 GB, 35 GB ($16/mnd)
Hetzelfde, met meer ruimte voor logs en updatesMedium-IP: 6 vCPU, 6 GB, 45 GB ($20/mnd)
Lightning, een groter blokvenster of een tweede muntPro-32: 8 vCPU, 32 GB, 400 GB ($40/mnd), op aanvraag

Je hebt een plan met een eigen IPv4 nodig: klanten bereiken BTCPay via HTTPS en Let's Encrypt moet poort 80 kunnen bereiken. Kies Duitsland of Finland, wat er bij het bestellen beschikbaar is; voor een betaalpagina doet latency er nauwelijks toe. En omdat het hele punt is dat je crypto aanneemt, past het dat de server zelf ook in crypto wordt betaald, zonder KYC.

Installatie

Laat pay.example.com naar de server wijzen en dan, als root op een verse Ubuntu 24.04 of Debian 12:

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 is wat het laat passen: Bitcoin Core prunet tot 5 GB aan blokken. Het script haalt de images op, maakt een systemd-service btcpayserver aan en start alles. Onderweg herstart het ook de Docker-daemon — nog een reden om BTCPay een eigen server te geven in plaats van het naast andere containers te proppen.

Controleer de node:

bitcoin-cli.sh getblockchaininfo

Vergelijk blocks met headers en kijk naar "pruned": true. Na twintig minuten test zaten we op ongeveer 218.000 van de circa 972.000 blokken — de vroege blokken zijn piepklein, dus extrapoleer niet. Het echte werk komt later.

Eerste login: doe het nu

Open https://pay.example.com zodra het antwoordt. BTCPay stuurt je naar een registratiepagina, en het eerste account wordt serverbeheerder. Vindt iemand anders de pagina eerder dan jij, dan is jouw betaalserver van die persoon. Registreer je, kijk dan onder Server Settings → Policies en stel nieuwe aanmeldingen in zoals jij ze wilt.

Maak daarna een winkel aan en koppel je wallet via de extended public key (xpub) — uit een hardwarewallet of de export van je desktopwallet. BTCPay leidt voor elke factuur een nieuw adres af en ziet nooit een privésleutel. Gebruik hiervoor een nieuwe wallet of een nieuw account in plaats van een wallet met jaren geschiedenis: een geprunede node volgt het liefst wat er vanaf nu gebeurt.

Tot de node bij is, laat BTCPay zien dat het nog synchroniseert en volgt het geen betalingen. Plan de lancering voor na de synchronisatie, niet voor de avond waarop je installeert.

Wat je moet weten voordat je live gaat

  • De eerste synchronisatie duurt lang. Een geprunede node downloadt en controleert toch de hele chain — meer dan 700 GB — voordat hij oude blokken kan weggooien. Verkeer is op onze plannen onbeperkt op 1 Gbit/s, dus het kost niets extra, maar op een server met 4 vCPU reken je in dagen. In de repository staat een fast-sync-script; dat slaat dit werk over door te vertrouwen op andermans kopie van de UTXO-set, wat een deel van de reden om een eigen node te draaien onderuithaalt.
  • Updates. btcpay-update.sh haalt de nieuwste BTCPay en afhankelijkheden op. Draai het op een rustig uur, niet midden in een uitverkoop.
  • Wat je back-upt. Met een wallet die alleen via xpub gekoppeld is, staan je munten niet op de server. Wat je kwijt zou raken is de winkelinrichting en de factuurgeschiedenis in Postgres — back-up dat volume en bewaar de seed van je wallet op een plek die niets met deze server te maken heeft.
  • Lightning later. Begin on-chain. Lightning betekent een groter blokvenster, kanaalbeheer en inkomende liquiditeit — een project op zich en een Pro-plan, dat we op aanvraag inrichten.

Mijn oordeel: voor een kleine winkel die één keer per dag bitcoin ontvangt, is BTCPay op Small-IP de schoonste opzet die er is. Heb je kaartbetalingen of uitbetalingen in fiat nodig, dan is dit niet het juiste gereedschap.

Gerelateerd

Klaar om te implementeren? Betaal met crypto, geen KYC — live in ongeveer een minuut.

Nu implementeren →

FAQ

Hoeveel schijfruimte heeft BTCPay Server nodig?

Met het profiel opt-save-storage-xxs bewaart de Bitcoin-node maar ongeveer 5 GB aan blokken. Daar komen de chainstate bij (de UTXO-set, zo'n dozijn GB en groeiend), ongeveer 2,5 GB aan Docker-images en het besturingssysteem. Dat past in de 35 GB van Small-IP. Het volgende profiel, opt-save-storage-xs, houdt alleen al 25 GB aan blokken en vraagt een Pro-plan, beschikbaar op aanvraag.

Hoe lang duurt de eerste synchronisatie?

Dagen, geen uren. Ook een geprunede node downloadt en controleert de hele Bitcoin-blockchain — meer dan 700 GB verkeer — en gooit pas daarna oude blokken weg. Verkeer is onbeperkt op onze plannen, dus de download kost niets extra, maar BTCPay ziet geen betalingen tot de node bij is.

Bewaart BTCPay mijn munten?

Niet als je een wallet koppelt via de extended public key (xpub). De server kan dan adressen maken en betalingen volgen, maar heeft geen privésleutels en kan niets uitgeven. Raak je de server kwijt, dan verlies je de winkelinstellingen, niet het geld.

Heb ik een eigen IP-adres nodig?

Ja. Je winkel en de browsers van je klanten moeten BTCPay op poort 443 bereiken, en Let's Encrypt heeft poort 80 nodig om het certificaat uit te geven. Een NAT-plan accepteert van buitenaf alleen je SSH-poort.

Kan het ook Lightning of Monero aannemen?

Beide bestaan als optie, maar geen van beide past op de kleine plannen. Een Lightning-node wil een groter blokvenster en meer zorg dan on-chainbetalingen; een Monero-node heeft veel meer schijf nodig dan een geprunede Bitcoin-node. Begin met on-chain bitcoin op Small-IP; vraag ons voor allebei naar een Pro-plan.

Reacties

Nog geen reacties. Wees de eerste.

Laat een reactie achter

Reacties worden gemodereerd voordat ze verschijnen.