No.30 (ランダム表示)

Icon of naoki
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アカウント
  • 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ページにしか辿り着きません。
 この後、初期設定が必要なのですが、それはまた次以降の記事ということで。

■Share

MaMiShare

■旅空ノ夢(Misskey):

編集

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■新着画像リスト:

全1個 (総容量 119.9KB)

■日付検索:

■カレンダー:

2024年11月
12
3456789
10111213141516
17181920212223
24252627282930

■カテゴリ:

■最近の投稿:

最終更新日時:
2025年10月12日(日) 06時41分26秒〔103日前〕