Help us understand the problem. What is going on with this article?

マストドン構築2日目 on AWS

経緯

前回書いた マストドン構築1日目 on AWS の続きです。

半年ほど前に AWS & Docker ド素人の状態から
なんとかインスタンスをたてて運用していました。

EC2の上にDockerで本番運用していましたが、だんだん辛くなってきたのでDockerから降ろすことにしました。
その作業ログです。

環境 / ツール

macOS Mojavi 10.14.6
AWS

参考にしたもの

マストドンGitHub
https://github.com/tootsuite/mastodon
公式ドキュメント
https://docs.joinmastodon.org/admin/install/

サーバー内での作業

まずサーバーにsshログインします。

$ ssh ubuntu@3.112.***.*** -i ~/.ssh/hoge.pem

作業に入る前に、とりあえずrootユーザーになります。

sudo su -

そして、mastodonユーザーに切り替えます。

# su - mastodon

マストドンのセットアップ

マストドンのソースをgit cloneして来ます

$ git clone https://github.com/tootsuite/mastodon.git live && cd live

最新の安定したリリースをダウンロードします。

$ git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)

ちなみにバージョンを指定する場合は、以下のやり方で指定します。
例:2.9.3を指定する場合。

$ git checkout v2.9.3

RubyとJavaScriptの依存ファイルをインストールします。

$ bundle install -j$(getconf _NPROCESSORS_ONLN) --deployment --without development test
rbenv: version `2.6.1' is not installed (set by /home/mastodon/live/.ruby-version)

なんと、マストドン2.9.3はRubyの2.6.1でないと動かないっぽいです。
(以下、最新版をインストールしている方には不要の工程です)
2.6.1をインストールしなおします。

$ RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 2.6.1
$ rbenv global 2.6.1

設定ファイルの編集

対話型セットアップウィザードを実行します。

RAILS_ENV=production bundle exec rake mastodon:setup

対話型セットアップウィザードとは
一問一答式でmastodonリポジトリの.env.productionにある設定ファイルの中身をセットアップすることが出来ます。
もし間違えてしまっても、メールサーバーの設定などは後から.env.productionで編集する事が可能です。

※新規でインスタンスを立てる場合は先にメールサーバーなどの設定が必要です。
ちなみに、わたしはAWSの勉強のために SES(Simple Email Service)を利用しましたが
よほどAWSを使いたいか大規模運営をする予定でなければ、送信制限解除の申請などやることが多くなるためお勧めしません。
無料メールサーバーではmailgunなどが良いかもしれません。

以下、聞かれる内容と回答例です。

Your instance is identified by its domain name. Changing it afterward will break things.
Domein name : uneune.shiosyakeyakini.info(ドメイン名を入力します)

Single user mode disables registrations and redirects the landing page to your public profile.
Do you want to enabled single user mode? no (お一人様で使う気はないのでno)

Are you using Docker to run Mastodon? no (今回はDockerを使わずに運用するのでno)

PostgreSQL host: /var/run/postgresql (デフォルト)
PostgreSQL port: 5432 (デフォルト)
Name of PostgreSQL database: mastodon_production (デフォルト)
Name of PostgreSQL user: mastodon (さきほど設定したもの。デフォルト)
Password of PostgreSQL user: (パスワード設定している場合は入力)

Database configuration works! 🎆

Redis host: localhost (デフォルト)
Redis port: 6379 (デフォルト)
Redis Password: (パスワード設定していないので空欄)

Redis configuration works! 🎆

Do you want to store upload file on the cloud? No (よくわからないのでno)

Do you want to send e-mails from localhost? No (AWS SESのメールを使いたかったのでNo)
SMTP server: email-smtp.us-west-2.amazonaws.com (SESのメールサーバー)
SMTP port: 587 (SESのメールサーバーのSMTPポート)
SMTP username:  (メールアカウント)`SMTP_LOGIN=`の内容
SMTP password: (ひみつ)
SMTP authentication: plain (デフォルト)
SMTP OpenSSL verify mode: none (デフォルト)
E-mail address to send e-mails from: don.suwa3.me@gmail.com
Send a test e-mail with this configuration right now? Yes (試しに送る=>パスワードを間違えていて送れなかった。)
Send test e-mail to: (よく使うメールアドレス)

E-mail could not be sent with this configuration, try again? : no (あとで再設定します)
Save configuration?: true

Prepare the database now? : true
The final step is compiling CSS/JS assets.
This may take a while and consume a lot of RAM.
Compile the assets now?: Yes (めちゃくちゃ時間かかります)

Do you want to create an admin user straight away? : true (管理者用アカウントを作ります)
Username: suwa3
E-mail: (ひみつ)
You can login with the password: (長いパスワード)=>控えます

おまけ

Compile the assets now?
で、時間がかかりすぎて途中でコケました。
最初から一問一答する気になれないときは
assets:precompileと、指定して再開することもできます😃

$ RAILS_ENV=production bundle exec rails assets:precompile

次回予告

3日目はNginxのセットアップです。
作業が進み次第、Qiitaに作業ログを残したいと思います。

マストドン構築3日目 on AWS

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした