Guida per far comunicare il nodo bitcoin Umbrel e BTCPay Server

Guida per far comunicare il nodo bitcoin Umbrel e BTCPay Server

Guida per far comunicare il nodo bitcoin Umbrel e BTCPay Server attraverso il reverse proxy con certificato SSL

Vediamo passo dopo passo come far comunicare il nodo bitcoin Umbrel e BTCPayServer (impostato per default su Tor) attraverso l’internet raggiungibile. In altre parole impostare un reverse proxy con certificato SSL per il nodo bitcoin Umbrel e BTCPayServer

L’obiettivo è accettare pagamenti attraverso lightning network di bitcoin ( o anche più banalmente on-chain) su un e-commerce con WordPress ed il famoso plugin Woocommerce attraverso il proprio nodo bitcoin precedentemente configurato con Umbrel. 

Infatti allo stato attuale in cui viene installata l’applicazione BTCPay Server sul nodo Umbrel, essendo quest’ultimo caricato predefinito su Tor ed attualmente non modificabile, non c’è un modo per accettare pagamenti al proprio ecommerce sull’internet raggiungibile.

Questa guida è stata testata e funzionante ufficialmente all’altezza del blocco 702323

Disclamer 1: la guida è stata tradotta da questo sito , testata ed adattata in italiano

Disclamer 2: se il tuo nodo Umbrel è agganciato alla rete di casa, rivelerai il tuo indirizzo IP ed Umbrel stesso. Consiglio di non caricarci grandi fondi

Disclamer 3: per ricevere pagamenti in lightning network attraverso il nodo, dovrai prima aver aperto un canale lightning con un nodo ben collegato ed avere inbound capacity

Disclamer 4: Testata com Umbrel 0.4.0

Anche se abbastanza tecnica questa guida non prevede la conoscenza sistemistica o di programmazione; basta copiare ed incollare al posto giusto stringe di codice

Ci sono però dei prerequisiti prima arrivare fino in fondo che elenco di seguito:

  1. Un nodo Umbrel totalmente sincronizzato
  2. Aver installato l’applicazione BTCPay Server nell app-store di Umbrel
  3. un dominio attivo ( o eventualmente un dominio di terzo livello)
  4. accesso al proprio router ( utente e password)

Per esemplificare meglio scelgo i seguenti valori:

  • Ip di casa: 100.100.100.100
  • Ip di Umbrel: 192.168.1.2
  • Il nome di dominio: criptoaiuto.it
  • il dominio di terzo livello su cui voglio far puntare BTCPay server: test.criptoaiuto.it

Punto1 : reindirizzare il nome del dominio all’ip con il quale è connesso il nodo Umbrel

Per vedere il tuo ip attuale vai su un sito come questo senza passare da terminale: www.myip.comn

Copiare la prima parte, in questo caso abbiamo detto 100.100.100.100

Ora andando nel pannello di controllo del dominio, nella sezione gestione DNS, andiamo a rettare il terzo dominio “test” attribuendogli l’ip di sopra

Io uso Aruba, ma qualsiasi altro provider permetterà di inserirlo.

Nota bene: E’ importante inserire “A” e non valori diversi.

Salviamo ed aggiorniamo.

Punto2: verificare che il DNS del dominio si sia propagato correttamente

Basta andare su un sito come questo : https://dnschecker.org/#A/test.criptoaiuto.it

Ed inserire il dominio del punto1, sempre con il valore ad “A”

Le flag verdi restituiscono la giusta propagazione del DNS impostato al punto1

Punto3: Entrare nel router ed aprire queste specifiche porta su umbrel

Per accettare pagamenti ed installare un certificato SSL al dominio che abbiamo scelto al punto1 ( test.criptoaiuto.it), il nodo Umbrel deve essere parzialmente raggiungibile da internet. Quindi abbiamo bisogno di aprire delle specifiche porte sul router di casa. Qui dipende molto dal modello di router che hai, io ti porto l’esempio del router di Vodafone .Ogni router ha le sue specifiche e comunque l’obiettivo resta impostare :

  • l’apertura della porta interna 15080 con la porta pubblica 80
  • l’apertura della porta interna 15443 con la porta pubblica 443

Per fare questo devi essere loggato al wifi ( anche il cavo ethernet va bene lo stesso purché sia sulla stessa rete) con un dispositivo diverso da Umbrel. [ Ovviamente anche Umbrel deve essere collegato alla stessa rete ]

Apriamo una finestra del browser dal nostro devide e digitiamo http://192.168.1.1/ ( se hai vodafone puoi anche fare http://vodafone.station/ è la stessa cosa).

Da questa schermata entri nel tuo router con un utente ed una password che dovresti averti salvato.

E’ necessario entrare nel router a cambiare i parametri di seguito – se non riesci ad entrare, prova a trovare un modo per resecare la password ( o se non l’hai cambiata sarà quella di default del router stesso ).

Accedendo alla home del sito del router, troveremo tutti i dispositivi connessi alla rete. Cerchiamo Umbrel che nel mio caso è collegato con un cavo di rete e posizionandoci sopra, apparirà in overlayer il suo indirizzo interno, ad esempio 192.168.1.2.

Annotiamocelo.

Entriamo con la modalità di utente esperto cliccando in alto a dx

Ora posizionandoci sul menù “internet” ( il terzo da sinistra per intenderci), poi entriamo sul sotto menù “gestione porte” e cliccando con il + inseriamo le seguenti impostazioni TCP con l’indirizzo locale di Umbrel che abbiamo trovato prima ( 192.168.1.2)

NB: ricorda di mettere TCP come protocollo

Anche se non hai vodafone come ISP dovresti ritrovarti alla fine con le medesime impostazioni settate.

Punto 4: installazione NGINX & Cerbot

E’ la parte più ostica ma non spaventarti, non è richiesta alcuna conoscenza di sistemi. Se segui passo dopo passo i miei passaggi vedrai che andrà tutto liscio.

Apriamo il terminale ( se non l’hai mai fatto, basta che digiti “CMD” su Windows o “Terminal” su MacOS )

Dobbiamo entrare in umbrel quindi digitiamo

ssh umbrel@umbrel.local

( se hai cambiato lo user in umbrel da quello di default basta che inserisci il tuo “ssh nomenuovo@umbrel.local” )

Ti chiederà la password del tuo utente amministratore, se non l’hai ancora cambiata ( ti consiglio di farlo quanto prima), quella di default è

moneyprintergobrrr

Lanciamo un aggiornamento del repository

Basta che copi questa riga

$ sudo apt update

ti chiederà una password ed al suo invio, procederà automaticamente a crearti l’aggiornamento
Hit:1 http://deb.debian.org/debian buster InRelease
Get:2 http://deb.debian.org/debian-security buster/updates InRelease [65.4 kB]
Hit:3 http://archive.raspberrypi.org/debian buster InRelease
Get:4 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Hit:5 https://download.docker.com/linux/debian buster InRelease
Fetched 117 kB in 2s (65.9 kB/s)
Reading package lists… Done
Building dependency tree
Reading state information… Done
6 packages can be upgraded. Run ‘apt list –upgradable’ to see them.

Quando ti crea una nuova riga, vuol dire che ha terminato la copilazione

Ora installiamo i componenti richiesti

$ sudo apt install python3-acme python3-certbot python3-mock python3-openssl python3-pkg-resources python3-pyparsing python3-zope.interface python3-certbot-nginx nginx

Reading package lists… Done
Building dependency tree
Reading state information… Done
python3-pkg-resources is already the newest version (40.8.0-1).
python3-pkg-resources set to manually installed.
The following additional packages will be installed:
certbot libgd3 libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter
libnginx-mod-mail libnginx-mod-stream libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libxpm4 libxslt1.1 nginx-common nginx-full python python-minimal python-pyicu python2 python2-minimal python2.7 python2.7-minimal
python3-configargparse python3-configobj python3-future python3-josepy python3-parsedatetime python3-pbr python3-requests-toolbelt python3-rfc3339 python3-tz python3-zope.component python3-zope.event python3-zope.hookable

NB: L’INSTALLAZIONE FALLIRA’ ED E’ QUELLO CHE CI ASPETTIAMO. Questo succede perchè Umbrel già richiede la porta 80, quindi dobbiamo cambiare la configurazione con la seguente stringa che vadi a copiare

$ sudo sed -i 's/80 default_server/15080/g' /etc/nginx/sites-available/default

E finiamo l’installazione copiando e lanciando

$ sudo apt install -f

A questo punto dovrai essere in grado di vedere la pagina di benvenuto di NGINIX sull’indirizzo http://192.168.1.2:15080/ ( cambiando ovviamente l’ip interno del tuo umbrel di conseguenza)

Punto5 : impostare la configurazione di BTCPay Server per NGINX

Sempre da terminale, andiamo a creare la nuova configurazione del file copiando :

$ sudo nano /etc/nginx/sites-available/btcpay

Ed incolliamo i seguenti parametri FACENDO ATTENZIONE a cambiare il dominio secondo i tuoi valori ( il 127.0.0.1:3003 invece è da lasciare così )

proxy_buffer_size          128k;
proxy_buffers              4 256k;
proxy_busy_buffers_size    256k;
client_header_buffer_size 500k;
large_client_header_buffers 4 500k;
http2_max_field_size       500k;
http2_max_header_size      500k;

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    server_name test.criptoaiuto.it;

    location / {
        proxy_pass http://127.0.0.1:3003;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

    listen 15080;
    listen [::]:15080;
}

Salviamo con CTRL + O

Usciamo con CTRL + X

Ora abilitiamo la configurazione che abbiamo appena inserito copiando:

$ sudo ln -s /etc/nginx/sites-available/btcpay /etc/nginx/sites-enabled/

Testiamo che quanto abbiamo fatto sia giusto copiando

$ sudo nginx -t

dovrebbe restituire successful così:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Se è tutto corretto, rilanciamo copiando

$ sudo systemctl reload nginx.service

Punto6) Richiesta di un nuovo certificato SSL da LetsEncrypt

Per richiedere un certificato copiare la seguente stringa facendo attenzione a cambiare test.criptoaiuto.it e test@criptoaiuto.it con i tuoi valori

$ sudo certbot --nginx -d test.criptoaiuto.it -m test@criptoaiuto.it --agree-tos --tls-sni-01-port 15443 --http-01-port 15080

Ad un certo punto la procedura ti chiederà se vuoi fare il redirect –  metti 1: no redirect

Apriamo nuovamente il file di configurazione copiando

$ sudo nano /etc/nginx/sites-available/btcpay

Incolliamo quest’ultima parte in coda alle altre facendo attenzione di cambiare test.criptoaiuto.it con i tuoi valori

server {
    if ($host = test.criptoaiuto.it) {
        return 301 https://$host$request_uri;
    }

    listen 15080;
    listen [::]:15080;

    server_name test.criptoaiuto.it;
    return 404;
}

Ora validiamo e ricarichiamo la configurazione copiando

$ sudo nginx -t

Ci restituirà ancora succesful se abbiamo seguito tutti i passaggi

Ed infine l’ultimo comando da copiare è

$ sudo systemctl reload nginx.service

Complimenti ce l’hai fatta!

Ora se ti colleghi al tuo indirizzo https://test.criptoaiuto.it vedrai la schermata di login di BTCPay Server

Umbrel e BTCPay Server
Umbrel e BTCPay Server

Disclamer 1: la guida è stata tradotta da questo sito , testata ed adattata in italiano

Puoi testare la funzionalità dell ecommerce By Woocommerce, il plugin Umbrel e BTCPay Server sul nostro sito http://lightning.criptoaiuto.it

Se ti ho risolto qualche dubbio, valuta la possibilità di donare 200 sats e testare il pagamento lightning network offchain di bitcoin:







Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Il tuo Nome

Commento