というわけで、僕もお一人様用Mastodonサーバーを立ててみました。こういうのを見ているとすぐに手を出したくなる性格はどうしようもないですね。時間があるわけでもないのに。
でも、インストールもせずに色々言うのもあれですし、インストール経験済みだからあーだこーだ知ったかぶれるってのもありますしね。
環境としては、現在一年間限定で使える無料環境を提供しているGCP上のDockerで構築してみまして、もうすでに巷にありふれてる導入マニュアルを見ながらやればそれほど問題になるところは無かったです。
ただGCP特有っぽいけど一点躓いたところがあって、Proxyサーバーたてて3000→80の設定を入れるまでは外部からつなぐことが出来ませんでした。GCP関係のページをみるとHTTPまでの設定だけが多く、その状態で接続できてそうなのでGCPの問題なのかMastodonの問題なのかはわかりませんが。
ちなみに、 lsof -i
で見てみるとIPv6でのみListenしている状態でした。Firewallの設定を入れて、元からあるHTTPと見かけは同じように設定したんですが、なぜか繋がらず...。Proxyを入れたらつながるようになったので、HTTP(S)ではIPv4でListenしてて内部はIPv6で折り返しているという状態でしょうかね。良くわかりませんが、
その際は、 .env.production
のポート指定を下記のように変更すると良かったです。
Services:
web:
ports:
- "127.0.0.1:3000:3000"
もしGCPで躓いた人がいたら、上記の変更を行ってからProxyの設定までやってみることをおすすめします。
ちなみに、Proxyの設定については 公式のページ にNginxの設定例が乗ってましたので、それをコピペして使うのが良さそうです。
HTTPS化については、Cronでの更新まで設定している「 さくらの VPS + CentOS7 で 俺専用 Mastodon インスタンスを立ててみた話 」が分かりやすかったです。
そして気になるリソースですが、さすがRailsというだけあってメモリバカ食いします。
ガイドが入っているところがちょうとMastodonを再起動させたところなのですが、停止したところで42%、起動させたところで80%になります。0.6GBのインスタンスなので、Debianが250MBで動いてるのに対して、Mastodonだけでも250MB必要ってところでしょうか。まあ、RailsだけではなくPostgreSQLなども込みですから、そんなものかもしれませんが。
今回は f1-micro
でつくったのですが、 g1-small
以上のほうが実用的です(実際GCPからも自動提案で g1-small
のお誘いが表示されています)。
しかし、いい時代ですね。OSインストール済みのインスタンスがすぐに作られて、必要に応じてスナップショットも保存できるし。おまけにStackdriverでモニタリングも出来る。最高ですわ。
他のページに感化されて個人用インスタンスたててみたけど、なかなか気分が良い。
プロダクト別にアカウント作ってWebページと連携させて運用すると、もっとそれっぽくなりそうな感じがする。