Das NordBastion-Eisbär-Maskottchen steht hinter einer geschnitzten nordischen Steintheke eines Händlers, darüber ein schwebendes, cyanfarbenes holografisches Checkout-Panel, das einen QR-Code mit einem bernsteinfarbenen Bitcoin-Symbol und einem Blitz-Glyph zeigt, und ein einzelner ununterbrochener Bogen aus glühenden Münzen läuft vom Panel direkt in eine offene, runenverzierte Tresortür neben ihm, mit einem Serverrack und einem von Polarlicht erleuchteten Bogenfenster im Hintergrund
Anleitung · Kryptozahlungen·21 Min. Lesezeit · 60 Min. Praxis

Die Zahlung selbst entgegennehmen.
Es gibt niemanden mehr, der es einfrieren könnte.

Jeder Kartenprozessor und jedes gehostete Krypto-Gateway sitzt zwischen Ihnen und Ihrem Kunden, nimmt einen Prozentsatz, führt die Liste, wer Ihnen was bezahlt hat, und behält sich das Recht vor, aufzuhören. BTCPay Server ist die Software, die sie entfernt: ein quelloffener, selbstgehosteter, non-custodial Zahlungsabwickler, bei dem die Coins direkt in eine Wallet fließen, aus der der Server nicht ausgeben kann. Sechs Schritte zu einem funktionierenden Bitcoin- und Lightning-Checkout auf einer Box, die Sie anonym mieten — die Node-Form, die das Budget entscheidet, der Watch-only-Schlüssel, das Problem der eingehenden Liquidität und die Backup-Regel, die Lightning bricht. Die Box kostet $7.90 im Monat. Getestet auf Debian 12.

Die sechs Schritte
  1. 01

    Wählen

    Vollständig, gekürzt oder externer Node

  2. 02

    Bereitstellen

    Erst die Domain, dann vier Ports

  3. 03

    Bereitstellen

    Ein Generator, ein Befehl

  4. 04

    Verbinden

    Watch-only-Schlüssel, niemals ein Seed

  5. 05

    Lightning

    Kanäle und eingehende Kapazität

  6. 06

    Ausliefern

    Checkout, Backups, Upgrades

Bevor Sie beginnen · Was ein Zahlungsabwickler ist

Bitcoin hat die Bank entfernt. Die meisten Shops setzen eine wieder ein.

Eine Zahlung auf einer Blockchain braucht kein Unternehmen als Mittelsmann. Der Kunde signiert eine Transaktion, das Netzwerk bestätigt sie, und das Geld gehört Ihnen — es gibt keinen Acquirer, kein Abwicklungsfenster und niemanden, von dessen Zustimmung die Zahlung abhängt. Das ist der ganze Sinn der Sache, und es ist der Grund, warum die Technologie überhaupt existiert.

Dann muss ein Shop tatsächlich Zahlungen entgegennehmen, und die praktischen Anforderungen kommen alle auf einmal. Jede Rechnung braucht ihre eigene Adresse, damit sich Zahlungen unterscheiden lassen. Irgendjemand muss die Chain beobachten und entscheiden, wann eine Rechnung bezahlt ist. Der Betrag muss in einer Währung angegeben werden, in der der Kunde denkt, zu einem Kurs, der lange genug hält, damit er auf Senden drücken kann. Der Bestellstatus muss zurück in den Shop fließen. Und es muss um zwei Uhr morgens funktionieren, ohne dass jemand zusieht. All das zu bauen ist ein Projekt; es nicht zu bauen ist der Grund, warum sich fast jeder stattdessen bei einem gehosteten Gateway anmeldet — und dabei, im Rahmen eines einzigen Formulars, einen Mittelsmann wieder in ein System einbaut, das dafür entworfen wurde, keinen zu haben.

Was dieser Mittelsmann hält, lohnt sich klar auszusprechen, denn es ist mehr als die Gebühr. Er hält die Coins, zumindest bis eine Auszahlung läuft, was bedeutet, dass er eine verzögern kann. Er hält die Liste: jeden Kunden, jeden Betrag, jeden Zeitstempel, jedes Produkt, in einer Datenbank, die Sie weder lesen noch löschen können. Er hält eine Identitätsakte über Sie, weil ein Unternehmen, das Geld anderer Leute anfasst, verpflichtet ist, eine zu erheben. Und er hält den Schalter, weil die Nutzungsbedingungen sich das Recht vorbehalten, zu entscheiden, dass Ihr Geschäft nicht mehr willkommen ist — eine Entscheidung, die per E-Mail eintrifft, sowohl für das Guthaben als auch für das Konto gilt, und in der Praxis nicht anfechtbar ist.

BTCPay Server ist die Antwort auf genau dieses Problem und auf sonst nichts. Es ist ein freier, quelloffener Zahlungsabwickler, den Sie auf Ihrer eigenen Maschine betreiben: Er leitet pro Rechnung eine Adresse ab, beobachtet die Chain, stellt Fiat-Preise, bietet einen Checkout und eine API, und spricht Lightning. Er hält niemals Ihre Coins, weil die Wallet, die er beobachtet, bereits Ihnen gehört. Vier Wege, eine Kryptozahlung entgegenzunehmen, und was jeder davon tatsächlich kostet:

Eigenschaft Ein gehostetes Krypto-Gateway Eine rohe Adresse in der Fußzeile BTCPay auf der Instanz von jemand anderem BTCPay auf Ihrem eigenen VPS
Wer die Coins hältDas Gateway, bis zur AuszahlungSieSie — es beobachtet, es kann nicht ausgebenSie — es beobachtet, es kann nicht ausgeben
Wer Sie am Handeln hindern kannDas Gateway, per E-MailNiemandDer InstanzbetreiberNiemand
Wer jeden Kunden und Betrag siehtDas Gateway, dauerhaftAlle — eine Adresse, eine öffentliche SummeDer InstanzbetreiberSie
Ausweisdokument erforderlichJa, vor der ersten AuszahlungNeinWas auch immer der Betreiber verlangtNein
Kosten pro TransaktionEin Prozentsatz, für immerNichtsNichtsNichts — $7.90 im Monat, pauschal
Unterscheidet eine Rechnung von einer anderenJaNein — Sie gleichen von Hand abJaJa
Wählen Sie sie, wennSie wollen null Betriebsaufwand und akzeptieren die BedingungenSpenden, eine Handvoll im JahrSie wollen die Software, aber nicht den ServerDie Einnahmen gehören Ihnen, und die Liste auch

Auch die zweite Spalte ist kein Scherz — eine einzelne Adresse in einer Fußzeile ist für einen Spendenlink wirklich völlig in Ordnung, und das Gegenteil zu behaupten verkauft Software, die niemand braucht. Es hört auf, in Ordnung zu sein, sobald zwei Leute am selben Tag denselben Betrag zahlen, oder sobald Sie lieber hätten, dass Ihr Jahreseinkommen keine öffentliche Zahl ist, die jeder zusammenrechnen kann.

Schritt 01 · Wählen

Eine Entscheidung legt die gesamte Rechnung fest. Wie viel Chain behalten Sie?

Ein Zahlungsabwickler muss eine Frage ehrlich beantworten können: Wurde diese Rechnung bezahlt? Sie zu beantworten bedeutet, das Bitcoin-Netzwerk zu beobachten, und es richtig zu beobachten bedeutet, einen Node zu betreiben, der Blöcke selbst validiert, statt zu glauben, was ihm jemand erzählt. Dieser Node ist das gesamte Hardware-Budget dieses Projekts — BTCPay selbst, der Indexer und die Datenbank sind zusammen ein Rundungsfehler daneben.

Es gibt drei Anordnungen, die Sinn ergeben, und eine, die keinen ergibt. Ein archivierender Node behält jeden je geschürften Block: komfortabel jenseits von 700 GB im Jahr 2026 und wächst um etwa 50 GB pro Jahr. Das ist, was Sie wollen, wenn Sie außerdem einen Block-Explorer betreiben oder historische Analysen durchführen möchten, und für einen Shop ist es Overkill. Ein gekürzter Node lädt jeden Block herunter und validiert ihn exakt genauso vollständig, wirft dann die alten weg und behält ein rollierendes Fenster. Das Sicherheitsmodell ist identisch — das ist der Teil, den Leute falsch verstehen, weil sich „gekürzt" nach „unvollständig" anhört, was nicht zutrifft —, und der Deployment-Generator liefert dafür fertige Fragmente.

Ein externer Node ist die dritte Möglichkeit: Sie richten den Stack auf einen Bitcoin-Node, den Sie bereits selbst betreiben, über eine private Verbindung. Wenn Sie bereits dem Lightning-Node-Leitfaden gefolgt sind, gibt es keinen Grund, eine zweite Kopie der Chain vorzuhalten, und ein Mesh-VPN zwischen den beiden Boxen ist der saubere Weg, sie zu verbinden. Die Anordnung, die keinen Sinn ergibt, ist es, einen Shop auf den öffentlichen Node eines Fremden zu richten: Er erfährt jede Adresse, die Sie beobachten, was Ihrem Umsatz entspricht, und er ist in der Lage, darüber zu lügen, ob eine Rechnung bezahlt wurde.

Deployment Chain auf der Festplatte Insgesamt benötigter Datenträger Worauf Sie verzichten
Gekürzt, kleinstes Fenster~5–25 GB~40 GBRescans, und jeglicher Spielraum für Fehler. Die kleinste Einstellung wird nicht empfohlen.
Gekürzt, ~50-GB-Fenster~50 GB~80 GBNichts, was ein Shop bemerkt. Die vernünftige Untergrenze.
Gekürzt, ~100-GB-Fenster~100 GB~140 GBNichts. Die komfortable Standardwahl, mit Raum für Lightning.
Archivierend, vollständige Historie700 GB +~960 GBNichts — aber Sie bezahlen dafür jeden Monat, für immer.
Externer Node, den Sie bereits betreibenKeine auf dieser Box~40 GBUnabhängigkeit — der Checkout ist genau dann down, wenn die andere Box es ist.
Das eine, was Pruning Sie wirklich kostet

Ein gekürzter Node kann Blöcke, die er verworfen hat, nicht erneut scannen. In der Praxis bedeutet das: Er kann die Historie einer Wallet, deren Transaktionen vor dem Deployment liegen, nicht rekonstruieren — der Indexer scannt vorwärts ab dem Tag, an dem Sie den Schlüssel verbinden, sodass alte Zahlungen an dieses Konto im Shop schlicht nicht auftauchen. Das ist kein Problem, wenn Sie tun, was Schritt 04 empfiehlt, und dem Shop ein frisch erstelltes Konto geben; es ist ein wirklich verwirrender Nachmittag, wenn Sie eine Wallet verbinden, die Sie seit drei Jahren nutzen, und die Hälfte ihrer Historie fehlt. Entscheiden Sie, welchen Weg Sie gehen, bevor Sie installieren, nicht danach.

Eine weitere Entscheidung gehört hierher statt später, weil sie verändert, was der Installer baut: ob Sie überhaupt am ersten Tag Lightning wollen. Nur-On-Chain ist eine vollständige Konfiguration und ein durchaus respektabler Ausgangspunkt. Lightning später hinzuzufügen wird unterstützt und ist nicht schmerzhaft, aber es ist ein zweiter Daemon mit eigenem Guthaben und eigenen Backup-Regeln, und es spricht einiges dafür, erst nachzuweisen, dass echtes Geld über den einfachen Weg ankommt, bevor Sie den komplizierten einführen.

Schritt 02 · Bereitstellen

Die Domain muss zuerst existieren. Der Installer wird nach einem Zertifikat fragen.

Bestellen Sie die Box. Im Panel: Bestellen → VPS → Garrison, Image Debian 12, in welcher Bastion auch immer die Aufzeichnungen des Shops liegen sollen — Helsinki, Stockholm, Oslo oder Reykjavík. Garrison ist die richtige Standardwahl, weil es eine auf 100 GB gekürzte Chain, einen Lightning-Node und die Datenbank trägt, ohne dass Sie jahrelang wieder über die Festplatte nachdenken müssen. Sentinel funktioniert mit einer engeren Kürzung; Bulwark ist die Stufe für einen archivierenden Node. Für die Kontoeröffnung ist keine E-Mail-Adresse nötig, und die Rechnung wird in Monero, Bitcoin, Lightning oder jedem anderen unterstützten Asset beglichen — was der erfreuliche Teil dieses speziellen Projekts ist, da Sie eine Maschine bauen, um Kryptozahlungen anzunehmen, und sie mit einer solchen bezahlen.

Durchlaufen Sie dann vor allem anderen die Härtungs-Checkliste der ersten Stunde — SSH nur per Schlüssel auf einem verschobenen Port, unbeaufsichtigte Upgrades, eine Default-Deny-Firewall. Diese Box wird irgendwann die Aufzeichnung jedes Kunden, den Sie haben, sowie das Schlüsselmaterial eines Lightning-Node mit lebendigem Guthaben darin enthalten. Das ist keine Box, die man eine Woche lang mit Passwort-Authentifizierung stehen lässt.

Jetzt der DNS-Eintrag, und zwar bevor Sie den Installer laufen lassen, nicht danach. Wählen Sie den Hostnamen, unter dem der Checkout leben wird — shop.example.com, pay.example.com, was auch passt —, und richten Sie einen A-Eintrag auf die VPS-Adresse, plus einen AAAA, falls Sie über IPv6 erreichbar sein wollen. Lassen Sie ihn propagieren. Der Reverse Proxy, den der Installer einrichtet, wird beim ersten Boot versuchen, für genau diesen Namen ein Zertifikat zu erhalten, mithilfe einer HTTP-Challenge, die verlangt, dass der Name bereits auf diese Maschine auflöst. Ein Eintrag, der noch nicht live ist, ist mit Abstand die häufigste Art, wie eine erste Installation in einem verwirrenden Fehler endet.

Der Hostname ist nicht ganz dauerhaft, aber behandeln Sie ihn so, als wäre er es

Das Deployment liefert ein Skript, um die Domain später zu ändern, das ist also reparabel statt fatal. Was sich nicht mit einem einzigen Befehl reparieren lässt, ist alles, was danach kommt: Das Zertifikat wird neu ausgestellt, jeder Bezahl-Button und jede Webhook-URL, die Sie herausgegeben haben, zeigt auf den alten Namen, eine Lightning-Adresse ist ein Name auf einer Domain und zieht mit ihr um, und jedes Shop-Plugin muss neu konfiguriert werden. Wählen Sie einen Namen, den Sie bereit sind, jahrelang auf dem Briefkopf zu behalten, und bevorzugen Sie eine Subdomain einer Domain, die Sie bereits veröffentlichen, gegenüber einer neuen, die beschreibt, was die Maschine tut.

Schreiben Sie dann die Firewall-Regeln, solange noch nichts lauscht. Vier Ports, und nur vier. Der Checkout ist notwendigerweise ein öffentlicher HTTPS-Endpunkt — der Browser eines Kunden muss ihn erreichen können —, und Port 80 bleibt offen, weil die Zertifikatserneuerung ihn nutzt. Der Lightning-Peer-to-Peer-Port wird nur gebraucht, wenn andere Nodes in der Lage sein sollen, Kanäle zu Ihnen zu öffnen, wovon Schritt 05 Ihnen zeigen wird, dass Sie das wollen. Der Bitcoin-Peer-to-Peer-Port muss überhaupt nicht offen sein: Ihr Node baut ausgehende Verbindungen völlig problemlos auf, und ihn eingehend zu öffnen macht ihn nur leichter auffindbar.

ufw default deny incoming
ufw allow 47222/tcp                  # administrative SSH, moved off 22
ufw allow 80/tcp                     # ACME HTTP-01 challenge and the redirect
ufw allow 443/tcp                    # the checkout
ufw allow 9735/tcp                   # Lightning peer-to-peer, only if you want inbound channels
ufw enable
ufw status numbered

Zwei Hinweise zu Ressourcen, bevor Sie weitermachen. Geben Sie der Box Swap, falls sie keinen hat — der anfängliche Blockdownload ist die speicherhungrige Stunde dieses Projekts, und 4 GB RAM mit 2 GB Swap verhalten sich weit besser als 4 GB allein. Und gleichen Sie die Festplatten-Rechnung aus Schritt 01 mit der Stufe ab, die Sie tatsächlich bestellt haben, denn ein Node, der seinen Datenträger mitten im Sync füllt, scheitert nicht höflich; er beschädigt seinen eigenen Index und beginnt von vorn.

fallocate -l 2G /swapfile && chmod 600 /swapfile
mkswap /swapfile && swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
df -h /                              # confirm the volume matches step 01
Schritt 03 · Deploy

Ein Generator, keine Compose-Datei. Sie beschreiben es; er baut es zusammen.

Das offizielle Deployment ist keine docker-compose.yml, die Sie bearbeiten. Es ist ein Generator: Sie beschreiben das gewünschte Deployment in Umgebungsvariablen, und ein Skript setzt die Compose-Datei aus einer Bibliothek von Fragmenten zusammen — eines für Bitcoin Core, eines für den Indexer, eines für PostgreSQL, eines für die BTCPay-Anwendung, eines für jede Lightning-Implementierung, eines für den Reverse Proxy, und ein langer Schwanz optionaler Extras. Das ist ein besseres Design, als es zunächst wirkt, weil Upgrades die Datei neu erzeugen, statt von Ihnen zu verlangen, die Änderungen von jemand anderem in Ihre einzupflegen. Es bedeutet auch, dass der Umgebungsblock unten die eigentliche Konfiguration Ihres Deployments ist, und es lohnt sich, ihn am selben Ort aufzubewahren wie Ihre anderen Infrastrukturnotizen.

Klonen Sie das Repository und exportieren Sie die Umgebung. Jede Zeile unten bildet direkt eine Entscheidung aus Schritt 01 ab: Der Hostname ist die Domain, die Sie in Schritt 02 eingerichtet haben, das Storage-Fragment ist das Pruning-Fenster, das Sie gewählt haben, und die Lightning-Variable ist entweder eine Implementierung oder wird für einen reinen On-Chain-Start ganz weggelassen.

mkdir BTCPayServer && cd BTCPayServer
git clone https://github.com/btcpayserver/btcpayserver-docker
cd btcpayserver-docker

export BTCPAY_HOST="pay.example.com"          # exactly the name you pointed in step 02
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_REVERSEPROXY="nginx"
export BTCPAYGEN_LIGHTNING="clightning"       # or "lnd", or omit for on-chain only
export BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-save-storage-s"   # ~50 GB pruned window
export BTCPAY_ENABLE_SSH=true
export LETSENCRYPT_EMAIL="you@example.com"

. ./btcpay-setup.sh -i

Zwei Details in diesem Block verdienen je einen Satz. Der führende Punkt in . ./btcpay-setup.sh -i ist kein Tippfehler — das Skript wird gesourced statt ausgeführt, sodass die Umgebung, die es setzt, in Ihrer Shell erhalten bleibt und die Hilfsbefehle danach funktionieren. Und der Name des Storage-Fragments ist versionsabhängig: Der Generator hat Varianten ausgeliefert, die auf etwa 100, 50, 25 und 5 GB kürzen, unter Namen, die zwischen den Releases angepasst wurden. Lesen Sie die Fragmentliste im Repository, das Sie gerade geklont haben, statt einem Wert zu vertrauen, der aus einem Blogpost kopiert wurde — auch diesem hier.

Der Installer wird ein paar Minuten brauchen, eine Menge Images ziehen, das Zertifikat erhalten und alles starten. Dann beginnt das Warten: Der Node muss die Chain herunterladen und validieren, bevor der Shop eine Zahlung bestätigen kann, was auch gekürzt eher Stunden als Minuten dauert, weil Pruning Blöcke erst nach der Validierung verwirft, statt die Arbeit zu überspringen. Die Weboberfläche ist sofort verfügbar und zeigt Ihnen ein Synchronisierungsbanner. Stellen Sie keine echte Rechnung aus, bevor es nicht verschwunden ist.

./bitcoin-cli.sh getblockchaininfo | grep -E 'blocks|headers|verificationprogress|pruned'
docker ps --format '{{.Names}}\t{{.Status}}'
Das Administratorkonto in den nächsten fünf Minuten beanspruchen

Eine frische Instanz hat keine Nutzer, und das erste Konto, das sich registriert, wird zum Administrator. Bis Sie es beanspruchen, kann das jeder tun, der die URL erreicht — und die URL ist nicht geheim: In dem Moment, in dem das Zertifikat ausgestellt wurde, wurde der Hostname in den öffentlichen Certificate-Transparency-Logs veröffentlicht, die fortlaufend indexiert und von Leuten durchsucht werden, die genau danach suchen. Öffnen Sie die Seite und registrieren Sie sich vor allem anderen, prüfen Sie dann unter Server Settings nach und stellen Sie sicher, dass die Registrierung nicht für Fremde offensteht. Das ist ein Fünf-Minuten-Fenster, das Leute tagelang offen lassen, weil der Shop „noch nicht live“ ist.

Zwei optionale Fragmente lohnt es sich zu kennen, solange Sie noch in der Konfiguration sind. Eines fügt einen Tor Hidden Service hinzu, sodass der Checkout sowohl unter einer v3-Onion-Adresse als auch der Clearnet-Adresse erreichbar ist — nützlich für Kunden, die Ihre Domain lieber nicht auflösen möchten, und dieselbe Idee wie der Onion-Service-Leitfaden. Ein anderes fügt eine zweite Kryptowährung hinzu. Beide werden auf dieselbe Weise gesetzt, indem Sie die additional-fragments-Variable ergänzen und das Setup-Skript erneut laufen lassen; der Generator baut die Compose-Datei neu und startet nur das neu, was sich geändert hat.

Schritt 04 · Verbinden

Geben Sie ihm einen öffentlichen Schlüssel. Geben Sie ihm niemals einen Seed.

Legen Sie einen Shop an, und treffen Sie dann die eine Entscheidung auf dieser Seite, die wirklich zählt. BTCPay bietet zwei Wege an, eine Bitcoin-Wallet anzubinden: eine bestehende verbinden, oder es eine neue erzeugen lassen und den Seed auf dem Server behalten. Der erste Weg ist watch-only, und das ist es, was Sie wollen. Der zweite verwandelt eine öffentliche, ins Internet exponierte Maschine in eine Hot Wallet, die Ihren Umsatz hält, und keine noch so gründliche Härtung macht das zu einem guten Tausch für eine Box, deren gesamte Aufgabe es ist, für Fremde erreichbar zu sein.

Der Mechanismus hinter der Empfehlung ist elegant genug, um ihn verstehen zu wollen. Moderne Wallets sind hierarchisch: Ein Seed leitet einen Baum von Schlüsseln ab, und es gibt einen erweiterten öffentlichen Schlüssel — einen xpub, oder dessen zpub-Variante für natives segwit —, aus dem sich jede Empfangsadresse eines Kontos berechnen lässt, ganz ohne jede Fähigkeit zu signieren. Geben Sie diesen dem Shop, und er kann für jede Rechnung eine frische Adresse erzeugen, die Chain nach Zahlungen an jede von ihnen durchsuchen und Ihnen das Guthaben anzeigen. Er kann keinen Satoshi bewegen. Die private Hälfte bleibt in Ihrer Wallet oder auf Ihrem Hardware-Gerät und reist niemals.

Also: Öffnen Sie Sparrow, Electrum oder die Desktop-App Ihrer Hardware-Wallet, legen Sie ein neues, diesem Shop gewidmetes Konto an, und exportieren Sie dessen erweiterten öffentlichen Schlüssel. Wählen Sie in den Wallet-Einstellungen des Shops, eine bestehende Wallet zu verbinden, fügen Sie den Schlüssel ein, und gleichen Sie die ersten paar Adressen, die BTCPay ableitet, mit denen ab, die Ihre Wallet zeigt. Stimmen sie überein, ist der Ableitungspfad richtig und die Verbindung steht. Stimmen sie nicht überein, haben Sie den falschen Skripttyp gewählt — der Unterschied zwischen einem xpub und einem zpub ist der Unterschied zwischen zwei vollständig getrennten Adressmengen.

Ein erweiterter öffentlicher Schlüssel ist keine harmlose Zeichenkette

Er kann nicht ausgeben, das ist der Punkt — aber er kann aufzählen. Wer ihn erhält, kann jede Adresse ableiten, die das Konto je nutzen wird, und dadurch jede Zahlung nachlesen, die es je empfangen hat und je empfangen wird, solange Sie es benutzen. Das ist eine dauerhafte, nicht widerrufbare Offenlegung der Einnahmen Ihres Shops, und deshalb sollte das Konto, das Sie verbinden, eigens dem Shop gewidmet sein statt dem, das Ihre Ersparnisse hält. Behandeln Sie den Schlüssel als vertraulich, halten Sie ihn aus Screenshots und Support-Tickets heraus, und sollte er doch durchsickern, ziehen Sie den Shop auf ein neues Konto um, statt zu hoffen.

Jetzt die Rechnungseinstellungen, denn dort wird ein Shop eigentlich feinjustiert. Der Ablauf liegt standardmäßig bei etwa fünfzehn Minuten und ist eher eine Kurssicherung als eine technische Grenze: Er bestimmt, wie lange Sie bereit sind, einen in Fiat angegebenen Preis gegen einen volatilen Vermögenswert festzuhalten. Verkürzen Sie ihn bei einem volatilen Markt, verlängern Sie ihn, wenn Ihre Kunden langsam sind. Bestätigungen entscheiden, wann eine Rechnung als beglichen gilt — null Bestätigungen sind sofort und passend für einen Kaffee, eine Bestätigung ist die gewöhnliche Standardeinstellung, und sechs sind für Beträge, bei denen eine Stunde Warten billiger ist als die Alternative. Die Unterzahlungstoleranz erlaubt es Ihnen, eine Rechnung zu akzeptieren, die um eine Kleinigkeit zu niedrig eintrifft, was ständig passiert, wenn die Wallet eines Kunden ihre Gebühr vom Betrag abzieht, statt sie hinzuzufügen; ein kleiner Prozentsatz hier erspart eine ganze Kategorie von Support-E-Mails.

Testen Sie es dann mit echtem Geld, nicht mit Testnet. Stellen Sie eine Zahlungsanforderung über einen trivialen Betrag aus, bezahlen Sie sie von einer Telefon-Wallet aus, und beobachten Sie, wie die Rechnung von „Neu" über „In Bearbeitung" zu „Beglichen" wechselt. Diese eine Transaktion beweist, dass der Node synchronisiert ist, der Ableitungspfad stimmt, der Kursanbieter funktioniert, das Zertifikat auf einem mobilen Browser gültig ist, und dass das Geld in einer Wallet gelandet ist, die Sie kontrollieren. Nichts sonst beweist alle fünf auf einmal.

Schritt 05 · Lightning

Die Kanäle sind der leichte Teil. Bezahlbar zu sein ist der schwere Teil.

On-Chain-Bitcoin begleicht eine Rechnung über $400 wunderbar und eine über $4 schlecht: Der Kunde wartet auf eine Bestätigung und zahlt eine Gebühr, die ein spürbarer Bruchteil des Kaufpreises sein kann. Lightning kehrt beides um — Abwicklung in etwa zwei Sekunden, Gebühren gemessen in Bruchteilen eines Cents —, weshalb ein Shop, der kleine Dinge verkauft, es braucht, und ein Shop, der große verkauft, vielleicht nicht. Wenn Sie in Schritt 03 eine Lightning-Implementierung gesetzt haben, läuft der Daemon bereits, und BTCPay hat sich bereits mit ihm verbunden; die Shop-Einstellungen müssen Lightning nur noch als Zahlungsmethode aktivieren.

Welche Implementierung Sie gewählt haben, hat Konsequenzen, die es zu benennen lohnt. Core Lightning ist die konservative, schlanke Option mit einer sauberen Plugin-Architektur. LND ist am weitesten verbreitet und hat das größte Ökosystem an Management-Tools um sich herum. Es gibt inzwischen auch eine dritte Art von Option — einen schlanken Daemon, der das Kanalmanagement an einen Dienstanbieter auslagert, während die Schlüssel auf Ihrer Maschine bleiben —, die etwas Unabhängigkeit gegen das Verschwinden von allem in den nächsten drei Absätzen eintauscht. Das ist eine legitime Wahl für einen Shop, der Lightning will, aber kein Node-Betreiber werden möchte; es ist einfach ein anderer Tausch, kein kostenloser.

Ein brandneuer Node kann nicht bezahlt werden, und nichts sagt Ihnen das

Ein Lightning-Kanal hält einen festen Geldbetrag, aufgeteilt zwischen den beiden Enden. Wenn Sie einen Kanal öffnen und ihn mit Guthaben ausstatten, liegt dieses gesamte Geld auf Ihrer Seite — das ist Kapazität zum Senden, und exakt null Kapazität zum Empfangen. Ein Shop braucht das Gegenteil. Ein frisch finanzierter Node mit drei gesunden Kanälen kann deshalb weiterhin jede einzelne eingehende Rechnung scheitern lassen, und der Fehler sieht wie ein Routing-Fehler aus statt wie ein Konfigurationsfehler. Das ist der mit Abstand häufigste Grund, warum ein selbstgehosteter Lightning-Checkout am ersten Tag defekt wirkt.

Es gibt drei ehrliche Wege, an eingehende Kapazität zu kommen, und sie schließen sich nicht gegenseitig aus. Sie können ausgehende Kanäle öffnen und dann durch sie ausgeben — etwas kaufen, eine Rechnung bezahlen, Geld zu einer Börse bewegen —, was Ihr Guthaben auf die andere Seite drückt und Sendekapazität in Empfangskapazität umwandelt. Sie können einen gut vernetzten Node bitten, einen Kanal zu Ihnen zu öffnen, was in der Lightning-Community eine normale Bitte ist und kostenlos, abgesehen von der On-Chain-Gebühr des Gegenparts. Oder Sie können eingehende Liquidität bei einem der mehreren Dienste kaufen, die sie verkaufen, was einen kleinen Prozentsatz kostet und Minuten statt Wochen dauert. Es gibt auf dieser Seite keine Affiliate-Empfehlung, und es wird auch keine geben; wählen Sie nach Reputation und aktuellem Preis.

Sobald Sie bezahlt werden können, machen zwei Funktionen aus dem Node eine Ladenfront. Eine Lightning-Adresse — in der gleichen Form wie eine E-Mail-Adresse, auf Ihrer eigenen Domain — lässt jeden Ihnen von jeder modernen Wallet aus Geld schicken, ohne dass zuerst eine Rechnung existieren muss, was der freundlichste Spenden- und Trinkgeldmechanismus ist, den es irgendwo gibt. Und der QR-Code auf der Checkout-Seite kann beide Schienen gleichzeitig anbieten, sodass ein Kunde mit Lightning-Wallet in Sekunden bezahlt und einer ohne on-chain bezahlt, vom selben Bildschirm aus und ohne dass Sie eine Entscheidung treffen müssen.

Bevor die erste Lightning-Zahlung eintrifft, erledigen Sie den Backup-Schritt, der jetzt passieren muss und nicht später. Jede Implementierung hält eine kleine Datei, die den aktuellen Zustand Ihrer Kanäle beschreibt — LND nennt sie ein statisches Kanal-Backup —, und sie ist das Artefakt, das Ihnen erlaubt, Guthaben wiederherzustellen, wenn die Maschine verloren geht. Sie ändert sich jedes Mal, wenn ein Kanal geöffnet oder geschlossen wird, kopieren Sie sie also automatisiert von der Box statt von Hand. Lesen Sie die Warnung in Schritt 06, bevor Sie annehmen, Ihr nächtliches Archiv decke das bereits ab, denn speziell für Lightning tut es das nicht.

Schritt 06 · Ausliefern

Jetzt vor Kunden bringen. Dann langweilig halten.

Wählen Sie die kleinste Checkout-Oberfläche, die zu dem passt, was Sie bereits haben. Eine Zahlungsanforderung ist ein Link, den Sie jemandem schicken — keine Website nötig, und der schnellste Weg, einen Kunden zu fakturieren. Eine Kassen-App verwandelt dieselbe Instanz in eine Kasse mit Produktliste, was vom Telefon aus an einem Marktstand funktioniert. Ein Bezahl-Button ist ein Schnipsel HTML für eine statische Website. Ein Shop-Plugin fügt einem echten Ladengeschäft Bitcoin als Zahlungsmethode hinzu und schreibt den Bestellstatus automatisch zurück. Und die REST-API stellt Rechnungen aus, meldet deren Zustand und ruft bei Begleichung einen Webhook auf, was die Integration ist, die am besten altert, weil sie von nichts als HTTP und einem gemeinsamen Geheimnis abhängt.

Für welche Sie sich auch entscheiden, richten Sie den Webhook ein und testen Sie dann, dass er auslöst. Eine Rechnung, die beglichen wird und Ihre Anwendung nie benachrichtigt, ist der Fehlerfall, den niemand bemerkt, weil isoliert betrachtet auf beiden Seiten alles korrekt aussieht: Das Geld kam an, der Kunde sah eine Bestätigungsseite, und die Bestellung bleibt unerfüllt liegen. Schicken Sie sich absichtlich einen Webhook für eine beglichene Rechnung, bestätigen Sie, dass Ihr Endpunkt ihn empfangen hat, und verifizieren Sie die Signatur, statt der Payload zu vertrauen — dieser Endpunkt ist öffentlich, und jeder kann dorthin posten.

Ein nächtliches Backup ist kein Lightning-Wiederherstellungsweg

Das ist die eine Warnung auf dieser Seite, die Sie Geld statt Zeit kosten kann, und die Dokumentation des Projekts selbst sagt es mit denselben Worten: Alter Lightning-Kanalzustand ist toxisch. Die Kopie einer Kanaldatenbank von letzter Nacht wiederherzustellen und den Node laufen zu lassen bedeutet, einen Zustand zu veröffentlichen, den Ihr Gegenpart bereits überholt hat — was das Protokoll als versuchten Betrug behandelt und bestraft, indem es ihm das gesamte Kanalguthaben zuspricht. Das Archiv ist also richtig für die Shop-Datenbank, die Konfiguration und die Rechnungshistorie, aber es ist kein Wiederherstellungsplan für Kanäle. Kopieren Sie das statische Kanal-Backup fortlaufend von der Maschine, behalten Sie das neueste, und falls Sie jemals einen ganzen Server aus einem Archiv wiederherstellen, tun Sie es in dem Wissen, dass die Lightning-Seite die dokumentierte Wiederherstellungsprozedur braucht statt einer einfachen Rücksicherung.

Mit diesem Verständnis ist die Routine kurz. Das Deployment liefert ein Backup-Skript, das die Volumes archiviert und die Datenbank dumpt, während es die Blockchain-Daten auslässt, und es akzeptiert eine Passphrase, sodass das Archiv verschlüsselt wird, bevor es die Box verlässt. Lassen Sie es nach Zeitplan laufen und schicken Sie das Ergebnis dann auf eine Maschine in einem anderen Rechtsraum, so wie es der Backup-Leitfaden beschreibt — ein Append-only-Repository ist die zusätzlichen zehn Minuten hier wert, weil ein kompromittierter Zahlungsserver nicht in der Lage sein sollte, die Aufzeichnung dessen zu löschen, was er verarbeitet hat.

cd ~/BTCPayServer/btcpayserver-docker
export BTCPAY_BACKUP_PASSPHRASE="a long passphrase you keep elsewhere"
./btcpay-backup.sh                   # archives volumes + database, skips the chain
# then ship the archive offsite, and keep the channel backup separately

Als Nächstes kommen Upgrades, und eine Zahlungsbox ist die eine Maschine, bei der „später aktualisieren, mit Absicht" die richtige Politik ist. Das Deployment hat sein eigenes Update-Skript, das die Compose-Datei neu erzeugt und die neuen Images zieht; führen Sie es aus, wenn Sie die Release Notes gelesen haben, nicht wenn ein Cronjob gerade Lust hat. Sichern Sie zuerst das Archiv. Erhöhen Sie jeweils ein Release nach dem anderen. Und halten Sie die vorherige Version schriftlich fest, denn ein Rollback, den Sie in einer Minute erledigen können, ist es, was das Ganze risikoarm macht.

./btcpay-update.sh                   # deliberate, after reading the release notes
df -h /                              # the check that should be an alert, not a habit

Richten Sie zum Schluss einen Alarm und eine Erinnerung ein. Der Alarm gilt der Festplattenauslastung — ein Blockchain-Node ist der einzige Prozess auf der Maschine, der von selbst wächst, und ein voller Datenträger legt den Checkout auf eine Weise lahm, die sich nur langsam diagnostizieren lässt, weil sich sonst nichts geändert hat. Lösen Sie ihn bei achtzig Prozent aus, nicht bei fünfundneunzig. Die Erinnerung ist monatlich und dient dazu, den Shop zu öffnen und zwei Dinge zu prüfen: dass Rechnungen noch immer beglichen werden, und dass die Lightning-Kanäle, die Sie geöffnet haben, noch am Leben sind. Ein Zahlungsabwickler versagt lautlos, und Sie erfahren es dadurch, dass ein Kunde Ihnen sagt, er konnte nicht bezahlen.

Der ehrliche Teil · Was das nicht leistet

Sie haben den Mittelsmann entfernt. Unsichtbar sind Sie damit nicht geworden.

Den Abwickler selbst zu hosten ist eine echte und konkrete Verbesserung, und es ist kein Verschwindetrick. Fünf Dinge bleiben wahr, nachdem alles oben Genannte erledigt ist, und sie zu kennen ist der Unterschied zwischen einer Verteidigung und einer beruhigenden Geschichte.

Das Bitcoin-Ledger ist öffentlich und dauerhaft. Das Entfernen des Gateways hat die private Datenbank eines Unternehmens entfernt; es hat nicht die Chain verschlüsselt. Jede Zahlung, die Ihr Shop erhält, ist für jeden sichtbar, der eine Adresse kennt, für immer, und Adressen clustern: Eine Wallet, die zwei Zahlungen zu einer Ausgabe zusammenfasst, hat der Welt gerade verraten, dass diese zwei Kunden denselben Shop bezahlt haben. Das ist eine Eigenschaft des Assets, nicht der Software, und es ist der Grund, warum ein Unternehmen mit einem echten Bedarf an Privatsphäre auch einen Blick auf Monero wirft.

Der Hostname des Checkouts wird veröffentlicht, sobald er existiert. Certificate-Transparency-Logs sind öffentlich und werden fortlaufend indexiert, sodass der Name, den Sie in Schritt 02 gewählt haben, auffindbar ist, selbst wenn Sie nie darauf verlinken. Deshalb muss das Administratorkonto in den ersten Minuten beansprucht werden statt in der ersten Woche, und deshalb verdient die Login-Seite von Anfang an ein starkes Passwort und einen zweiten Faktor.

Beim Ausstieg in Fiat kommt die Identität zurück. Nichts an diesem Stack verlangt, dass Sie sich ausweisen, um eine Zahlung anzunehmen. Den Erlös in Bankgeld umzuwandeln fast immer schon, weil diese Umwandlung bei einer regulierten Börse oder einem Broker stattfindet. Self-Hosting verschiebt die Ausweispflicht vom Verkaufspunkt zum Ausstiegspunkt — eine echte Verbesserung bei der Offenlegung, aber nicht dasselbe wie deren Abwesenheit.

Ihre Meldepflichten sind nicht mit dem Server umgezogen. Wo ein Unternehmen registriert ist und wo sein Inhaber lebt, entscheidet, was geschuldet wird und was erklärt werden muss. Der Rechtsraum der Maschine, die die Rechnungen ausstellt, spielt dabei keine Rolle. An den meisten Orten ist der Erhalt von Krypto für Waren oder Dienstleistungen gewöhnliches Einkommen zum Wert am jeweiligen Tag, und es später zu veräußern ist wieder ein eigenes Ereignis. Eine selbstgehostete Instanz ist eine bessere Aufzeichnung als ein Abwickler-Konto, das Sie verlieren könnten — sie ist kein Weg, keine zu haben.

Es gibt keine Chargebacks, und das schneidet in beide Richtungen. Eine bestätigte Zahlung ist endgültig, und genau diese Eigenschaft macht Betrug gegenüber einem Händler nahezu unmöglich und ist der Grund, warum die Gebühr null beträgt. Sie ist auch der Grund, warum ein unzufriedener Kunde über Ihr Wohlwollen hinaus über keinerlei Mechanismus verfügt. Veröffentlichen Sie eine Rückerstattungsrichtlinie, nutzen Sie die Auszahlungsfunktion, um sie einzuhalten, und machen Sie sich klar, dass Sie damit die Aufgabe der Streitbeilegung übernommen haben, für die früher der Prozentsatz bezahlt wurde.

Was Sie tatsächlich gekauft haben, genau genommen: Das Geld kommt in einer Wallet an, aus der nur Sie ausgeben können, niemand kann den Verkauf stoppen, niemand nimmt einen Anteil, und die Liste, wer Ihnen was bezahlt hat, existiert nur auf einer Maschine, die Sie unter keinem bestimmten Namen mieten. Das ist eine eng gefasste Behauptung und eine echte. Sie ist nur das wert, was sie kostet, wenn Schritt 06 erledigt ist — ein selbstgehosteter Zahlungsabwickler ohne getestete Wiederherstellung ist keine geschäftliche Verbesserung, er ist ein Single Point of Failure, der Ihren Umsatz hält.

Dimensionierung · Was Sie bestellen sollten

Die Anwendung ist winzig. Die Chain ist die ganze Rechnung.

Stufe Monatlich Ressourcen Was sie komfortabel stemmt
Sentinel$3.902 vCPU · 4 GB · 120 GB · 1 GbpsEin auf 25–50 GB gekürzter Node mit Lightning. Swap hinzufügen, die Festplatte im Blick behalten.
Garrison$7.904 vCPU · 8 GB · 240 GB · 1 GbpsEin auf 100 GB gekürzter Node, Lightning und jahrelange Reserve. Die Standardwahl.
Ravelin$16.908 vCPU · 16 GB · 480 GB · 2.5 GbpsDasselbe, plus eine zweite Chain oder ein stark ausgelasteter Shop mit Plugins.
Bulwark$32.9016 vCPU · 32 GB · 960 GB · 5 GbpsEin archivierender Node mit Raum zum Weiterwachsen. Nur, wenn Sie die Historie brauchen.

BTCPay, der Indexer und PostgreSQL zusammen sind ein paar Gigabyte und beanspruchen kaum CPU, sobald der Node synchronisiert ist; ein Shop, der täglich hundert Zahlungen entgegennimmt, wird die kleinste Stufe rechnerisch nicht in Bedrängnis bringen. Worin sich die Stufen unterscheiden, ist die Festplatte, und die Festplatte wird vollständig durch Schritt 01 entschieden. Die Synchronisierung ist die einzige wirklich schwere Stunde des Projekts — sie ist IO-bound statt CPU-bound, weshalb hier NVMe zählt und die Kernanzahl nicht. Die Bandbreite ist auf jeder Stufe unbegrenzt, sodass ein öffentlich erreichbarer Lightning-Node nichts zusätzlich kostet.

Feldnotizen · Sechs Fallen

Sechs Arten, wie es schiefgeht. Zwei davon kosten Geld.

Falle 01 · Fatal

Das Administratorkonto, das niemand beansprucht hat

Die erste Person, die sich auf einer frischen Instanz registriert, wird zum Administrator, und der Hostname wurde in den Certificate-Transparency-Logs veröffentlicht, in dem Moment, in dem das Zertifikat ausgestellt wurde. Registrieren Sie sich innerhalb weniger Minuten, nachdem die Installation fertig ist, und stellen Sie dann unter Server Settings sicher, dass die Registrierung nicht für Fremde offensteht.

Falle 02 · Fatal

Die Hot Wallet auf der öffentlichen Box

Den Server die Wallet erzeugen zu lassen ist ein Klick und legt den Seed auf eine Maschine, deren Aufgabe es ist, Fremden zu antworten. Verbinden Sie stattdessen einen erweiterten öffentlichen Schlüssel: Der Shop beobachtet, leitet ab und gleicht ab, und kann nicht ausgeben. Bewahren Sie die private Hälfte in einer Wallet oder auf einem Hardware-Gerät auf.

Falle 03 · Toxisch

Den Lightning-Zustand von letzter Nacht wiederherstellen

Eine Kanaldatenbank von gestern beschreibt einen Zustand, den Ihr Gegenpart bereits überholt hat. Sie wieder online zu bringen, kann ihm als Strafe das gesamte Kanalguthaben zuspielen. Das nächtliche Archiv deckt den Shop ab; Kanäle brauchen den dokumentierten Wiederherstellungsweg und ein fortlaufend kopiertes Kanal-Backup.

Falle 04 · Lautlos

Lightning-Rechnungen, die niemand bezahlen kann

Einen Kanal zu finanzieren gibt Ihnen Kapazität zum Senden, nicht zum Empfangen. Ein neuer Node mit Geld darin scheitert weiterhin an jeder eingehenden Zahlung, und der Fehler sieht wie ein Routing-Problem aus. Beschaffen Sie sich eingehende Liquidität, bevor Sie die Lightning-Option bewerben, nicht erst nach der ersten Beschwerde.

Falle 05 · Verwirrend

Ein gekürzter Node und eine Wallet mit Vergangenheit

Verbinden Sie ein drei Jahre altes Konto mit einem gekürzten Node, und seine alten Transaktionen tauchen nie auf, weil die Blöcke, die sie enthielten, verworfen wurden. Nichts ist kaputt, und nichts sagt das. Geben Sie dem Shop ein frisch erstelltes Konto, oder betreiben Sie einen archivierenden Node.

Falle 06 · Vermeidbar

Der Datenträger, der beim Sync volllief

Ein Node ist der einzige Prozess, der von selbst wächst, und eine volle Festplatte beschädigt den Index, statt höflich zu pausieren — was bedeutet, den Download von vorn zu beginnen. Prüfen Sie die Rechnung aus Schritt 01 gegen die Stufe, die Sie bestellt haben, und schlagen Sie bei achtzig Prozent Alarm statt bei fünfundneunzig.

FAQ · Selbstgehostete Bitcoin-Zahlungen

Fragen, beantwortet.

Elf Fragen, die beim Aufbau davon aufkommen — angefangen mit den beiden, die entscheiden, ob Sie es überhaupt aufbauen sollten.

Ist BTCPay Server wirklich kostenlos, oder gibt es einen Haken?

Es ist wirklich kostenlos, und die Form dieser Tatsache zählt mehr als der Preis. BTCPay Server ist quelloffene Software, veröffentlicht unter einer freizügigen Lizenz und gepflegt von einer Stiftung statt von einem Unternehmen mit Umsatzziel; es gibt keine Gebühr pro Transaktion, keinen Prozentsatz, kein Mindestvolumen, kein Konto zu eröffnen und keinen Vertrag zu unterschreiben, weil es überhaupt keinen Vertragspartner gibt — Sie betreiben ein Programm auf Ihrem eigenen Server, so wie Sie einen Webserver betreiben. Was Sie stattdessen zahlen, ist real, aber anders: ein paar Dollar im Monat für die Box, ein Abend für die Einrichtung, und die dauerhafte Pflicht, einen zahlungsverarbeitenden Dienst gepatcht zu halten. Der Vergleich, den man eigentlich anstellen sollte, lautet nicht „kostenlos gegen ein Prozent". Er lautet „eine operative Aufgabe, die Ihnen gehört, gegen eine Abhängigkeit, die Ihnen nicht gehört", und die ehrliche Antwort ist, dass einem Shop mit zwanzig Zahlungen im Jahr wahrscheinlich besser mit etwas Gehostetem gedient ist, während ein Shop mit zwanzig in der Woche hier sowohl billiger als auch freier fährt.

Ist es custodial? Wer hält die Coins tatsächlich?

Sie tun es, und der Mechanismus lohnt sich zu verstehen, statt ihm einfach zu vertrauen. Das empfohlene Setup gibt BTCPay einen erweiterten öffentlichen Schlüssel aus einer Wallet, die Sie bereits kontrollieren. Aus diesem Schlüssel kann der Server für jede Rechnung eine frische Empfangsadresse ableiten und die Chain nach Zahlungen an sie durchsuchen — und er kann keine gültige Ausgabe konstruieren, weil die private Hälfte Ihre Wallet nie verlässt. Geld bewegt sich vom Kunden direkt in eine Adresse, die nur Sie leeren können; auf dem Server wird nie etwas gehalten, es gibt also nichts zurückzuhalten, einzufrieren oder bei einem Einbruch zu verlieren. BTCPay wird auch anbieten, eine Wallet für Sie zu erzeugen und den Seed auf dem Server zu behalten, was bequem ist und die eine Konfiguration, gegen die dieser Leitfaden bei allem rät, was echten Umsatz hält: Sie verwandelt eine öffentliche, ins Internet exponierte Box in eine Hot Wallet. Lightning ist die echte Ausnahme — Kanalguthaben müssen live sein, um zu routen —, weshalb das Lightning-Guthaben eher wie eine Kasse behandelt werden sollte als wie ein Tresor.

Wie viel Festplatte brauche ich tatsächlich?

Es hängt vollständig von einer Entscheidung ab, und die Spanne beträgt zwei Größenordnungen. Ein archivierender Bitcoin Core-Node behält jeden je geschürften Block: komfortabel jenseits von 700 GB im Jahr 2026 und wächst um etwa 50 GB pro Jahr, braucht also eine dafür bemessene Stufe und wird immer mehr brauchen. Ein gekürzter Node validiert jeden Block exakt genauso und wirft die alten dann weg, wobei ein rollierendes Fenster erhalten bleibt — der Deployment-Generator liefert Fragmente, die auf etwa 100, 50, 25 oder 5 GB kürzen, und alles ab 50 GB aufwärts ist für einen Händler eine durchaus ernstzunehmende Produktivwahl. Rechnen Sie etwa 10 bis 20 GB für den Indexer, die Datenbank, den Lightning-Node und das Betriebssystem dazu, dann geht die Rechnung auf: Eine 120-GB-Stufe betreibt ein auf 25–50 GB gekürztes Deployment, eine 240-GB-Stufe eine auf 100 GB mit jahrelanger Reserve, und archivierend will 960 GB. Wählen Sie die gekürzte Variante, sofern Sie keinen bestimmten Grund dagegen haben; das Sicherheitsmodell ist identisch.

Kann ich BTCPay ohne einen eigenen Bitcoin-Node betreiben?

Teilweise, und es lohnt sich, genau zu wissen, wo die Grenze verläuft. Der Stack kann auf einen Bitcoin-Node gerichtet werden, den Sie bereits woanders betreiben — eine Box im selben Tailnet, oder eine hinter einem Tunnel —, und das ist eine vollständig unterstützte Anordnung, die Ihnen eine zweite Kopie der Chain erspart, wenn Sie die Arbeit bereits in dem Lightning-Node-Leitfaden erledigt haben. Was Sie nicht sinnvoll tun können, ist, einen Zahlungsabwickler gegen den öffentlichen Node eines Fremden zu betreiben, und der Grund ist nicht Lizenzierung, sondern Privatsphäre und Vertrauen: Wer auch immer Ihre Anfragen beantwortet, erfährt jede Adresse, die Ihr Shop beobachtet, was dem Erfahren Ihres Umsatzes gleichkommt, und kann Sie außerdem darüber belügen, ob eine Rechnung bezahlt wurde. Es gibt eine dritte Option, zu der Leute greifen — eine gehostete BTCPay-Instanz zu nutzen, die von einem Dritten betrieben wird —, und das ist ein durchaus vernünftiger Weg, um zu beginnen. Machen Sie sich nur klar, dass das die Daten des Shops zu einem Betreiber verschiebt, der sie einsehen kann, was das meiste von dem ist, wofür Self-Hosting da war.

Muss ich den Lightning-Teil machen?

Nein, und es ist völlig vernünftig, ihn am ersten Tag auszulassen. Nur-On-Chain ist eine vollständige, funktionierende Konfiguration: Rechnungen werden bezahlt, der Kunde wartet auf eine Bestätigung, der Shop verbucht die Zahlung. Was Lightning einbringt, ist der Unterschied zwischen „etwa zehn Minuten und einer Gebühr, die bei kleinen Beträgen wehtut" und „zwei Sekunden und einem Bruchteil eines Cents" — das ist der Unterschied zwischen einem Checkout, der für eine Rechnung über $400 funktioniert, und einem, der auch für eine Rechnung über $4 funktioniert. Der Preis dafür ist, dass Lightning ein zweiter Daemon mit eigenem Guthaben, eigenen Fehlermodi und eigener Backup-Disziplin ist — einschließlich des Problems der eingehenden Liquidität aus Schritt 05 und der Warnung vor toxischem Zustand aus Schritt 06. Eine vernünftige Reihenfolge ist, on-chain zu starten, zu bestätigen, dass die gesamte Pipeline mit echtem Geld funktioniert, und Lightning als bewusstes zweites Projekt hinzuzufügen, statt es im selben Abend anzuflanschen.

Welche Wallet sollte ich mit dem Shop verbinden?

Jede Wallet, die für ein einzelnes Konto einen erweiterten öffentlichen Schlüssel exportieren kann — Sparrow, Electrum, BlueWallet oder eine Hardware-Wallet über eine von diesen — reicht aus, und das Wichtige daran ist nicht die Marke, sondern dass es ein eigens dafür angelegtes Konto ist statt desjenigen, das Ihre Ersparnisse hält. Zwei Gründe. Der erste betrifft die Privatsphäre und ist dauerhaft: Ein erweiterter öffentlicher Schlüssel ist ein Hauptindex jeder Adresse, die er jemals ableiten wird, sodass jeder, der ihn erhält, jede Zahlung aufzählen kann, die dieses Konto je empfangen hat und je empfangen wird. Dem Shop ein eigenes Konto zu geben bedeutet, dass ein Leck nur die Einnahmen des Shops offenlegt und sonst nichts. Der zweite ist operativ: Ein eigens angelegtes Konto macht das Einkommen des Shops nachvollziehbar, ohne dass Sie an einer gemischten Historie Forensik betreiben müssen, und es macht das Überweisen in Cold Storage zu einer einzigen, unspektakulären Entscheidung. Eine Hardware-Wallet, die den privaten Schlüssel hält, während der Shop den öffentlichen im Blick behält, ist die Anordnung, die Sie anstreben sollten.

Kann ich Monero oder andere Coins auf derselben Instanz annehmen?

Ja, mit dem Vorbehalt, dass jede zusätzliche Chain ein ganzer zusätzlicher Node mit eigener Festplatte, eigener Synchronisierungszeit und eigener Wartung ist. Der Generator unterstützt eine zweite und dritte Kryptowährung direkt, und es gibt eine Monero-Integration, die als zusätzliches Fragment verfügbar ist — dasselbe Deployment bietet dem Kunden dann beim Checkout eine Wahl der Schienen. Was Leute unterschätzen, ist die Ressourcenrechnung: Jede Chain, die Sie aktivieren, ist ein weiterer Daemon, der ein weiteres Ledger auf demselben Datenträger indiziert, und zwei Chains auf einer für eine bemessenen Stufe ist, wie eine Zahlungsbox an einem Sonntag die Festplatte voll laufen lässt. Wenn Monero für Ihren Shop wichtig ist, lesen Sie zuerst den Monero-Node-Leitfaden und erwägen Sie, ihm eine eigene Box zu geben; ein Zahlungsabwickler, der ausfällt, weil ein unabhängiger Daemon die Festplatte gefüllt hat, ist schlimmer als einer, der nur Bitcoin annimmt.

Wie lässt sich das an einen echten Shop anbinden?

Vier Wege, in aufsteigender Reihenfolge, wie viel Software Sie bereits haben. Wenn Sie nichts haben, liefert BTCPay eine gehostete Kassen-App und eine Zahlungsanforderung-Seite, die Sie als Link verschicken können — das reicht, um einen Kunden zu fakturieren oder an einem Marktstand ganz ohne Website Zahlungen entgegenzunehmen. Wenn Sie eine statische Website haben, ist ein Bezahl-Button ein Schnipsel HTML. Wenn Sie ein echtes Ladengeschäft haben, gibt es gepflegte Plugins für die gängigen E-Commerce-Plattformen, die Bitcoin beim Checkout zu einer weiteren Zahlungsmethode machen und den Bestellstatus automatisch zurückmelden. Und wenn Sie Ihre eigene Anwendung haben, stellt die REST-API Rechnungen aus, meldet deren Zustand und ruft einen von Ihnen festgelegten Webhook auf, wenn eine beglichen wird — das ist die Integration, die am besten altert, weil sie von nichts als HTTP abhängt. Beginnen Sie mit einer Zahlungsanforderung, weisen Sie nach, dass das Geld ankommt, und integrieren Sie danach.

Was passiert, wenn der VPS ausfällt — verliere ich Geld?

Für On-Chain: nein, und das ist der stille Lohn des Watch-only-Designs — die Coins waren nie auf dem Server. Adressen werden aus einem öffentlichen Schlüssel abgeleitet, sodass eine frische Installation mit demselben erweiterten öffentlichen Schlüssel jede Zahlung wiederentdeckt; was Sie bei einem Totalausfall verlieren, sind die Konfiguration des Shops und seine Rechnungshistorie, wofür das Backup-Skript da ist. Lightning ist eine wirklich andere Antwort und verdient einen eigenen Satz: Kanalguthaben sind live, der Kanalzustand ändert sich mit jeder Zahlung, und eine alte Kopie dieses Zustands wiederherzustellen kann Sie das Kanalguthaben rundweg kosten, weil das Veröffentlichen eines überholten Zustands genau das ist, was das Protokoll bestraft. Die richtige Haltung ist deshalb asymmetrisch. Sichern Sie Datenbank und Konfiguration nach Zeitplan, verschlüsseln Sie sie, schicken Sie sie irgendwohin, das nicht diese Maschine ist — und behandeln Sie das statische Lightning-Kanal-Backup als eigenständiges, fortlaufend kopiertes Artefakt statt als Zeile im nächtlichen Archiv.

Bedeutet das Self-Hosting des Abwicklers, dass ich keine Meldepflichten habe?

Nein, und es lohnt sich, dabei deutlich zu werden, weil stillschweigend das Gegenteil angenommen wird. Den Zahlungsabwickler zu entfernen entfernt einen Mittelsmann, eine Gebühr und eine Partei, die Ihr Guthaben einfrieren könnte. Es ändert nicht, was Sie wem schulden, oder ob ein Verkauf steuerpflichtig ist — das ergibt sich daraus, wo Sie und Ihr Unternehmen sich befinden, nicht daraus, wo der Server steht oder welche Software die Rechnung ausgestellt hat. In den meisten Rechtsräumen ist der Erhalt von Kryptowährung für Waren oder Dienstleistungen gewöhnliches Geschäftseinkommen zum Wert am Tag des Erhalts, und sie später zu veräußern ist wieder ein eigenes Ereignis; die Tatsache, dass die Aufzeichnung jetzt in Ihrer eigenen Datenbank lebt statt in der eines Abwicklers, macht sie nicht optional, und eine selbstgehostete Instanz ist in der Praxis eine bessere Prüfspur als ein Screenshot von einem Konto, das Sie nicht mehr haben. Wo der ehrliche Gewinn an Privatsphäre liegt, ist enger gefasst, aber real: Kein Dritter führt eine laufende Liste Ihrer Kunden und Beträge. Fragen Sie einen Steuerberater in Ihrem eigenen Rechtsraum nach dem Rest.

Erlaubt NordBastion einen Zahlungsabwickler auf einem VPS?

Ja — eine BTCPay-Instanz ist eine gewöhnliche Webanwendung mit einer gewöhnlichen Datenbank und einem gewöhnlichen Blockchain-Daemon, und in der Nutzungsrichtlinie steht nichts, das sie anders behandelt als einen Shop oder einen Blog. Die praktischen Hinweise betreffen Ressourcen, nicht Richtlinien: Ein synchronisierender Node ist an seinem ersten Tag festplatten- und IO-intensiv und danach fast untätig, die Bandbreite ist auf jeder Stufe unbegrenzt, sodass ein öffentlicher Lightning-Node nicht gemessen wird, und eingehende Ports für Peer-Verbindungen stehen Ihnen frei zu öffnen. Der Teil, der zum Rest der Seite passt, ist die Symmetrie: Das Konto braucht nicht Ihren echten Namen, die Rechnung wird in Monero, Bitcoin oder Lightning beglichen, und die Maschine, die jetzt jeden Ihrer Kunden kennt, ist von einem Unternehmen gemietet, das nicht weiß, wer Sie sind. Ein Abwickler, den Sie selbst auf einem identifizierten Konto hosten, hat das Ledger verschoben, nicht die Offenlegung.

Die Maschine beschaffen

Ein eigener Checkout, auf einem Konto, das nicht auf Ihren Namen läuft. KYC-frei, mit Krypto bezahlt.

Garrison — 4 vCPU, 8 GB und 240 GB NVMe für $7.90 im Monat, in Helsinki, Stockholm, Oslo oder Reykjavík. Genug für einen gekürzten Bitcoin-Node, einen Lightning-Daemon, den Indexer und den Shop, mit jahrelanger Reserve. Keine E-Mail bei der Anmeldung, kein Ausweisdokument, und kein Unternehmen, das die Liste aller führt, die Ihnen je bezahlt haben.

Zuletzt überprüft · 2026-10-12 · Quellen · BTCPay Server-Dokumentation (Docker-Deployment, Storage-Fragmente, Backup und Wiederherstellung, Shop-Einstellungen), Bitcoin Core-Dokumentation zum Pruning, Dokumentation der Lightning-Implementierung zu statischen Kanal-Backups · Rhythmus · jährlich

Privates Hosting, im Norden gebaut.