Einrichten eines BTCPay-Servers auf Ubuntu 22.04/20.04 mit Docker
09:34, 19.12.2023
Wenn Sie Ihren Server nutzen wollen, um auf die eine oder andere Weise Dienstleistungen zu verkaufen, müssen Sie wahrscheinlich eine Möglichkeit finden, die Zahlung mit einem speziellen Zahlungsprozessor durchzuführen. Wenn Sie besonders an Bitcoin- (und Altcoin-) Zahlungen interessiert sind, benötigen Sie einen Kryptowährungs-Zahlungsprozessor, wobei BTCpay die Lösung sein könnte, nach der Sie suchen. Wenn Sie sich für diese spezielle Lösung entschieden haben, können Sie sie mit Hilfe der folgenden Anleitung installieren.
Einführung in den BTCPay Server
Das Gute an BTCpay ist, dass Sie bei der Nutzung von BTCpay keinen Drittanbieter-Zahlungsprozessor verwenden müssen. Der Peer-to-Peer-Charakter bietet Ihnen mehr Flexibilität und Unabhängigkeit und schließt auch die Möglichkeit der Zensur aus. Darüber hinaus bietet die Lösung eine Reihe von weiteren Vorteilen:
- Dezentralisierung und Selbstsouveränität: Da BTCpay selbst gehostet wird, sind Sie und nur Sie allein für Ihre Zahlungsverfahren verantwortlich. Diese Autonomie bringt eine Reihe von wertvollen Vorteilen. Zum Beispiel gibt es keine Zensur und Ihr Konto kann nicht gesperrt werden.
- Keine zusätzlichen Gebühren: Da Sie den Betrieb dieses Zahlungsabwicklers selbst hosten, gibt es niemanden, der von Ihnen verlangen würde, Gebühren zu zahlen.
- Datenschutz: BTCPay verlangt keine persönlich identifizierbaren Informationen von den Benutzern.
- Sicherheit: Aufgrund des Open-Source-Charakters der Lösung ist sie in erster Linie Community-gesteuert und wird regelmäßig Sicherheitsaudits unterzogen. Aus diesem Grund ist sie ziemlich resistent gegen Angriffe. Außerdem tragen Sie die alleinige Verantwortung für Ihre privaten Schlüssel, was ein weiterer Beitrag zum allgemeinen Sicherheitsniveau ist.
- Anpassung: BTCPay ist in hohem Maße anpassbar, Sie können es nach Ihren Vorstellungen für Ihr Unternehmen anpassen und Ihren Kunden ein einzigartiges Zahlungserlebnis bieten.
- Community und Ökosystem: BTCPay verfügt über eine umfangreiche Nutzer-Community, die Ihnen Zugang zu zuverlässigem Support, umfangreicher Dokumentation und Plugins für jeden Anwendungsfall bietet, was Ihnen wiederum Handlungsfreiheit gibt, die Zahlungsabwicklung nach Ihren persönlichen Vorstellungen anzupassen.
- Geringere regulatorische Anforderungen: Da keine zentralisierten Institutionen in irgendeiner Weise in BTCPay involviert sind, werden Sie definitiv viel weniger Schwierigkeiten in Bezug auf die Einhaltung von Vorschriften haben. Dies gilt insbesondere dann, wenn Ihr Land strenge Finanzvorschriften auferlegt.
- Einfache Integration: Die Plattform lässt sich leicht in eine Reihe von gängigen E-Commerce-Plattformen integrieren - WooCommerce, Shopify, Magento und einige andere.
- Unterstützung von Multi-Signatur-Wallets: BTCPay unterstützt Multi-Signatur-Wallets, die eine erhöhte Sicherheit von Kryptowährungsbeständen bieten.
- Lightning Network Integration: BTCPay bietet unter anderem Lightning Network Unterstützung. Lightning Network ist eine Skalierungslösung auf zweiter Ebene für Bitcoin, die Ihre Transaktionen schneller und gleichzeitig kostengünstiger macht.
Server-Anforderungen
BTCPay verlangt, dass Ihr Server die folgenden Kapazitäten bereitstellt:
- CPU-Kerne: 2.
- ARBEITSSPEICHER: 4 GB.
- Speicherplatz: 600 GB.
Schritt 1: Installation von Docker auf Ubuntu 22.04 Server
Die Verwendung von BTCPay Docker wird die Installation von BTCPay erheblich vereinfachen, weshalb wir uns für diesen Ansatz entschieden haben.
Ubuntu sollte Docker bereits in seinem Software-Repository installiert haben. Um sicherzugehen, dass Sie die neueste Version haben, können Sie sie aus dem APT-Repository von Docker installieren.
- SSH für Ihren Server
- Führen Sie den Befehl aus, um das Docker-Repository zu Ihrem Server hinzuzufügen:
echo "deb [signed-by=/etc/apt/keyrings/docker.gpg.key arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
- Importieren Sie den Docker-GPG-Schlüssel in das Ubuntu-System. Auf diese Weise kann APT die Integrität des Pakets überprüfen
wget --quiet -O - https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.gpg.key
- Installieren Sie apt-transport-https und ca-certificates Paket:
sudo apt install apt-transport-https ca-certificates
- Aktualisieren Sie den Paketindex und installieren Sie die Docker Community Edition
sudo apt update
sudo apt install docker-ce
Damit sollte die Installation von Docker abgeschlossen sein. Sie können dies überprüfen, indem Sie den Status kontrollieren:
systemctl status docker
Wenn Docker noch nicht gestartet ist, können Sie es auf diese Weise starten:
sudo systemctl restart docker.socket
sudo systemctl restart docker.service
Damit es bei jedem Systemstart automatisch startet:
sudo systemctl enable docker
Um die Version zu überprüfen:
docker -v
Schritt 2: Einrichten des BTCPay-Docker-Containers
- Wechseln Sie zu root:
sudo su –
- Kopieren Sie das BTCPay Server Repo von GitHub:
sudo apt install git
cd ~
git clone https://github.com/btcpayserver/btcpayserver-docker.git
Sie finden es unter ~/btcpayserver-docker. Gehen Sie dorthin:
cd ~/btcpayserver-docker/
- Führen Sie jeden dieser Befehle einzeln aus. Auf diese Weise werden Sie einige notwendige Umgebungsvariablen setzen
export BTCPAY_HOST="btcpay.example.com"
export NBITCOIN_NETWORK="mainnet"
export BTCPAYGEN_CRYPTO1="btc"
export BTCPAYGEN_REVERSEPROXY="empty"
export BTCPAYGEN_EXCLUDE_FRAGMENTS="$BTCPAYGEN_EXCLUDE_FRAGMENTS;nginx-https"
export BTCPAYGEN_LIGHTNING="lnd"
export BTCPAY_ENABLE_SSH=true
Anmerkungen:
BTCPAY_HOST: btcpay.example.com ist durch Ihren Hostnamen zu ersetzen.
NBTICOIN_NETWORK: es besteht die Wahl zwischen mainnet, testnet oder regnet.
BTCPAYGEN_CRYPTO01 ist für die Auswahl der unterstützten Münzen verantwortlich. Hier fügen wir Bitcoin hinzu, Sie können eventuell weitere Münzen hinzufügen.
BTCPAYGEN_REVERSEPROXY: Auswahl von entweder nginx, traefix oder emtpy.
BTCPAYGEN_EXECLUDE_FRAGMENTS: Deaktiviert die Erstellung von TLS-Zertifikaten. Ein kostenloses Let's Encrypt TLS kann eventuell installiert werden.
BTCPAYGEN_LIGHTING: Wählen Sie lnd oder clightning um die Unterstützung von Lightning-Netzwerken zu aktivieren.
BTCPAY_ENABLE_SSH: Aktivieren Sie die Verwaltung autorisierter SSH-Schlüssel für BTCPAY.
Umgebungsvariablen können mit überprüft werden:
echo $BTCPAY_HOST
Installation des BTCPay-Docker-Containers:
. ./btcpay-setup.sh -i
Überprüfen des Dienststatus von systemd:
sudo systemctl status btcpayserver.service
Überprüfung der Docker-Container:
sudo docker ps
Standardmäßig gibt der btcpayserver/btcpayserver Docker-Container den Port nicht für das Host-Betriebssystem frei. Um dies zu beheben, öffnen Sie die Datei docker-compose im bevorzugten Editor (hier nano):
nano ~/btcpayserver-docker/Generated/docker-compose.generated.yml
Im btcpayserver Abschnitt unter "ports:" hinzufügen:
- "49392:49392"
Speichern und beenden. Starten Sie btcpayserver.service neu:
sudo systemctl restart btcpayserver
Jetzt können Sie den Status des Docker-Containers noch einmal überprüfen:
sudo docker ps
Nun sollte der Port des Host-Betriebssystems (49392) auf den Port 49392 von Docker abgebildet werden.
Schritt 3: Nginx Reverse Proxy konfigurieren
- Installieren Sie den Nginx-Webserver aus dem Standard-Software-Pool von Ubuntu:
sudo apt install nginx
- Erstellen Sie eine virtuelle Hostdatei für den BTCPay-Server.
sudo nano /etc/nginx/conf.d/btcpay-server.conf
- Konfigurieren Sie Nginx als Reverse-Proxy. Fügen Sie innerhalb der btcpay-Konfigurationsdatei die folgende Konfiguration hinzu. Ersetzen Sie btcpay.example.com durch Ihren Domainnamen oder Ihre Server-IP:
server {
listen 80;
server_name btcpay.example.com;
location / {
proxy_pass http://127.0.0.1:23000; # The default BTCPay port is 23000
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
Wenn Ihr BTCPay auf einem anderen Server läuft und einen anderen Port verwendet, sollten Sie proxy_pass entsprechend anpassen.
- Erstellen Sie einen symbolischen Link zu Ihrer Nginx-Konfigurationsdatei im Verzeichnis /etc/nginx/sites-enabled/, um die Site zu aktivieren:
sudo ln -s /etc/nginx/sites-available/btcpay /etc/nginx/sites-enabled/
- Testen Sie Ihre Nginx-Konfiguration auf Syntaxfehler, bevor Sie die Änderungen übernehmen:
sudo nginx -t
- Wenn während des Textes keine Fehler aufgetreten sind, laden Sie Nginx neu, um die Änderungen zu übernehmen:
sudo systemctl reload nginx
- Firewall: Vergewissern Sie sich, dass die Firewall des Servers eingehenden Datenverkehr über Port 80 zulässt. Um HTTP-Verkehr zuzulassen, müssen Sie möglicherweise die Einstellungen Ihrer Firewall, wie UFW und andere, konfigurieren.
- Zugriff auf BTCPay: Vergewissern Sie sich, dass BTCPay jetzt mit Ihrem Domainnamen oder Ihrer Server-IP erreichbar ist, dass es ordnungsgemäß und ohne Fehler funktioniert.
Schritt 4: Aktivieren von HTTPS für BTCPay Server
Durch die Aktivierung von HTTPS (SSL/TLS) profitieren Sie und Ihre Kunden von mehr Datenschutz und Sicherheit bei der Datenübertragung. Der erste Schritt besteht darin, ein SSL-Zertifikat zu erwerben, das Sie von Let's Encrypt, einer vertrauenswürdigen Stelle, die kostenlose Sicherheitszertifikate anbietet, erhalten können. Danach müssen Sie die folgenden Richtlinien befolgen, um HTTPS tatsächlich zu aktivieren.
- Certbot installieren: Certbot ist ein praktisches Tool, das verwendet werden kann, um automatisch ein SSL-Zertifikat von Let's Encrypt zu erhalten oder zu erneuern. Um es zu installieren, fügen Sie ein:
sudo apt update
sudo apt install certbot python3-certbot-nginx
- Führen Sie Certbot aus, um die Installation des SSL-Zertifikats durchzuführen:
sudo certbot --nginx -d yourdomain.com
- Konfigurieren Sie den BTCPay-Server für das neu erhaltene SSL. Greifen Sie dazu über HTTPS auf die Weboberfläche Ihres BTCPay-Servers zu. Melden Sie sich bei Ihrem BTCPay-Konto an und gehen Sie zu den Kontoeinstellungen. Aktualisieren Sie die "Server URL" und setzen Sie Ihre Domain mit dem Präfix "https://". Speichern Sie Ihre Änderungen und starten Sie die BTCPay-Dienste neu.
- Da Let's Encrypt-Zertifikate nur 90 Tage lang gültig sind, ist es sinnvoll, eine automatische Erneuerung für sie in Certbot einzurichten. Certbot macht dies über einen Cron-Job. Um dies zu überprüfen:
sudo crontab -l
Finden Sie den Certbot-Erneuerungsauftrag. Sie fügen ihn nicht von selbst hinzu:
sudo certbot renew --quiet
- Testen Sie Ihre HTTPS-Einrichtung. Greifen Sie dazu über die sichere URL auf Ihren Server zu. Die Verbindung muss sicher und die SSL-Zertifizierung gültig sein.
Schritt 5: Zugriff auf das Webinterface des BTCPay-Servers
Gehen Sie zu https://btcpay.example.com. Hier können Sie Ihr Administratorkonto registrieren, falls Sie es noch nicht getan haben. Danach wird die Registrierung neuer Benutzer deaktiviert, es sei denn, Sie möchten sie wieder aktivieren. Warten Sie, bis die Knoten synchronisiert sind (Sie können es in der unteren rechten Ecke sehen). Dann können Sie die Schnittstelle und die Funktionen von BTCPay erkunden.
Schritt 6: Verwalten Ihres BTCPay-Servers
Als erstes müssen Sie einen Shop erstellen. Klicken Sie auf die entsprechende Schaltfläche in der Benutzeroberfläche. Ein Geschäft ist für den Empfang von Zahlungen zuständig.
Danach müssen Sie eine Wallet einrichten. Fügen Sie eine bereits vorhandene hinzu oder erstellen Sie eine auf BTCPay.
Sie haben die Wahl zwischen einer Hot Wallet, bei der die privaten Schlüssel auf dem Server gespeichert werden, was zwar bequem, aber anfälliger für Hacker ist, und einer Watch-Only Wallet, die ein höheres Maß an Sicherheit bietet, da die privaten Schlüssel vom Server gelöscht und extern gespeichert werden.
Dann können Sie aus 4 Adresstypen wählen.
Als Letztes müssen Sie einen Lightning Node einrichten. Hier können Sie entweder den BTCPay-internen Lightning-Knoten oder einen eigenen Lightning-Modus verwenden.
Schlussfolgerung
BTCPay ist eine großartige Lösung für den Fall, dass Sie Kryptowährungszahlungen zu Ihrem E-Commerce-Shop hinzufügen möchten. Wir hoffen, dass diese Anleitung umfassend genug war und dass Sie jetzt ein funktionierendes BTCPay-Konto eingerichtet haben. Vielen Dank für Ihre Aufmerksamkeit, bleiben Sie dran.