注意:Javascriptが有効でないため、一部コンテンツが表示できません。
こんにちは、たかしーです。
前回の記事でも書いた通り、先日から行っている
Mastodon(マストドン)の構築について書いていきたいと思います。
(dockerのインストールや、Mastodonソースのダウンロードについては
前回の記事をご覧ください。)
git cloneを実行したディレクトリの中にmastodonフォルダができているはずなので、
としてmastodonフォルダの中に入ります。
デフォルトでは、redis,DBの変更はエフェメラル(一時的)で、コンテナを停止するとデータが消えてしまうようです。
今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法 - jtwp470’s blog
永続化できるように先にdocker-compose.ymlを編集しておきます。
これで、コンテナを停止、削除してもデータは保持されます。
次にMastodon本体の設定を行っていきます。
Mastodonでは、デフォルトでは5つのコンテナ
mastodon_web_1
mastodon_sidekiq_1
mastodon_streaming_1
mastodon_db_1
mastodon_redis_1
を使用して動作する構成になっていますが、環境変数を用いることで、1つの設定ファイルを編集するだけで必要な設定がすべてできるようになっています。よく出来てますね。
環境変数設定ファイルを編集するにはまず、mastodonフォルダ内の
.env.production.sample
を
.env.production
という名前でコピーします。
設定ファイルの中身をのぞいてみます。
こんな中身になっています。
.env.productionの方を自分のサーバー環境に合わせて以下のように書き換えていきます。
設定ファイル中の
PAPERCLIP_SECRET
SECRET_KEY_BASE
OTP_SECRET
の3項目にはキーを生成してセットする必要があります。
この部分はそのままにして、一旦保存し、一度コンテナイメージのビルトを行います。
以下のコマンドを実行します。
3項目別々のキーが必要になりたるため、
docker-compose run --rm web rake secret
を3回実行してキーを3つ生成します。
生成した3つのキーを
PAPERCLIP_SECRET
SECRET_KEY_BASE
OTP_SECRET
のそれぞれの"="の後につなげて挿入しておきます。
これで設定ファイルの準備は完了です。
DBとアセットの準備をします。
これで、起動準備は完了です。
実際にコンテナを立ち上げてみます。
これで、Mastodon本体が立ち上がるはずです。
docker-compose up -d
を実行したサーバーのポート3000番でhttp(s)のアクセスを待ち受けるようになります。
したがって、このままの状態ではアドレスを打っただけではうまくブラウザからMastodonに接続できません。(サーバーでGUIが使える場合は ブラウザで
https://localhost:3000 とすればテストすることはできるはず。)
Mastodonを通常のサイト通り443(80)番ポートで見ることができるようにするためには、"リバースプロキシ"を設置して、通信を仲介させる必要があります。
次回は公式でも推奨されている"Nginx"を使ったリバースプロキシを構築してみたいと思います。
------------------------------------------
参考サイト:
今何かと話題のマストドン(mastodon)鯖を自分用に無料で立てる方法 - jtwp470’s blog