pub-relayを立てようとした。(備忘録)

実際にpub-relayを設置してみることにしましたが、少しハマったポイントがあったので備忘録を残しておきます。
(現状は実験的取り組みのため、URLは非公開とさせていただきます。)

現状、日本語・英語ともに情報が少なく事前調査に苦労しましたが、以下の記事を参考にさせていただきました。
・pub-relayを立ててみたい方へ
https://qiita.com/noellabo/items/5510f85648b5fa6506bb

・サーバ
サーバは、IDCFクラウドさんのLight.S1プラン(0.4円/h, 200円/月)に、ディスク容量はとりあえず8GB(1GBあたり 0.04円/h, 20円/月)で、合計360円/月という構成です。

・OS
とりあえずUbuntu 18.04.1を使用しました。
ISOイメージ( http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.1-server-amd64.iso )からインストールを実行。

・パーティション構成
redisが重要になりそうですのでボリュームを分けてみました。

マウントポイント サイズ オプション
Reserved BIOS boot area 1.0 MB
/ 5.5 GB
/var/lib/redis 2.0 GB noatime nodiratime noexec
swap max


・OSインストール後に実施したこと
注)実験環境の為、rootユーザで実行していますがsudoを利用することをお勧めします。

IDCFクラウドさんの環境に最適化するために「open-vm-tools」をインストールします。
# apt install open-vm-tools

OSをアップデートします。
# apt update
# apt upgrade

ファイアウォールの設定やSSHサーバの設定、カーネルパラメータの設定を行います。
<セキュリティ上の理由により非公開>

Redisをインストール
# apt install redis-server redis-tools
# vi /etc/redis/redis.conf
# systemctl restart redis-server

Crystalをインストール
参考:https://crystal-lang.org/docs/installation/on_debian_and_ubuntu.html
# apt install curl screen
# curl -sSL https://dist.crystal-lang.org/apt/setup.sh | sudo bash
# apt install crystal libxml2-dev libgmp-dev libyaml-dev libssl-dev libreadline-dev

pub-relayをインストール
# adduser pubrelay
# su pubrelay
$ screen
$ cd
$ git clone https://source.joinmastodon.org/mastodon/pub-relay.git pubrelay
$ cd pubrelay
$ shards update
$ shards build –release

ここで少しハマってしまったのですが、以下のようなエラーが出てしまい先に進めませんでした。
$ shards
Failed to raise an exception: END_OF_STACK
[0x7fdcbf885826] ???
[0x7fdcbf8298a3] ???
[0x7fdcbf82a4b8] ???
[0x7fdcbf82c6d3] ???
[0x7fdcbf84d8c2] ???
[0x7fdcbf82b8fd] ???
[0x7fdcbfad29a5] ???

エラーメッセージで検索してみるものの解決策は見つけられず。
原因を調べるために以下のコマンドを実行。
$ strace shards
実行結果は省略しますが「open(“/dev/pts/0”, O_RDWR) = -1 EACCES (Permission denied)」が原因のようでしたので、とりあえずscreenを実行することで解決しました。

このあと各種設定とSystemdの設定を行うのですが・・・ドキュメント類が無いため、まずはここまで。

コメントを残す

コメントを投稿するには、以下のいずれかでログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中