2018年2月11日日曜日

Mastodonを1つのマシン上で複数動かす方法 (Non-Docker版)

はじめに

こんにちは。Mastodonインスタンスを運用していると、もう一つインスタンスが欲しくなることってありますよね。

えっ、そんなことないって?
そんな貴方も、この記事を読めばきっと欲しくなるはずです。(謎)

ポイント

Mastodonのliveフォルダを分ける()
PostgreSQLのDBを分ける
nginxの設定を分ける
Redisの名前空間を分ける
systemdの設定を分ける(環境変数でポートを変える)

最終的な自分の構成

Mastodonの構成


実際の設定

基本的にはMastodon公式のProduction Guideに沿って設定を行います。

documentation/Production-guide.md at master ・ tootsuite/documentation
https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Production-guide.md

設定のうち次の項目は公式ガイド通りに設定を行ってください。
もちろん、すでにインスタンスを立ち上げている方は不要です。
  • DNS
  • Dependency Installation
  • Yarn Repository
  • Various Other Dependencies
  • Dependencies That Need To Be Added As A Non-Root User
ここから一部、ガイドと異なる部分があります。

node.js And Ruby Dependencies

cd ~
git clone https://github.com/tootsuite/mastodon.git live2

ディレクトリ名はお好みで

PostgreSQL Database Creation

CREATE USER mastodon2 CREATEDB;

ユーザ名はお好みで。
自分の場合はCloud SQLを使いました。

nginx Configuration

2個目の設定ファイルを用意します。

root /home/mastodon/live2/public;
(HTTPとHTTPSの2箇所)


『location @proxy』のスコープで
proxy_pass http://127.0.0.1:3001;


『location /api/v1/streaming』のスコープで
proxy_pass http://127.0.0.1:4001;

ポート番号もお好みで。

Let's Encrypt

Automated Renewal Of Let's Encrypt Certificate

ガイド通りに操作/設定してください。

Mastodon Application Configuration

cd ~/live2

『.env.production』内に次の設定を入れてください。

DB_USER=mastodon2
DB_NAME=mastodon2_production
REDIS_NAMESPACE=live2

名前空間も、もちろんお好みで。
ちなみに設定しないとRedisの中で、別々のインスタンスのデータがごちゃ混ぜになります。(なりました)

自分はここで、Cloud Storageの設定も行いました。
バケットは1つ目のインスタンスと別のものにしましょう。

Mastodon systemd Service Files


/etc/systemd/system/mastodon2-web.service
WorkingDirectory=/home/mastodon/live2
Environment="PORT=3001"

/etc/systemd/system/mastodon2-sidekiq.service
WorkingDirectory=/home/mastodon/live2


/etc/systemd/system/mastodon2-streaming.service
WorkingDirectory=/home/mastodon/live2
Environment="PORT=4001"

サービス有効化/起動

systemctl enable /etc/systemd/system/mastodon2-*.service

systemctl start mastodon2-*.service

systemctl status mastodon2-*.service


おわりに

ちなみに自分のインスタンスは次の通りです。
https://mst.ongstar.jp/about (メイン)
https://mst.trynary.net/about (実験用)

それでは楽しいMastodonライフを!

0 件のコメント:

コメントを投稿