BTCPay ServerをCloudflare TunnelでClearnet公開
Cloudflare Tunnelでポート開放無しにUmbrel上のBTCPay ServerをClearnet公開する方法。
必要なもの
- BTCPay Serverが稼働しているサーバ(Umbrel)
- サーバにSSHアクセスする環境
- BTCPay Serverを公開するためのドメイン
(Cloudflare上でDNSレコードを管理する必要がある。ドメインがない場合はCloudflareで購入可能) - メールアドレス
(Cloudflareにアカウント登録する用) - クレジットカード or PayPal
(Cloudflare Tunnel自体は無料だが、Cloudflare Zero Trustを無料アカウントで有効化するため必要) - 多少の時間
Cloudflareのアカウント作成
https://dash.cloudflare.com/sign-upからアカウント作成
Cloudflareの"Get started"をクリック
ドメインを追加
(画像上ではサブドメインを入れているが、現在サブドメイン付きは登録不可)
無料アカウントの作成は…
下にある
ドメインの既存レコードが表示されるので、必要に応じて編集
ネームサーバー情報が表示されるのでドメインを取得したサービスで変更する。
(Cloudflareで取得した場合は既に設定済み)
クイックスタートガイドはスキップ
Zero Trustを有効化する
ドメイン登録の完了直後。左の"Zero Trust"を押して…
Zero Trustを有効化する。チームネームはなんでもOK
プランを選択、Cloudflare TunnelはFreeプランでOK。下に…
Select planのボタンがあるので押す
Proceed to payment
クレジットカード情報を入れて…(or PayPal)
$0.00で決済
Cloudflare Tunnelを作成する
Access→Tunnelsをクリック
トンネルの名前を決めて(トンネルを複数作成したときに後々わかるようにするため、なんでもOK)、"Save tunnel"
トンネル作成のアシスタントが出てくるので、OSとアーキテクチャを選択する。
(Raspberry Pi 4BでUmbrelを動かしている場合はDebian, arm64 bit)
下に設定情報が出てくるためこれをコピーして…
UmbrelのSSHに貼り付けて実行
成功するとConnectorsに接続された情報が表示されるので"Next"をクリック
サービス追加画面になるので…
情報をそれぞれ入力して"Save tunnel"して完了。
URL部分のポート番号(3003)は…
Umbrelアプリを開いた際に出てくるポート番号("umbrel:3003"の3003の部分)
BTCPay Serverの設定を変更する
上記の設定後、サイトにアクセスしてもHTTPSが有効化されていないというエラーが出るので
SSH上でecho "PROXY_TRUST_UPSTREAM=true" > ~/umbrel/app-data/btcpay-server/.env.app_proxy
を実行
~/umbrel/scripts/app restart btcpay-server
エラーが消える