Mastodonの自宅鯖運用について
Mastodon の自宅鯖運用
(主に Twitter 改悪を契機として) これまで何度か Mastodon ブームがあったため、存在を知っている人は多いと思う。 今更説明しないくてもいい気がするので、 ここ とかをご参照ください。
脱 Twitter というモチベだけで Mastodon のサーバを自宅運用している。数年前は VPS を利用していたが、維持費がバカにならないため現在は使っていない。その自宅サーバだが、ここ1ヶ月くらいで以下のように環境移行を繰り返した。
- Raspberry Pi 4B
- Dell の適当 PC
- Mac Pro (2013)
Raspberry Pi 4B から Dell の PC へ
元々は Raspberry Pi 4B (RAM 8GB) で Mastodon を動かしていた。Arm プロセッサで省電力、また RAM も 8GB あれば充分だと思っていたためだ。前者 (CPU の性能) について、目論見が外れることとなる。
ぶち当たった問題は、周りの人の投稿が30分程度遅延して表示されるというものだった。自分だけ30分前の世界に生きているのである。
Mastodon では、Twitter でいうところのフォローフォロワーといった概念だけではなく、 サーバ間の繋がりによっても表示される投稿1 が変わってくる。
連合タイムラインというものに、リレーサーバを介した投稿が集まる。結果、フォローしていない人の投稿も見ることができる。
裏で非同期処理をしているのが Sidekiq というものらしく、 このエントリには以下のように表記されていた。
Ruby 製のバックグラウンドジョブフレームワーク Sidekiq
Raspberry Pi 4B ではこの Sidekiq のキューを処理しきれず、夜間のピーク時、前述のように周りの方々の投稿が30分遅れで TL に表示されるような状態に陥った。
そこで、今後の環境移行のしやすさ、運用保守性を高めることを目的とし、手持ちの Dell の適当 PC に Ubuntu Pro をインストールし、Docker を使って Mastodon サーバを運用するようにした。
このときの参考リンクは以下
-
- 元からオブジェクトストレージを使っていたため、DB のバックアップとリストアだけで済んだ
勝手 Mastodon tootctl リファレンス (移植版)
- Docker 環境での tootctl は /path/to/live/ にて、
docker compose run --rm web bin/tootctl ~~~
と実行することに注意
- Docker 環境での tootctl は /path/to/live/ にて、
Dell の PC から Mac Pro (2013) へ
Dell の PC での運用を2週間程度行ったが、 この運用での難点はファン音だった。静音 PC でもない普通のデスクトップ PC だったため本当にうるさかった。 そこで、中古で買って転がしていた Mac Pro (2013) にも同様に Ubuntu Pro をインストール、Docker 環境を構築した。macOS で使っていたとき、アイドル時に静かだったことを思い出したためである。ちなみに、Mac Pro (2013) は macOS Monterey でサポートが切られている。悲しい。
結果としては大正解だった。ファンは静かで冷却性も高い。なんなら排出される空気がキンキンに冷えている。 筐体にはゴミ箱という不名誉なあだ名が付いてしまったが、流石は Apple。
コメント
コメントを投稿