Today I published a guide on my website on how to expose one’s Umbrel node with BTCPay Server to the internet using a reverse SSL proxy. This will allow you to accept Bitcoin payments on your own domain.
I set up the same environment some days ago (with quite the same configuration).
But i still have a problem inside BTCPayserver regarding websocket / notifications - only if i connect via reverse proxy.
“WebSocket connection to ‘wss://btcpay.myurl.com/Notifications/SubscribeUpdates’ failed”
“Error while connecting to websocket for notifications (callback)”
My guide contains configuration to circumvent that. You should instruct NGINX to return Connection: upgrade on some occasions to make the websocket work. See the manual for more information but it comes down to including this part somewhere in your NGINX config;
Thank you for putting up this guide! I’m halfway through, but I got stuck at requesting the SSL certificate. The following command from your guide (of course with my own domain/email) results in
-bash: /etc/nginx/sites-enabled: Is a directory
Is it possible that the command is missing something?
… /etc/nginx/sites-enabled $ sudo certbot --nginx -d btcpay.jorijn.com -m jorijn@jorijn.com --agree-tos --tls-sni-01-port 15443 --http-01-port 15080
From the information you gave me, I can’t really determine what’s wrong. I suspect the symlink might be corrupt or wrongly created. It should look like this;
umbrel@umbrel:/etc/nginx/sites-enabled $ ls -la
total 8
drwxr-xr-x 2 root root 4096 Aug 12 14:51 .
drwxr-xr-x 8 root root 4096 Aug 12 14:43 ..
lrwxrwxrwx 1 root root 33 Aug 12 14:26 btcpay -> /etc/nginx/sites-available/btcpay
If the symlink is fine, please give me a bit more logging/information to go on
umbrel@umbrel:/ $ /etc/nginx/sites-enabled $ ls -la -bash: /etc/nginx/sites-enabled: Is a directory
I guess there was no symlink created (?). Being not too unix literate I started with a clean Umbrel install and followed your guide again, but same problem.
umbrel@umbrel:/etc/nginx/sites-enabled $ ls -al total 8 drwxr-xr-x 2 root root 4096 Aug 23 15:46 . drwxr-xr-x 8 root root 4096 Aug 23 15:43 … lrwxrwxrwx 1 root root 33 Aug 23 15:46 btcpay -> /etc/nginx/sites-available/btcpay lrwxrwxrwx 1 root root 34 Aug 23 15:43 default -> /etc/nginx/sites-available/default
I don’t get it. The following command from your guide should have made it a symlink afaik. Strange…
Hi @jorijn thanks for this amazing guide, I’m wondering if by any chance you know how to make the BTCTransmuter plugin available using BTCPay on Umbrel, I tried to follow the instructions here but obviously Umbrel installation of BTCpay do not follow the same files structure.
Thanks for your respond @jorijn I think there will be a lot of interest on this plugin but the fact is that not many are aware of his existence, it give very useful new functionalities to BTCPay, like these ones:
Fiat Conversion - Convert incoming money to fiat on an exchange by market selling when BTCPay invoice statuses change.
Exchange - Provides you a way to connect to a variety of exchanges and place orders on them
Lightning - Provides you interoperability with lightning nodes to be able to do basic channel and invoice management
But I guess it all depend on the community and if they want to use this plugin, but again, I think people are not aware of this plugin and that is why there are not many looking for a way to make it work under Umbrel.
I followed it but am getting this error at the last step about adding the manual HTTP redirect:
umbrel@umbrel:~ $ sudo nginx -t
nginx: [warn] conflicting server name "btcpay. jorijn.com" on 0.0.0.0:15080, ignored
nginx: [warn] conflicting server name "btcpay. jorijn.com" on [::]:15080, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
My config file at /etc/nginx/sites-available/btcpay looks like this:
But a video will not help you more than this excellent piece of tutorial.
Nowadays people really don’t want to read, damn it. Only YT videos to do what? To watch the same text?
Thanks for this amazing guide ! Anywhere to donate some sats ?
I’m stuck in the SSL request and when I submit sudo certbot --nginx -d btcpay.jorijn.com -m jorijn@jorijn.com --agree-tos --tls-sni-01-port 15443 --http-01-port 15080
the error is like:
Failed authorization procedure. btcpay.jorijn.com (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://btcpay.jorijn.com/.well-known/acme-challenge/GOGEEfQRjgEQfFN7FpT_rMRmNaUpp0zllYvzPwihETc: Connection refused
IMPORTANT NOTES:
- The following errors were reported by the server:
Domain:btcpay.jorijn.com
Type: connection
Detail: Fetching
http:// btcpay.jorijn.com/.well-known/acme-challenge/GOGEEfQRjgEQfFN7FpT_rMRmNaUpp0zllYvzPwihETc:
Connection refused
I think I need to ask another certificate? Any Idea ?
The Certbot did not ask me about redirecting as you mentioned on your guide