Docker

CentOS7にマストドンのインスタンスを立ててみた

2017/04/22


流行りに流行っているマストドンのインスタンスを数日前に立てました。

ハマったところなど丁寧に説明していきます。

環境

さくらのVPS
CentOS 7.3
ドメイン取得済み
基本的なコマンドはインストール済み(gitなど)

マストドン環境構築

Docker,Docker-composeのインストール

dockerはcentos7からyumでインストールできます。

dokcer-composeはgithubからインストールします。 最新バージョンではないので、最新のものがいいという人は、バージョン番号を変えてください

dockerの自動起動と起動

マストドンの設定

sendgridやsparkpostの設定しかなかったのでメールの設定で非常に苦労しました(そんなサービス知らない。。)メールはgmailで送信するようにしています。

マストドンのインストール

mastodonに必要なファイルをインストールします。場所はどこでもいいです。以降は/usr/local/usr/mstodonで作業しています。

env.productionの設定

mstodonの設定はこのファイルでしています。場所はインストールしてきたmastodonディレクトリの中です。

ドメインとSSLの設定

ドメインは取得済みのものを記載してください。SSL 証明書に関しては後で Let's Encrypt を使用して行います。

メールの設定

googleのアカウント設定から、「2 段階認証プロセス」をオンにしてアプリパスワードを生成する。アプリパスワードはメモしておく。

SMTP_LOGIN=はgmailのアカウントを記述してください。

rake secret key の設定

下記コマンドを実行すると鍵が生成されるので3回じっこうします。

3つのkeyを.env.productionに記載します。

DBの設定

DB の設定などをして、Mastodon を立ち上げます。
任意のユーザー名、DB 名、パスワードを設定します。

Dockerではコンテナ内の変更は永続化されないため、インスタンスの再起動やコンテナの再生成時にDBやRedisが全て吹き飛びます。永続化されるようにdocker-compose.ymlの中身のコメントアウトを消して別途ディスクにボリュームとしてマウントします。

.env.productionファイルの編集が終わればbuildして立ち上げます・

立ち上がったら、DB コンテナに入って設定を行います。

DB_USERと DB_NAME DB_PASS はそれぞれ先ほど.env.productionファイルのものに読みかえてください。

exitコマンドを打ってCentOSに戻ってきたら下記のコマンドを順次じっこうしてください。

NginxとSSL証明書

証明書の作成

SSL証明書の作成は以前記事にしているのでそちらを参照してください。
証明書は /etc/letsencrypt/live/[指定したドメイン名]/ に保存されます。保存されるのは下記の 4ファイル。

[Let's Encrypt]CentOS7でSSL証明書を無料でインストールする
Let's Encrypt Googleが非SSLサイトよりSSLサイトを優先するとかいう噂があるので、今更ながらこのサーバにSSL証明書をインストール...

Nginxの設定

Nginxのインストール

nginxのconfファイル編集

nginxのconfファイルは公式のものをまるっとコピーしました。 example.comとなっているところをmstdn.daichan.clubに変更したのと鍵の指定ファイルを変更したのみです。各自自分の取得したドメインに変更してください。

dockerとnginxを再起動したらドメインにアクセス。下記のページが表示されて登録メールが送信されたら成功です。

マストドンの管理

管理者権限の付与

登録したアカウントに管理者権限を付けます。サーバに戻り、下記のコマンドで先ほど作成したアカウントに管理者権限を付与します。
docker-compose run --rm web rails mastodon:make_admin USERNAME=username

マストドンに戻って、設定画面を開くと、管理者用メニューが表示されます。

tootsuite/documentation
Full documentation repository for Mastodon

-Docker
-, ,