No.30, No.29, No.28, No.27, No.26, No.25, No.24[7件]
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ページにしか辿り着きません。
この後、初期設定が必要なのですが、それはまた次以降の記事ということで。
初心者向けの使い方の記事……なぁ(不定期n回目の検討)
まだMastodon系の方が、多少の変更が来ても類推しやすいだろうか?
Misskey系は機能が多すぎる&増えたり減ったりしやすいから、余計に悩みどころ。
あー、でももしガッツリ記事を残すのならば、kmyblueについて書きたい気持ちが強い。
今まさに使っているし、今後も知り合いが興味を示したら連れてくるかもしれない的な意味でも、取説はあると便利。
まだMastodon系の方が、多少の変更が来ても類推しやすいだろうか?
Misskey系は機能が多すぎる&増えたり減ったりしやすいから、余計に悩みどころ。
あー、でももしガッツリ記事を残すのならば、kmyblueについて書きたい気持ちが強い。
今まさに使っているし、今後も知り合いが興味を示したら連れてくるかもしれない的な意味でも、取説はあると便利。
はてなブログじゃなくても設定できるのかテスト!
参考記事は、以下。
はてなブログの記事の著者としてMastodonアカウントを設定する方法 - await wakeUp();
https://sublimer.hatenablog.com/entry/2024/11/10/170413
てがろぐの場合はスキンに仕込めば(独自ドメインでは)可能なようにも思うけど、実際のところどうなのかと思って実験。
#わーさんがやってみた
参考記事は、以下。
はてなブログの記事の著者としてMastodonアカウントを設定する方法 - await wakeUp();
https://sublimer.hatenablog.com/entry/2024/11/10/170413
てがろぐの場合はスキンに仕込めば(独自ドメインでは)可能なようにも思うけど、実際のところどうなのかと思って実験。
#わーさんがやってみた
そう言えば報告してなかった。
#技術書典17 、新刊抱えて、出ます。
『さばかんライフ!〜Fediverseへサーバーを建てるところから、閉鎖して卒業するまでの走り書き〜』
2023年春先くらいから鯖缶の世界に足を踏み入れた、非技術職で創作趣味を持つわーさんによる、ちょっとくらいは網羅的だと思いたい鯖缶忘備録みたいな本です。
11/2(土)から11/17(日)まで、オンラインではイベントサイトにてお求めいただけます。
また、11/3(日・祝)11時~17時は、池袋・サンシャインシティ 展示ホールD(文化会館ビル2F)にて入場無料(事前登録必要)のオフラインイベントでも有料頒布します。
PDF版は1000円、紙本とのセットはオンライン1800円、会場1500円です。
A5本文200ページ(背幅1cm)のちょぴっと厚みのあるイメージ。
書籍情報URL https://techbookfest.org/product/3iPwMejxatReB2dihiAnPW
#さばかんライフ!
#技術書典17 、新刊抱えて、出ます。
『さばかんライフ!〜Fediverseへサーバーを建てるところから、閉鎖して卒業するまでの走り書き〜』
2023年春先くらいから鯖缶の世界に足を踏み入れた、非技術職で創作趣味を持つわーさんによる、ちょっとくらいは網羅的だと思いたい鯖缶忘備録みたいな本です。
11/2(土)から11/17(日)まで、オンラインではイベントサイトにてお求めいただけます。
また、11/3(日・祝)11時~17時は、池袋・サンシャインシティ 展示ホールD(文化会館ビル2F)にて入場無料(事前登録必要)のオフラインイベントでも有料頒布します。
PDF版は1000円、紙本とのセットはオンライン1800円、会場1500円です。
A5本文200ページ(背幅1cm)のちょぴっと厚みのあるイメージ。
書籍情報URL https://techbookfest.org/product/3iPwMejxatReB2dihiAnPW
#さばかんライフ!
Hollo https://docs.hollo.social/ja/ をRailwayとCloudFlare R2で建ててみたので、色々メモ。
①Railwayには予め登録しておくこと
②オブジェクトストレージのURLはhttpsから必要
③アカウント登録はHolloのURLにて
以下、iPhoneからNightfox DAWN、公式アプリ、featherにて。
④アイコンやヘッダーの登録は公式アプリのみ可
⑤投稿はNightfox DAWNは可、feather・公式アプリは不可
※登録した順番の問題の可能性もあり
⑥フォロー承認はfeatherのみ可
追記
⑦オブジェクトストレージを確認すると、一時的なものかもしれないけれど、リモート画像のサムネイルを持っている
⑧kmyblue自鯖から絵文字インポートできたし、インポートした絵文字を投稿内に入れることはできたけれど、リアクションは連合してない(2024/10/16現在)
⑨Misskeyなら絵文字リアクションが連合する
リアクションが連合しない、というのは、kmyblue自鯖からHollo自アカウントに飛ばしても、Hollo自アカウントからkmyblue自鯖に飛ばしても、お互い通知も来なければタイムラインにも出ない感じ。
2024/11/02追記
色々変更あったみたいなので、またそのうち検証。
#わーさんがやってみた #Hollo
①Railwayには予め登録しておくこと
②オブジェクトストレージのURLはhttpsから必要
③アカウント登録はHolloのURLにて
以下、iPhoneからNightfox DAWN、公式アプリ、featherにて。
④アイコンやヘッダーの登録は公式アプリのみ可
⑤投稿はNightfox DAWNは可、feather・公式アプリは不可
※登録した順番の問題の可能性もあり
⑥フォロー承認はfeatherのみ可
追記
⑦オブジェクトストレージを確認すると、一時的なものかもしれないけれど、リモート画像のサムネイルを持っている
⑧kmyblue自鯖から絵文字インポートできたし、インポートした絵文字を投稿内に入れることはできたけれど、リアクションは連合してない(2024/10/16現在)
⑨Misskeyなら絵文字リアクションが連合する
リアクションが連合しない、というのは、kmyblue自鯖からHollo自アカウントに飛ばしても、Hollo自アカウントからkmyblue自鯖に飛ばしても、お互い通知も来なければタイムラインにも出ない感じ。
2024/11/02追記
色々変更あったみたいなので、またそのうち検証。
#わーさんがやってみた #Hollo


