@ryecroft21の技術ブログ

初投稿です。そろそろ自鯖を立てた方がよいかな、と思い立って、おひとりさまインスタンスを立てました。その過程でいくつか詰まった所があったので記録しておきます。詳細なメモを記録していたわけではありませんが、何かの参考になれば。

環境

  • さくらのVPS 2G/3core/200GB HDD
  • Ubuntu 16.04 LTS をインストール後、do-release-upgrade で 18.04 LTS にアップデート

作業は基本的に公式の インストールガイド に沿って進めました。あと、 Mastodon Production Guide もあわせて参照しています。

インストール中に詰まった箇所

その1:Redisがインストールできない

ガイドに従って必要なパッケージをインストール。

# apt install -y \  
  imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev file git-core \  
  g++ libprotobuf-dev protobuf-compiler pkg-config nodejs gcc autoconf \  
  bison build-essential libssl-dev libyaml-dev libreadline6-dev \  
  zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev \  
  nginx redis-server redis-tools postgresql postgresql-contrib \  
  certbot yarn libidn11-dev libicu-dev libjemalloc-dev

ここで思わぬエラーが。redis-serverのセットアップに失敗。ググったところ、/etc/sysctl.confで以下の2行が有効だったのが原因でした。コメントアウトしてシステム再起動、で解決しました。

#net.ipv6.conf.all.disable_ipv6 = 1  
#net.ipv6.conf.default.disable_ipv6 = 1

その2:bundlerインストールでエラー

$ gem install bundler --no-ri --no-rdoc

を実行すると「no-ri」なんてオプションないよ!と怒られたので、オプション外してインストールしました。

その3:rake mastodon:setup で失敗

これは準備が悪かったと思うのですが、公式ドキュメントも簡潔すぎるので、もうちょっと丁寧に書いてほしいところ。とりあえず、PostgreSQLのユーザーにパスワードを設定したり、redisの設定ファイルを開いてパスワードを設定したり外したり、メールの設定をすっとばしたりして、都合3回実行しました。

その4:Let’s Encrypt でエラー

慣れているはずの certbot コマンドでエラー。公式ドキュメントでは、Nginx を動かした状態で certbot コマンドを実行してるみたいですが、それだとうまくいかない。結局、 Mastodon Production Guide に沿って、Nginxを止めた状態で1回(スタンドアロンモードでのTLS SNI validation)、Nginxを起動した状態で1回(webroot method)やるとうまくいきました。これで正しいのか不明。

最後に

Pleromaはインストール楽だけどMastodonは大変でした。

参考になったサイト(公式以外)

解消されていない疑問点

  • Node.js はガイドに従って 8.x を入れたが、10.x だとダメ?
  • インストール時「single user mode?」にYesと答えたが、インストール後に管理画面から新規登録を無効にしなければならなかった。これは正常な動作なのだろうか?