しりわけしりわけ知識を蓄え、共有する。最近話題のMastodon(マストドン)。LTSで立ててみましたのでレポ・立てるまでの過程を書き連ねていこうと思います。States)日本語ターゲット層・仕様書ざっくりターゲットは「LinuxとCLIがわかる人」です。あと「面倒くさいこと」が嫌な人ですね。LTSでインストール済みVim使いまずはDocker-EngineとDocker-Composeをインストールというわけで、まずはこの二つをインストールしていきます。これはDocker公式リポジトリを使ってインストールします。-うまくいったら、リポジトリ情報をaptのリポジトリに追加します。stable"リポジトリ追加後は、必ずIndexを更新せにゃならないので、update発行して更新しましょう。僕の場合はほぼ一瞬でした。updateここまで来てようやく、Dockerを入れます。場合によって、関連パッケージもいくつか入るのでちょっと時間かかります。僕の場合は3分~5分程度でした。docker-ceそしてうまくいったら次へ進みます。次はDocker-Composeをインストール。これはGitでクローンして、PATHが通っているところに置いて実行権限をつけてあげるだけの簡単なお仕事。執筆時バージョンは1.12.0でしたが、gh:docker/composeで確認の上、最新版がリリースされていた場合はVERSION変数を書き換えてください。ちなみにUbuntu標準の方は古くてこの後難儀します。/usr/local/bin/docker-compose"ダウンロードしたら、chmodで権限を付与します。ド基礎コマンドですね。/usr/local/bin/docker-composeこれでひとまず準備の準備はおしまい。次はMastodonをクローンし、設定していきます。Mastodonをクローン・設定さて、では入れていきましょう。/var/www/に移動してクローンしていきます。おまけでクローン後のMastodonディレクトリにも入っています。Mastodon時間がちょっと経って、クローンが終わったら作業していきます。cpコマンドで二つのうち一つめのテンプレをコピーします。.env.productionコピー自体は一瞬で終わるはずです。今回はGMailを使います。二段階認証を設定されていらっしゃる場合は、事前にアプリケーションパスワードを入手しておいてください。protected]を編集していきます。12行めの方は、動かすドメイン名を入力してください(例:social.otya.me)。TLD直下のApexドメインでも、サブドメインでもいけます。日本語ドメインはどうやら執筆時現在はPunycode対応でないようなので、おすすめ致しません。40行めのSMTP_SERVERは「smtp.gmail.com」、41行めは無変更、42行めがGMailにログインするときのメールアドレス、43行めのパスワードはそのとき使うパスワード、もしくはアプリケーションパスワードです。平文なので権限に注意。44行めは送信元メールアドレスです。基本一緒ですが、もし違う場合はそのメールアドレスを入れておきましょう。44行めの後ろの行に割り込みで次の文字列を入れます。1行めは何も考えずに入れてください。入れないと動きません。SMTP_DOMAINは、SMTP_LOGINの後ろのメールアドレスの@より後の部分を入力します。SMTP_OPENSSL_VERIFY_MODE=noneSMTP_DOMAIN=gmail.comここまで来たら一旦閉じて、次にdocker-compose.ymlを編集します。docker-compose.ymlこの中の、8,9,15,16をコメントイン(「#」だけ取り除く)します。downすると有無を言わさずぶっ飛びます)。docker揮発性の闇ですね。コメントインしたら閉じて、シークレットキーなどを生成していきます。イメージを生成するため、次のコマンドを実行してください。&&これが終わったら、次のコマンドを実行してまずPAPERCLIP_SECRETを生成します。ちなみにこのコマンド3回実行するので、コピーしておくといいかもしれません。secret実行して最後の1行に出てくるバカ長い文字列を先ほどの.env.productionを開き、21行めの「PAPERCLIP_SECRET=」のイコールの後ろにペーストします。したらまた先ほどのrake云々コマンドを実行。次はその下にある22行めの「SECRET_KEY_BASE=」のイコールの後ろにペーストします。最後にまたもう一度実行。23行めの「OTP_SECRET=」のイコールの後ろにペーストします。おしまいにDBとCSSやJSなどのアセットを生成して準備完了です。#アセットのプリコンパイル。SCSSをまとめたりしていますから時間かかりますでは参りましょう。-d試しに一応動いてるかだけチェックするために、サーバ上で次のコマンドを発行します。http://localhost:3000/特にエラー等なければ数秒以内にコマンドの実行が完了しますが、動いていないとレスポンスが返って来ずにタイムアウトになります。Nginxの設定このままですと、SSLが使えないのに443番にリダイレクトされてしまいます。ついては、Nginxの方も設定しておきましょう。/etc/nginx/conf.d/Mastodon.confでも開きましょう。gh:tootsuite/documentationにあるNginxの設定をコピペします。rootディレクティブは/var/www/Mastodon/public、example.comの部分は動かすドメイン名に変えます。SSL証明書はオレオレを指定しておいてください。example.comを実行します。この際、Nginx及びMastodonが起動しているか確認しておいてください。後、example.comも置き換えて、どうぞ。証明書発行できたらMastodon.confを書き直してリロードで完了です。し、加えてcronを設定して(忘れると大変なことになります。親切な方は警告を投げてくれますが、そうでないと孤立したり、HDDが溢れていきます)、ひとまずおしまいです。mastodon:media:remove_remoteを追記して保存しておきます。あとは、管理画面からよしなにいじって行くだけです。アップデートアップデートも簡単。次のコマンドで完了です。