一時的に盛り上がっていたMastodon、小野島さんも登録してみたとのことでしたがMastodonについては自分でもインスタンスが構築できるとのことで、構築した!という記事が一気に増えましたね。そこで私も便乗してインスタンスを作ってみました。※テスト的に作ったので短めに公開して終わらせようかと思っています。※サイトは私個人が立ち上げたのでAkrosとは直接関係はありませんが、ちゃんと動きます。https://mast.webschoolchallenge.comテストが終了したので閉鎖しました。いうか、Mastodonを構築したかったのではなく、サーバー周りをあまりいじっていなかったのでちょうどいい機会なので構築ついでに少しいじろう、と思ったのがきっかけです。Mastodonは直接各ソフトウェアなどをインストールして構築する人とDockerのコンテナに構築する人がいるようなのですが、今回Mastodon環境を構築することがメインの目的ではない(とは言いつつブログ掲載のため急ぎましたが)というのとDockerでコンテナ化した複数ホスト環境を作ってみたい、というのもあってDockerを使用しました。※今回の範囲の技術的な説明には適切でないものも含まれているかもしれません。見て頂ければと思います。目次CentOS7+nginx+HTTP/2+DockerCentOS7nginxHTTP/2Dockermastodon各作業一部抜粋です。CentOS7+nginx+HTTP/2+Docker今回は主に上記の環境で構築しました。さくらレンタルサーバーのアカウントを所有していたのでさくらVPSで構築しています。CentOS7https://www.centos.org/参考書でCentOS7の本を見かけたのですが、CentOSはこれまでも続いてきているのでなぜCentOS7用に本がでるのか、と思っていたんですね。今回Mastodonを構築するにあたりCentOS7を少し触ったのですが、なんとなくわかりました。私が触った範囲だけでも、iptablesではなくfirewallがデフォルトになっていたり、サービスコマンドがserviceではなくsystemctlになっていたり(chkconfigも使えますがsystemctlに飛んでいます)。そもそもカーネルのバージョンから異なるのでいろいろと変更が入っているんですね。CentOS6系までしか触れていない方、長くCentOS6まで触れてきた方は少してこずるかもしれませんよ。nginxhttps://nginx.org/今回apache2.4系でHTTP/2対応をしてみようかと思っていたのですが、Mastodonがnginxがよさそうだったし、コンテナ化することでnginxを起点に振り分ける環境も作りやすそうだったのでnginxを使用しました。Mastodon環境はDockerのコンテナで作られていて、80,443ポートにアクセスが来たらnginx経由でアクセスするようになっています。ここに、通常の例えばWordPressを入れた別サブドメインのホストを立ち上げるとか、コンテナを作って立ち上げるとかしてみようかと考えています。HTTP/2https://ja.wikipedia.org/wiki/HTTP/2HTTP/2化は単純に読み込みが速いというところを体感したくていれました。ALPN対応のためopensslを1.0.2系にしなければならなかったので入れたのですが、nginxをソースからコンパイルしなければいけなかったようで、だいぶ環境を作った後に気が付いたためopenssl1.0.2系対応はまだしていません。一応HTTP/2対応にはなっていますがALPN対応にはなっておりません。入れなおして対応させてみたいと考えてます。Encryptを使用させて頂きました。期限切れにならないようにcronにシェルプログラム登録もしています。Dockerhttps://www.docker.com/私はこれまでどちらかというと開発環境でVirtualBox+Vagrantを使うことがあったで、Dockerをあまり使っていませんでした。Dockerは上記環境と違い、Docker自体が1つのプロセスとして、のように動くので、1プロセスの中にコンテナの中身が動いているようなイメージといったような感じでしょうか(ちょっと違うかもしれませんが)。コンテナで動かす、という形を実装するためDockerを導入しています。DockerコンテナのおかげでMastodon自体の構築は比較的簡単に行うことができました。DockerとDocker-composeを使用しています。mastodonhttps://github.com/tootsuite/mastodonこちら本体ですが、GitHubに用意して頂いているソースから構築できるようです。環境さえ構築できていれば細かいソフトなどはすべてそろっていて構築のための設定ファイルの更新ととちょっとした設定を行えば出来上がってくれます。RailsとPostgreSQLなどで作られているようですね。メールについてはPostfixだと迷惑メールになってしまうと困るので「SparkPost」などを使用するとよい、という意見が多かったため、同じようにしています。