No.30 (ランダム表示)
ActivityPub Relayチャレンジ初回編
S.H.さん( @S_H_@gamelinks007.net )が、うまくすれば月550円からリレーサーバが運用できるかも、ということで作成されたActivityPub Relayのデプロイに挑戦した、 #わーさんがやってみた シリーズ初回分の記事です。
多分、2回目とか出てきます。
ActivityPub Relayのソースコードはこちら。
https://github.com/S-H-GAMELINKS/activity-pub-relay
大まかな手順
自分の手元のPCにて諸々を準備した後、Dockerを利用したKamalによりVPSに持っていく流れです。
準備するもの
①自分のPCにDocker、Rubyを入れます。
わーさんはMacBook Airを使いましたが、多分開発されてるS.H.さんはWindowsのような気がしますし、Windowsでも大丈夫と思います。
→追記:Windows(WSL/Ubuntu 22.04)での開発だそうです。
Dockerはアカウントの確保が必要、リポジトリ作成は不要です。
入れたDockerアプリを起動してログインしておくことを忘れないように(わーさんは忘れました)
https://www.docker.com/ja-jp/
RubyについてはわーさんはrbenvをHomebrew経由で入れました。
https://github.com/rbenv/rbenv
Ruby 3.3.6が必要なので、入れておきましょう。
rbenv install 3.3.6
他のプロジェクトがない場合は、全体を3.3.6にしておいた方が、後で関連スクリプトをbundle installで入れるのにbundlerのバージョンで引っかかりにくくなります。
わーさんは、先にコードをもらってきてローカルだけにRuby 3.3.6を指定した結果、PC内のデフォルトが2.6.0だったみたいで最新のbundlerが使えず、引っかかりました。
rbenv global 3.3.6
ついでに、そのbundlerも念の為に確保しておきましょう。
gem install bundler -v 2.5.23
②ソースコードを持ってきて、関連スクリプトも展開します。
なるべく浅い階層、できれば日本語の混ざらない場所が無難と思います(深い階層に持って行った結果、バグったわーさん談)
MacBook Airでは、Finderなどでフォルダに右クリック相当の動作を行うことで『フォルダに新規ターミナル』が出せてしまうので、うっかり深いところに作りがちですが……。
git clone https://github.com/S-H-GAMELINKS/activity-pub-relay.git
cd activity-pub-relay
bundle install
③Railsで生成される暗号鍵を生成し、予め控えておきましょう。
実は、初回(v0.2.0)では不具合があったようで、散々引っかかりました……。
現在(v0.3.0以降)は解消されています(わーさんも実験済みです)ので、手順をしっかり追えば大丈夫でしょう。
Railsはsecret_key_baseという暗号化の鍵を生成し、機密情報をその鍵で暗号化してしまうので、確保が必要です。
EDITOR=<Your Editor> bin/rails credentials:edit
この<Your Editor>については、各々の使いやすいエディターを指定すると良いでしょう。
コンソール内に鍵となる文字列が表示されますので、絶対必ず忘れずにメモしておきましょう。
Kamalに渡す必要があり、設定として記載する必要が出てきます。
④VPSなどの準備をします。
月額550円、は、KAGOYAさんの最小プランの場合と思われます。
IPの確保、SSH鍵の確保、DNSの設定など行いましょう。
SSH鍵をターミナルに登録するには、以下のコマンドが便利です。
ssh-add <SSH Private Key Path>
Kamalを使うのにもSSH鍵は必要なので、この段階で登録しておくと楽だと思います。
VPSにもDockerを入れておきます。
sudo apt update
sudo apt upgrade -y
sudo apt install -y docker.io curl git
sudo usermod -a -G docker <Server Username>
この<Server Username>については、VPS側での作業ユーザーを設定してdockerとグループ化することが必要です。
⑤DockerHubのAPIトークンを作成します。
これはDockerHubのページ右上から行けるAccount SettingsのSecurityという項目内、Personal access tokensにて作成可能です。
権限は、Read / Write permmisionが必要とのことです。
https://hub.docker.com
確保したトークンも、先ほどの暗号鍵同様に、メモして控えることを忘れずに。
⑥Kamalの設定ファイルを作成します。
ソースコード中の.env.sampleをテンプレートとしてコピー、必要な情報を記載して.envとして作成・保存します。
activity-pub-relayディレクトリ内にいることを確認の上でコマンドを入力しましょう。
cp .env.sample .env
SERVER_IP=<Server IP>
SERVER_USERNAME=<Server Username>
SERVER_SSH_PORT=<Server SSH Port>
LOCAL_DOMAIN=<Server Domain>
KAMAL_REGISTRY_USERNAME=<Registry Username>
KAMAL_REGISTRY_PASSWORD=<Registry Password>
SECRET_KEY_BASE=<secret_key_base value>
サーバードメインにはhttps://は不要です。
また、KamalはDockerを利用していますので、上記のKAMAL_REGISTRY_部分にはDockerでのユーザーネーム、及び先ほど作成したトークンを記載します。
⑦サーバーをデプロイします。
コマンドとしては、kamal setupです。
これも、activity-pub-relayディレクトリ内で入力します。
うまく行っていれば、数分くらいでデプロイが完了します、きっと(散々エラーに引っかかった思い出ばかりで時間がわからないわーさん)
以降、更新があった時は、kamal deployにて更新可能なようです。
なお、この時点で喜び勇んで設定したアドレスに接続してみても、見事に簡素な404ページにしか辿り着きません。
この後、初期設定が必要なのですが、それはまた次以降の記事ということで。
S.H.さん( @S_H_@gamelinks007.net )が、うまくすれば月550円からリレーサーバが運用できるかも、ということで作成されたActivityPub Relayのデプロイに挑戦した、 #わーさんがやってみた シリーズ初回分の記事です。
多分、2回目とか出てきます。
ActivityPub Relayのソースコードはこちら。
https://github.com/S-H-GAMELINKS/activity-pub-relay
大まかな手順
自分の手元のPCにて諸々を準備した後、Dockerを利用したKamalによりVPSに持っていく流れです。
準備するもの
- 先に準備する諸々を入れられる自分のPC(スマホでは無理と思います)
- Dockerアカウント
- VPS
①自分のPCにDocker、Rubyを入れます。
わーさんはMacBook Airを使いましたが、多分開発されてるS.H.さんはWindowsのような気がしますし、Windowsでも大丈夫と思います。
→追記:Windows(WSL/Ubuntu 22.04)での開発だそうです。
Dockerはアカウントの確保が必要、リポジトリ作成は不要です。
入れたDockerアプリを起動してログインしておくことを忘れないように(わーさんは忘れました)
https://www.docker.com/ja-jp/
RubyについてはわーさんはrbenvをHomebrew経由で入れました。
https://github.com/rbenv/rbenv
Ruby 3.3.6が必要なので、入れておきましょう。
rbenv install 3.3.6
他のプロジェクトがない場合は、全体を3.3.6にしておいた方が、後で関連スクリプトをbundle installで入れるのにbundlerのバージョンで引っかかりにくくなります。
わーさんは、先にコードをもらってきてローカルだけにRuby 3.3.6を指定した結果、PC内のデフォルトが2.6.0だったみたいで最新のbundlerが使えず、引っかかりました。
rbenv global 3.3.6
ついでに、そのbundlerも念の為に確保しておきましょう。
gem install bundler -v 2.5.23
②ソースコードを持ってきて、関連スクリプトも展開します。
なるべく浅い階層、できれば日本語の混ざらない場所が無難と思います(深い階層に持って行った結果、バグったわーさん談)
MacBook Airでは、Finderなどでフォルダに右クリック相当の動作を行うことで『フォルダに新規ターミナル』が出せてしまうので、うっかり深いところに作りがちですが……。
git clone https://github.com/S-H-GAMELINKS/activity-pub-relay.git
cd activity-pub-relay
bundle install
③Railsで生成される暗号鍵を生成し、予め控えておきましょう。
実は、初回(v0.2.0)では不具合があったようで、散々引っかかりました……。
現在(v0.3.0以降)は解消されています(わーさんも実験済みです)ので、手順をしっかり追えば大丈夫でしょう。
Railsはsecret_key_baseという暗号化の鍵を生成し、機密情報をその鍵で暗号化してしまうので、確保が必要です。
EDITOR=<Your Editor> bin/rails credentials:edit
この<Your Editor>については、各々の使いやすいエディターを指定すると良いでしょう。
コンソール内に鍵となる文字列が表示されますので、絶対必ず忘れずにメモしておきましょう。
Kamalに渡す必要があり、設定として記載する必要が出てきます。
④VPSなどの準備をします。
月額550円、は、KAGOYAさんの最小プランの場合と思われます。
IPの確保、SSH鍵の確保、DNSの設定など行いましょう。
SSH鍵をターミナルに登録するには、以下のコマンドが便利です。
ssh-add <SSH Private Key Path>
Kamalを使うのにもSSH鍵は必要なので、この段階で登録しておくと楽だと思います。
VPSにもDockerを入れておきます。
sudo apt update
sudo apt upgrade -y
sudo apt install -y docker.io curl git
sudo usermod -a -G docker <Server Username>
この<Server Username>については、VPS側での作業ユーザーを設定してdockerとグループ化することが必要です。
⑤DockerHubのAPIトークンを作成します。
これはDockerHubのページ右上から行けるAccount SettingsのSecurityという項目内、Personal access tokensにて作成可能です。
権限は、Read / Write permmisionが必要とのことです。
https://hub.docker.com
確保したトークンも、先ほどの暗号鍵同様に、メモして控えることを忘れずに。
⑥Kamalの設定ファイルを作成します。
ソースコード中の.env.sampleをテンプレートとしてコピー、必要な情報を記載して.envとして作成・保存します。
activity-pub-relayディレクトリ内にいることを確認の上でコマンドを入力しましょう。
cp .env.sample .env
SERVER_IP=<Server IP>
SERVER_USERNAME=<Server Username>
SERVER_SSH_PORT=<Server SSH Port>
LOCAL_DOMAIN=<Server Domain>
KAMAL_REGISTRY_USERNAME=<Registry Username>
KAMAL_REGISTRY_PASSWORD=<Registry Password>
SECRET_KEY_BASE=<secret_key_base value>
サーバードメインにはhttps://は不要です。
また、KamalはDockerを利用していますので、上記のKAMAL_REGISTRY_部分にはDockerでのユーザーネーム、及び先ほど作成したトークンを記載します。
⑦サーバーをデプロイします。
コマンドとしては、kamal setupです。
これも、activity-pub-relayディレクトリ内で入力します。
うまく行っていれば、数分くらいでデプロイが完了します、きっと(散々エラーに引っかかった思い出ばかりで時間がわからないわーさん)
以降、更新があった時は、kamal deployにて更新可能なようです。
なお、この時点で喜び勇んで設定したアドレスに接続してみても、見事に簡素な404ページにしか辿り着きません。
この後、初期設定が必要なのですが、それはまた次以降の記事ということで。
- さらにランダムに表示する
- ユーザ「和条門 尚樹」の投稿だけを見る (※時系列順で見る)
- この投稿と同じカテゴリに属する投稿:
- この投稿日時に関連する投稿:
- この投稿に隣接する前後3件ずつをまとめて見る
- この投稿を再編集または削除する


