CentOS7で巷で流行りのMastodonのインスタンスを10行程くらいで構築してみた


最近巷でなにかとプチブームになっているMastodonですが、日本では大学院生が.jpドメイン(https://mstdn.jp/)を取得し、最初は自宅鯖で運用していたら相当負荷がかかってさくらのクラウドに移行するなどが話題になり、アーリーアダプターな人の中で流行っているわけですが、StudioAKのシステム担当としても当然Mastodonは気になったのでインスタンスを構築することにしたGucciです。

公式のGihubのReadMeに書かれているのは

Requirements

のようで、仕様としてはいつも使っているLAMPの中で

Apache=>Nginx

MySQL=>PostgresSQL

に変更する必要があるようですが、あとは特別なものはないのでささっとできてしまうんじゃないかなぁと思います。

ReadMeを見ながら構築していくわけですが、最初は自鯖に構築してましたが、DNS周りでなにかとめんどくさいのでさくらのクラウドで構築することにしました。

Mastodonが流行る速度が速かったせいでいろいろなところでインスタンスの構築方法は日本語でも公開されていますが、できるだけ簡単な方法を書いていきます。


環境

で、進めていきますが、とりあえずさくらのクラウドで1つゼロベースからCentOS7を準備します。

特にCentOS7にしなければいけない理由はなく、公式的にはUbuntuがおすすめなようです。

CentOS自体は日ごろ使い慣れているので選んだことと、7を選んだの後述しますが、Let’s Encryptさんを使ってSSL化するためにPythonのVerで2.7がほしかったのでCentOS6ではなくCentOS7を選択しました。


必要な知識

この辺ですかねぇ

こんなものを作ろうと思うくらいなのでCentOSの基本知識なんかはみなさんお持ちかと思いますが、重要なのはDockerの知識です。


とりあえずまずインストールしておくもの

あとはcronだったりvimだったり、CentOSの基本的なものは各自でインストールしておいてください

ReadMeを見るとRubyやらNode.jsやらいろいろ書いてあるのですが、Dockerを使うと一緒にセットアップしてくれるので気にしないようにしましょう。

1.yumをアップデートする

うん、いつものまじないです

 

2.Gitをインストールしてみる

特に説明する必要もないですね

普通にyumでインストールします

 

3.Mastodonをインストール

さっきインストールしたGitを使ってインストールします。

この時に、DocumentROOTになる場所にインストールしましょう

 

4.Nginxをインストール

今回はApacheの代わりに使います。

特にバージョンは気にしなくてもいいかもしれませんが、どうせな最新バージョンにしておきたいので、まずリポジトリを登録します。

内容は

こんな感じですかね

後はこれを使ってyumでインストール

簡単ですね

 

5.Docker/Docker-compseをインストール

コンテナを作って仮想かするパッケージですが、最近これを使うことが増えてきているようですので、やったことない人は勉強するといいかも?

しかし、インストールだけなら簡単です。

まずはDockerですが

Dockerには種類があるようでCEというのは無料版だそうなのでこちらを使いましょう

次にDocker-compse

まぁそんなにむずかしくはないかな?

6.Firewallの設定

http,https,仮想用の3つのポートを解放します

最後にFirewallのReload忘れずに!!

個人的にですが、この時よくreloadの前の–を忘れて怒られますw

 

7.Mastodonの設定

ここからMastodonの設定に入るわけですが、Dockerを使うのでcloneしたディレクトリに移動します

その後、サンプル設定ファイルをコピーして設定ファイルを作ります。

修正箇所はいくつかありますが、

ドメインを設定します。

今回はSSL化するのでLOCAL_HTTPS=trueにしますが使わない場合はfalseにしてください。

またDBを永続化するためにdbとredisのところのコメントアウトを外します。

SMTPの設定はSparkPostで取得した情報を入力します

PAPERCLIP_SECRET,SECRET_KEY_BASE,OTP_SECRETの3個必要なので、下記のコマンドを3回実行して結果を.env.productionの各項目に表示結果を記載します。

1回目は少し時間がかかりますので気長にお待ちください。

 

8.Nginxの設定

設定ファイルは公式の情報をそのまま持ってきます。

vimの置換機能を使ってドメインを変更します。

rootもDocumentROOTに変更します

 

9.SSL証明書の取得

90日間ですが無料でSSLの証明書が取得できます。

Nginxの設定は特に変更しなくてもそのままでSSLできています。

 

10.あとはいろいろ立ち上げる

はいこれで終了です

あとはブラウザなりなんなりでドメインのアクセスするとMastodonが起動しているはずです