11
Help us understand the problem. What are the problem?

posted at

updated at

Organization

Mastodon インスタンスをコマンド一発で建てる(Docker不使用、CentOS7.x@さくらVPS)

2018/08/24 追記

8/21(火)から、さくらのVPS さん公式マストドン立ち上げスクリプトが提供されるようになりました!
これで、スクリプトのメンテナンスから解放される! ヾ(=^▽^=)ノ
なので、今後はそちらを利用することをおすすめします!

また、現在の Mastodon のバージョンは tootctl という管理用 CLI アプリが提供されており、本記事の bundle exec rails mastodon:<コマンド> の代わりに tootctl <コマンド>:<サブコマンド> と、よりシンプルに操作できるようになっています。


TL;DR(yum install mastodon を求めて)

インスタンスをコマンド一発(ワンライナー)で簡単に建てたい

Mastodonyum install mastodn くらい簡単にワンライナーでインストールする bash スクリプトを Gist に公開しました。(「さくらのVPS」限定ですが、、、)

  • 動作確認: Mastodon v2.0.0 + さくらのVPS + CentOS 7.2.1511(2017/09/24現在)

インストール・コマンド

CentOS7 入れ立てホヤホヤの VPS に SSH でアクセスして、"root" で下記のワンライナーを実行すると、ほぼ全自動でマストドンを、スクリプトのダウンロード・実行・インストールまで行います

cd ~/ && curl https://gist.githubusercontent.com/KEINOS/fb59b95020f0a06fb6448565d84e23cf/raw > install_mastodon.sh && chmod 0755 install_mastodon.sh && ./install_mastodon.sh

インストール・スクリプト @ Gist

上記ワンライナーでダウンロード・実行される本体スクリプトです。コメントを多めに入れたので、何をしているのかの参考になればいいな!

インストール概要

インストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まるとインストールが始まると「ドメイン」と「メールアドレス」を聞かれます。ドメインはマストドンを稼働させたいドメイン名。メールアドレスは SSL 認証の証明書(Let's Encrypt)の更新通知用のメールアドレスになります。

なお、ドメイン名はあらかじめ名前解決される状態である必要があります。つまり、DNS/NS の設定が終了していて、ドメイン名でサーバーの IP アドレスにアクセスできる状態です。なお、SSL 認証の登録や証明書の取得はスクリプト側で行うので https:// でアクセスできる必要はありません。

次に、実行の確認で "y" を選択すると、あとは 20〜30分 程度放置して完了したら再起動後、SSL(https://) 付きでドメインにアクセスしてみてください。

しばらく稼働させて良い感じになったら、ぜひ「日本 Mastodon インスタンス一覧」に登録しよう!

注意

インストール後、root およびパスワードでの SSH 接続ができないように設定して、SSH のポート番号変更をすることをおすすめします。

というのも、サーバを直接狙われた場合は効果は無いと思いますが、インスタンスを立ち上げてしばらくいじっていると 22 番ポートに root でのボットらしきアクセスが発生していたので「やっぱり、あるんだなぁ」と再実感しました。

あわせて読みたい

TS;DR(所感)

現在「さくらのVPS」のサーバーで CentOS7 とお付き合いをしています。「マストドンはイカガ?」と打診したところ、先日友達の子供のために勝手に Minecraft サーバーを建てて、やたら大きなワールドを入れたものの誰も来ないから一人でさまよってるだけの容量食いのせいで狭くなったばかりなのに、マストドンのメディア・ファイルでさらに狭くなったらどうするのよ、と嫌がられました。

ションボリしていたところ、Docker を使わないマストドンならカロリー少なめかもしれないし試してもいいかも、と OK がでたので色々チャレンジしていました。

ところが、「Cld3 が足りない」だの「Annotate がない」だの「rake secret できない」とダダをこねたり「device の鍵がない」だのと怒られたりして、インスタンスを建てるどころか腹が立って立って付き合うのを断念しそうでした。(心の声:「Ubuntu に乗り換えたろか!Ubuntu に!」)

お互いマストドンは初めての体験です。まずは稼働するところまで行けば「何が原因か」考える余裕も出来て先へ進めると思ったので、「さくらのクラウド」であればセットメニューの公式のスタートアップスクリプトがあるとの情報を得て、お試しで頼んでみたところ確かに簡単に導入できました。

しかし、@KEINOS は貧乏人なのでコスト的に維持出来そうにないのもわかりました。

ユーザーが増えてスケールアップのしやすさを考えると「さくらのVPS」より「さくらのクラウド」の方がいいかもしれません。しかし、現在お付き合いしている相手は人見知りで基本的に「お一人様用マストドン」を考えています。つまり、「さくらのクラウド」に移行したとしても月々のコストが高くなるだけということになります。

ただでさえ、お仕事時代に知り合ったロリポップちゃんやバリューちゃんとのお付き合いもあり、ひひり出しながら維持している現在の関係に、さらにコストがかかるとなると破滅してしまうこと必至です。

何とか現在の VPS サーバーに入れようと「さくらのクラウド」のスタートアップスクリプトを読んでみたところ、いけそうだったので同じジャジャ馬に悩んでいる方の参考になれば幸いです。

ちなみに、現在の VPS サーバーでは、Kusanagi の WordPress 環境を利用しているので、サブドメインにもインストールできるスクリプトも出来たらいいなと考えています。(誰か作ってKUSANAGI 環境にも一発でマストドンをインストールするスクリプトを公開しました)

その他の関連情報

初回のマストドン・ユーザー作成で、ユーザー登録後のメール認証を手動で行ったり、管理者に昇格する手順。

手動認証(コマンドで認証を通す)

# 'someone@email.com' のメール認証を管理者が代行する場合。
su - mastodon
cd live
RAILS_ENV=production bundle exec rails mastodon:confirm_email USER_EMAIL=someone@email.com

ユーザーを管理者に昇格する

# ユーザー 'KEINOS' を管理者に昇格する場合
su - mastodon
cd live
RAILS_ENV=production bundle exec rails mastodon:make_admin USERNAME=KEINOS

未認証ユーザーの手動削除

# ユーザー申請のみで認証の済んでいないユーザーの削除を手動で行う場合
su - mastodon
cd live
RAILS_ENV=production rake mastodon:users:clear

Mastodon コマンド詳細

動作実績

  • サーバー   : さくらのVPS
  • OS            : CentOS 7.2.1511
  • ゾーン       : 石狩第1ゾーン
  • メモリ       : 2GB
  • ストレージ: SSD 50GB
  • CPU          : 3コア
  • オプション: なし
  • さくらのVPS バージョン: v4
サーバー OS 条件 スタートアップ・スクリプト マストドンのバージョン
さくらのVPS CentOS 7.2.1511 ※1 OSのインストール直後の状態 ※3 CentOS_yum-update v2.0.0

2017/09/24現在 ※5
※1 インストール後は CentOS 7.4.1708にバージョンアップされます。(2017/09/20現在)
※2 マストドン管理用のmastodonユーザーも同時に作成されます。su - mastodonで切り替えて管理ください。
※3 2017/06/20 追記:KUSANAGI環境下では動きません。「OSインストール」のイメージは「標準OSインストール」にある「CentOS7 x86_64」を選択してください。(2017/06/22 追記:KUSANAGI 環境用の記事を書きました)
※4 2017/08/09 追記:マストドンが v1.5.1 に大幅アップデートしました。アップデート方法およびメンテナンス情報をとりまとめ中ですが、取り急ぎ v1.4.7 から v1.5.1 にアップデートできました
※5 2017/09/24 追記:Mastodon 2.0.0 に合わせてインストーラーを修正しました。

参考文献

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
11
Help us understand the problem. What are the problem?