mastodon
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
mastodon [2021/03/11 01:11] – [minio] araki | mastodon [2022/11/16 05:04] (現在) – [更新] araki | ||
---|---|---|---|
行 29: | 行 29: | ||
そこで、本サイトは手作業で全てを構築することとした。 | そこで、本サイトは手作業で全てを構築することとした。 | ||
+ | |||
+ | その後、さすがに Vine Linuxを使い続けるのは困難になり Ubuntuへ、また、Raspberry Pi2Bはさすがに非力となったため、Tinker Boardを経て、結局x64の Ubuntuへと移行し、Ubuntu(x64)の二台で、リバースプロキシー+Mastodon とバックエンドのサービスとをそれぞれ担い運用している。 | ||
+ | |||
+ | なお、今現在も Dockerを利用することなく、構築している。 | ||
===== Nginx ===== | ===== Nginx ===== | ||
行 42: | 行 46: | ||
なので、Nginx.orgのレポジトリを使って導入する。 | なので、Nginx.orgのレポジトリを使って導入する。 | ||
- | レポジトリーをaptに追加するに先だち、キーを導入する。 | + | レポジトリーをaptに追加するに先だち、キーを導入する。((キーに対してgpg --dearmorするとしているサイトもあるが、しなくていい。))((apt-keyは非推奨になったので使わない。)) |
< | < | ||
- | # wget http:// | + | # sudo curl -fsSL https:// |
- | # apt-key add nginx_signing.key | + | |
</ | </ | ||
+ | |||
ARM用のバイナリは提供されていないようなので、sourceのレポジトリだけを追加する。 | ARM用のバイナリは提供されていないようなので、sourceのレポジトリだけを追加する。 | ||
+ | x64環境の場合は普通にバイナリパッケージを取得すればいい。 | ||
/ | / | ||
< | < | ||
- | deb-src http:// | + | deb [signed-by=/ |
+ | deb-src | ||
</ | </ | ||
行 72: | 行 78: | ||
==== 設定 | ==== 設定 | ||
- | / | + | / |
なお、minioをMastodon本体と別のサーバ上に構築するのでなければ、証明書はオレオレ証明書でも問題は無い。((詳しくは後述するが、オレオレ証明書で minioとMastodonとを別のサーバ上に構築すると画像へのアクセスのためのSSL証明書が信頼できないため、アバターを含めて一切の画像が表示されないことになる。)) | なお、minioをMastodon本体と別のサーバ上に構築するのでなければ、証明書はオレオレ証明書でも問題は無い。((詳しくは後述するが、オレオレ証明書で minioとMastodonとを別のサーバ上に構築すると画像へのアクセスのためのSSL証明書が信頼できないため、アバターを含めて一切の画像が表示されないことになる。)) | ||
+ | |||
+ | なお、古い実装((3.5より前?))では、mstdn_streaming がなかったので streaming についても、mstdn_handler に渡していたが、現在は変わっているので、古い実装から新しいバージョンへ移行する際には注意が必要である。((本体の置き場所も prodではなくliveになっていたりする。prodのままにすることもできるが。)) | ||
< | < | ||
upstream mstdn_handler { | upstream mstdn_handler { | ||
- | server | + | server |
+ | } | ||
+ | |||
+ | upstream mstdn_streaming { | ||
+ | server 127.0.0.1: | ||
} | } | ||
行 112: | 行 124: | ||
| | ||
- | root / | + | root / |
gzip on; | gzip on; | ||
行 152: | 行 164: | ||
| | ||
| | ||
- | | + | |
| | ||
| | ||
行 225: | 行 237: | ||
< | < | ||
# su - nginx | # su - nginx | ||
- | $ git clone https:// | + | $ git clone https:// |
- | $ git clone https:// | + | $ mkdir ~/ |
+ | $ git clone https:// | ||
+ | $ git clone https:// | ||
+ | $ echo bundler > ~/ | ||
+ | $ echo byebug >> ~/ | ||
</ | </ | ||
行 577: | 行 593: | ||
# mkdir / | # mkdir / | ||
# cd mastodon | # cd mastodon | ||
- | # git clone https:// | + | # git clone https:// |
# chown -R nginx.nginx / | # chown -R nginx.nginx / | ||
</ | </ | ||
- | 当サイトでは、/ | + | 当サイトでは、/ |
実行権限は nginxにすることにした。 | 実行権限は nginxにすることにした。 | ||
行 588: | 行 604: | ||
< | < | ||
# su - nginx | # su - nginx | ||
- | $ cd / | + | $ cd / |
$ gem install bundler | $ gem install bundler | ||
$ bundle install --deployment --without development test | $ bundle install --deployment --without development test | ||
行 652: | 行 668: | ||
Type=simple | Type=simple | ||
User=nginx | User=nginx | ||
- | WorkingDirectory=/ | + | WorkingDirectory=/ |
Environment=" | Environment=" | ||
Environment=" | Environment=" | ||
行 672: | 行 688: | ||
Type=simple | Type=simple | ||
User=nginx | User=nginx | ||
- | WorkingDirectory=/ | + | WorkingDirectory=/ |
Environment=" | Environment=" | ||
Environment=" | Environment=" | ||
行 692: | 行 708: | ||
Type=simple | Type=simple | ||
User=nginx | User=nginx | ||
- | WorkingDirectory=/ | + | WorkingDirectory=/ |
Environment=" | Environment=" | ||
Environment=" | Environment=" | ||
行 707: | 行 723: | ||
< | < | ||
# su - nginx | # su - nginx | ||
- | $ cd / | + | $ cd / |
$ RAILS_ENV=production bundle exec rails db:setup | $ RAILS_ENV=production bundle exec rails db:setup | ||
$ RAILS_ENV=production bundle exec rails assets: | $ RAILS_ENV=production bundle exec rails assets: | ||
行 792: | 行 808: | ||
< | < | ||
- | $ RAILS_ENV=production bundle exec rails db:migrate | + | $ SKIP_POST_DEPLOYMENT_MIGRATION=true |
</ | </ | ||
行 798: | 行 814: | ||
$ RAILS_ENV=production bundle exec rails assets: | $ RAILS_ENV=production bundle exec rails assets: | ||
</ | </ | ||
+ | |||
+ | DBのマイグレーションは二段階に分けて行うようになっています。 | ||
+ | プロセスを再起動する前の分と、再起動後の分とをSKIP_POST_DEPLOYMENT_MIGRATIONという環境変数で切り替えて行います。 | ||
< | < | ||
行 803: | 行 822: | ||
</ | </ | ||
+ | < | ||
+ | $ RAILS_ENV=production bundle exec rails db:migrate | ||
+ | </ | ||
==== メモ | ==== メモ | ||
mastodon.1615425114.txt.gz · 最終更新: 2021/03/11 01:11 by araki