ブログやECサイトの決済に使えるBTCPayサーバーをLunaNodeでお手軽に構築してみた
以前Umbrelの拡張アプリ「BTCPayサーバー」を利用してダークマーケットを作る!というアレな記事を作成しました。
記事内でも書いているのですが、UmbrelはデフォルトでTor設定となっているため公開している自身のブログやECサイト等のいわゆる”インターネット上(クリアネット・表層web)”でUmbrelのBTCPayサーバー機能を使うことができません。
なのでTor経由でBTCPayサーバーを利用するダークマーケット的な形となってしまったのですが、やはり第三者の仲介やピンハネ無しの決済システムを自分のサイトに埋め込んで使いたい!と思ったので構築方法を模索してみました。
ちなみにUmbrelは同一LAN内(ローカル環境)であればアクセスできるので、Tor接続無しでも社内LANにUmbrelを設置すればBTCPayサーバーを利用して社内決済やIoTを組み込んで社内コーヒーメーカーをライトニング決済で作動させたりということは可能です(白い目で見られそうですが…)
クリアネット上に構築できると簡単に決済リンクを作成できるのでSpotlightやTwitter・YouTubeの概要欄に貼り付けて自分だけの決済システムを手に入れることができます。以下に決済リンクを貼っておくので良かったら覗いてみてね。
さて今回構築に利用したのはLunaNodeというクラウドホスティングサービスです。
LunaNodeでは仮想マシン上に簡単にBTCPayサーバーを立ち上げる項目があるので登録から立ち上げまで30分かからず、ブラウザ上の簡単な操作でできてしまいます!
まぁ正直「第三者を除いた決済システムと言っておいてクラウドサービスを利用するのか…」とも思いましたが…
ただ自宅の回線環境などを考慮すると自分用の仮想マシンを外部に借りてBTCPayサーバーを構築するのが最も早く、物理的に別回線のためセキュリティが確保できるというメリットは大きかったです。
ちなみにLunaNodeでBTC/BTC Lightning決済に対応したBTCPayサーバーを構築・運用する費用は月額で14ドルとなります。
ちょっと高い気もしますがラズパイとSSDなど揃えても200ドル程度はかかるので、手間やセキュリティ面などを考慮すると意外とお手頃なのでは?と思います。
構築手順としては非常に簡単で、私は以下の動画を参考に構築してみました。
※手順通りに作業しBTCPayサーバーが立ちあがったらログインの2段階認証を必ずしましょう!
こちらもUmbrelと同じくビットコインノードの同期が完了するまで待つ必要があります。(1日半くらいで完了しました)
無事に同期が終わればサーバーセッティングでBTCウォレットとLightningノードをセットアップ、あとはダークマーケット記事などを参考にストアやアプリを作れば決済ができます!
ただしLightning支払いに関してはチャネルが開いていない状態なのでLNBigなどを利用してインバウンドキャパシティを作りましょう。
画像のようにBTCPayサーバーではRideTheLightningがデフォルトで利用できるのでチャネル管理などはこちらで利用するのが便利です。
無事チャネルも開設し、いよいよLN決済ができる!と思ったのですが、どうも決済が通らないという事態に…
どうやらBTCPayサーバーはデフォルトでTorがアクティブになっているらしく、この影響で支払いを使用にも自身のノードが見つからない状態になっているっぽい。
という事でBTCPayサーバーのTor設定をoffにしました。LunaNodeにログインし、起動しているBTCPayサーバーへのログイン情報を確認します。
Tera TermなどのSSH接続ソフトでExternal IPのアドレスに接続、ユーザー名はubuntu・パスワードは表示されているものを入力しログインします。
BTCPAYGEN_EXCLUDE_FRAGMENTS="$BTCPAYGEN_EXCLUDE_FRAGMENTS;opt-add-tor"
. btcpay-setup.sh -i
上記のコマンドを入力するとBTCPayサーバーが再起動され、Tor設定がオフになります。この辺りの設定はBTCPayのドキュメントに乗っているのでGoogle翻訳見ながら必要な項目を変更しましょう。
https://docs.btcpayserver.org/FAQ/FAQ-Deployment/#how-do-i-activate-tor-on-my-btcpay-server
Torがオフになったので再度送金を試したところ無事に決済が通るようになりました。(接続ピアも適当に増やしたのでその効果もあるかも?)
ちなみに開設したチャネルは2本で、一本は自身のUmbrelノードですがこちら経由のルーティングは全然発生していません…
メインのルートはもう一本のLNBigのチャネルになります。30万Satsのインバウンドキャパシティが約2ドル程度で購入できたのでTorをオフにした場合はこれ一本でも少額の送金は可能かも?
LNBigはSpotlightのポイントも利用できるので記事を書いてチャネルの本数を増やすのもオススメです!
といった感じでクリアネット上にBTCPayサーバーを構築したわけですが、細かい設定方法については自分自身知識が乏しいので間違った記載をするとマズいなと思いあえて省略している部分があります。
先程のBTCPayサーバー公式サイトのFAQなどを参照しながらバックアップをとりつつ試行錯誤して頂ければと…
最後になりますが、今回構築して感じたのは自前の決済システムを保有できることの凄さです。
最近ではPayPayが決済手数料無料期間が終わり、今後約2%の手数料が課されるということで話題になりました。
こうした既存決済システムの問題点を見るとBTCPayサーバーの完全無料で自由な決済システムを自分自身で保有できることの凄さが実感できます。
ECサイトで決済システムを導入するのにどれぐらいの手間と手数料がかかるでしょうか?PayPayは国内のみですがBTCなら世界中いつでも決済が可能です。
当たり前のことですが、実際にサーバーを構築してみると改めて実感できました。
今回はLunaNode上での構築でしたが近いうちに自宅のラズパイでクリアネット用のBTCPayサーバーを構築したいと思います。
月額15ドルほどで自前の決済システムを保有できるのは安いと思いますが、LunaNodeの方は1月分の期限が来たらたたむ予定です!