RaspberryPi

ラズパイで Mastodon サーバを立ち上げ

<2021/07/31 閉鎖しました。ラズパイのスペック不足でアプデに失敗し、DBのバックアップがなかったため復活できず…。またなんか新しいことしよ〜>

前々からやろうやろうと思っていてなかなかできなかったラズパイでの Mastodon サーバの立ち上げ。
消費税も 10 % となる 10 月 1 日にようやくやる気になってできました(笑)

最初のころにテストサーバとして 1 台 VPS を借りていたんだけどそこまででもないかなと…
それに何かやるときは新しいことをするというのがモットー。

今回は余っていたラズパイ 3B を 2 台使ってやってみることに。
構成としては Mastodon 本体とデータベースを分けるようにした。
ラズパイ自体が非力なので少しでも分散できればいいかなと。
あとはメディアは増えることがわかってたので、Amazon S3 を素直に使う。

OS は Ubuntu 18.04 LTS。
あえてラズパイで Ubuntu でやることに。
このあたりは思った以上にできた。
ただ ARM に対応していないものがちょこちょこあって今後のアプデを考えると、もしかすると少し面倒になるかもしれない。

まあ、とはいえおひとりさまだし、つぶれても何してもいいから(笑)
とっても気が楽。

構築していて気を付けたところは…
1. コストをあまりかけない
2. ラズパイのメモリ少ないので Swap をそれぞれ 4GB くらいにした
3. セキュリティは気になるので root ログインやパスワードログインはなし、SSH も外からできないように、ファイヤーウォールと Fail2ban (外からつながないけど)とかできるだけ設定
4. SD カード壊れやすいので DB には USB メモリを使う(SSD とかでないとそんな変わらない説もある)

しかし初めて PostgreSQL を外部から繋ぐ設定に戸惑ってしまって、動いているけど大丈夫なのか不安だったりもする。
pg_hba.conf の設定をつなぎ元の本体側の IP アドレスから全部通すようにしたらできた。

Mastodon のインストールについては Ubuntu にしたこともあってスムーズに進む。
今の Mastodon ってセットアップあって対話形式でできるんだね。
でもちょっとわかりにくいけど…

このセットアップで外部 DB の設定も S3 の設定も意味がわかればできる(笑)
最初 DB への接続できなくてエラーになりまくって、しかもセットアップ途中で止められないしどうしようと思ったら最後に今の設定を .env.production に書き込むかを NO にしたら Bye って終了してくれた。
あとは S3 への接続が少し英語がわからなくて、構築してから .env.production いじったけどね。
今は ENDPOINT を HOST って項目で設定しているよう。
これが ALIAS_HOST と勘違いしてしまって。
まあでもそれ以外は大きな問題もなくできた。

セットアップ終わってから少しつまずいたのは nginx の設定かな。
/etc/nginx/sites-available/mastodon の中の example.com を自分のドメインに変更するのを忘れないようにするのと、SSL 取得してから再度この中の SSL 設定のコメント外してドメイン変えるってとこかな。

ここできれば完了。
しばらくはこれで様子見かな。

おひとり様ラズパイ鯖「ごまめ丼」