Umbrel on Ubuntu
まえがき
約1年前にReef Chainのバリデータを目指そうと用意したUbuntu環境、なかなかバリデータの一般開放が進んでいないまま、いつのまにか息子のMinecraftサーバと化してしまっていました。
結構前にUnbrelというRaspberry Pi 4上で動作するLightning Networkのノードがあるという話は耳にしていたのですが、Raspberry Pi専用なのだろうと思い込んでいたため、Raspberry Piは1~3までしか持っていないため関係ないと見送ったままでした。
以下の炎鎮先生のツイートを見かけ、思わず歓喜しました。やっと新しいおもちゃで遊べそうです!
インストール
以下の手順を参考にインストールします。
https://github.com/getumbrel/umbrel
$ curl -L https://umbrel.sh | bash
どのように動作しているのか不明なので、とりあえずpsコマンドやsystemctlコマンドで確認してみたところ、Docker内にnginx、tor、Node.jsなどが動いているようでした。
Raspberrry Piの場合と違ってインターネット上のクラウド環境にあるので、自宅からサーバまでの通信をどう暗号化するかが課題です。
案1: https化 →❌
はじめに、サーバにnginxを入れてhttpsを終端させてリバースプロキシ経由でアクセスする方式を考えました。
以下の感じの定義、サーバ証明書はとりあえず自己署名で。
server { listen 443 ssl; ssl_certificate /etc/nginx/server.pem; ssl_certificate_key /etc/nginx/server.key; # server_name example.com; root /var/www/html; index index.html; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; proxy_max_temp_file_size 0; location / { proxy_pass http://localhost; } }
これでうまく行くだろうと思ったのもつかの間、Bitcoin NodeアプリやLightning Network Nodeアプリを入れると、2100ポート、2101ポートが新たにHTTP通信用に別サイトとして使われる仕組みのようで失敗しました。
URLやドメインでリバースプロキシ先を複数切り分ける方法をいくつか試してみましたが、期待したような結果になりませんでした。
(細かいことは割愛しますが、各サイト間の行き来がありリバースプロキシだとURL書き換えに難あり)
案2: OpenVPNを使用
サーバにOpenVPNを入れようと思いましたが、ノウハウが無いのと証明書作成あたりがややこしそうですぐ断念・・・ ちょっと大がかりですね。
案3: SSHトンネリング→⭕
炎鎮先生からありがたい助け船をいただきました。
SSHトンネリング(ポートフォワーディング)が簡単だよ、という情報を教えていただいたので、さっそく試してみました。
以下のように、使用するポートをフォワードしておくことにより、ブラウザからはhttp://localhost/でアクセスできようになりました。
こういうケースで使える方法なのですね!
$ ssh -L 80:localhost:80 <server> $ ssh -L 2100:localhost:2100 <server> $ ssh -L 2101:localhost:2101 <server> ︙
※
サーバ増強
現在契約中のレンタルサーバはノードとして使うにはメモリは少なく、ディスク容量も400GBしかありませんので、スケールアップする必要があるようです。
仕事ではAzureやAWSを使うことが多いのですが、プライベートでは、通信量を気にせず使える国産サービスを利用しています。
スケールアップ時にディスク容量を上げるオプションが選択できたので、ディスクサイズを400GB → 800GBへ変えました。しばらくは大丈夫でしょう。
物理的に変更してもパーティションサイズが変わっていないので、以下の手順を参考に拡張しました。
https://manual.sakura.ad.jp/cloud/storage/modifydisk/resize-partition.html
1. 現サイズ確認
$ df -h /
2. パーティションサイズ変更
$ sudo growpart /dev/vda 3
3. リブート
$ sudo reboot now
4. リサイズ
$ resize2fs /dev/vda3
5. ディスク容量確認
$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/vda3 784G 342G 406G 46% /