個人用mastodonサーバーを構築する
ニンジャスレイヤーのmastodonサーバーができたようですが、私はmastodonアカウントを持っていないのでフォローできませんでした。
上記記事より引用
あなた自身でサーバーを立てて象になることもできますが、それにはある程度のUNIX知識が求められます。
ではせっかくなので、個人用にサーバーを立てて象になってみました。
なおUNIX知識が求められるそうですが普通にLinux(CentOS7)で構築します。
用意したもの
mastodonはAWS S3に対応しているそうなので、特に理由が無ければサーバーもAWS EC2で用意するのが無難だと思います。 真面目にやるならAWS ECS+S3+ElastiCache+PostgreSQL on RDSみたいな構成になるのではと思いますが、今回は個人用なので適当です。
サーバーにはdockerやnginxなど必要なものを入れておきます。
アプリケーションサーバーの準備
上記記事などに沿ってdockerイメージのビルド、RailsのアセットプリコンパイルとDBマイグレーションまで終わらせます。 ちょっと時間がかかりますが、気長に待ちます。
最終的に、$ docker-compose up -d
すればOKです。
SSL証明書の取得
この作業のときにサーバーの443番ポートをパブリックに開放する必要があります。 (逆に、このとき以外はファイアウォールで必要なアクセス元以外を閉めておけば個人利用には問題ありません)
Let'sEncryptの証明書は3ヶ月で切れますが、3ヶ月も経てば飽きて辞めるか本格運用のためイチから作り直すと思うので自動更新とかはしなくて良いと思います。
メールサーバーの設定
個人利用ならばSMTPサーバーは用意しなくてもDBを直接操作でOKみたいですが、今回はせっかくなのでSendGridを使ってメール送信設定をします。
SendGridのアカウント情報を.env.production
に書いておきます。
シングルユーザーモードに設定
上記を参考に、自分のアカウントに管理者権限を付けて、 .env.production
のSINGLE_USER_MODE=true
をコメントインし、docker-composeの再ビルドを実行します。
ファイアウォールの設定
今回は個人の検証用途なので、443番ポートは個人のIPアドレス以外に対して基本的に閉じています。IDCFクラウドのIPアドレス仮想ルーターのファイアウォールで設定しています。
他に、フォローしたいアカウントのあるサーバーからのアクセスを許可する必要があります。今回紹介したようなシンプルな構成だとドメインのAレコードIPとゲートウェイIPアドレスは一緒だと思うので、たとえばニンジャスレイヤーをフォローするには$ dig a dhtls.net
した結果をファイアウォールの設定に貼り付けていますが、この運用には限界があります。
個人用Mastodonでニンジャスレイヤー読めている。
— suzuki.sh (@suzukiterminal) 2017年4月23日
結局、実況が無いのでTwitter見ることになるけど pic.twitter.com/TRE3JQqCUk
本格的に使いたいならば443番ポートをパブリックにできる環境を用意する必要があると思います。