先日、ContaboでMastodonのおひとりさまサーバーを設置しました。前回はXserver VPSで行いましたが、今回はドイツのVPSサーバーを選択。前回の設置メモに関しては、下記のリンクから読んでいただけると幸いです。
今回は苦戦したところを備忘録として残しておこうと思います!
そもそもなぜContaboを選んだのか??
Contabo🥇Cloud VPS & Dedicated Servers for a Price You’ll Love
今回はコスパと性能を重視して選びました。Contaboは日本のVPSに比べるとスペックが高いのが特徴。日本のRAM4GBプランと同じ価格帯で8GBになっているなど、日本のサーバー会社に比べると1段上の性能を提供しています。
今回「Mastodon+Elasticsearch+kuromoji」のセットで行いたかったので、性能が良いContaboにしました。Sプラン(8ドル)+日本リージョン(3.5ドル)の約12ドル(2023/04/26時点で約1,600円)の計算です。
余談
Contaboを新規登録する際、身分証明書を提示(あちらの国の事情)を要求されます。個人情報の画像を渡したくない場合は、登録を避けた方がいいかもしれません。
大まかな流れ
- ドメインの契約(今回は前回のおひとりさまサーバーのURLを流用)・DNS設定
- 必要な言語やもろもろをインストール
- MastodonをGitHubから持ってくる
- Mastodonのセットアップ
- SSL化
- 起動
Installing from source – Mastodon documentation
Mastodon公式ドキュメントを見ながらコマンド入力・インストールします。
苦戦したところのメモ
バージョンの相性による競合・エラー問題
インストールする際のバージョンの組み合わせによって、エラーが発生することがあります。私遭遇したのが下記の2つになります。
- Node.js 18 & 20によで発生したMastodonコンパイルエラー
- Rubyのバージョン低い問題
これらの問題は、日本のインストールプログラムがある会社ではほとんど起こりません。あらかじめ必要な・エラーが起きないバージョンで一括インストールするので、自分でやってはじめて気づく問題でした。
Node.js 18 & 20にで発生したMastodonコンパイルエラー
「公式サイトではNode.jsがVer16が推奨されてるけど、最新版の方がええやろ~」精神の人はハマる問題。Mastodonの設定が終わり、コンパイルするところでエラーを吐き、Web画面が真っ白になる問題が発生しました。
/var/log/syslog
でエラー文を確認したところ、下記のような文章を発見。
ActionView::Template::Error (Webpacker can't find media ~
1. You want to set webpacker.yml value of compile to true for your environment
unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker's config/webpacker.yml file.
4. Your webpack configuration is not creating a manifest.
この状態でコンパイルしてもTera Tarm側も「Node.js」云々書いてあったので、Node.jsの問題だと確認。Ver18・ついでに20に上げて試しましたが解決せず。
仕方なくサーバーを初期・Node.jsをVer16に落としたところ、無事に解決しました。
Ruby のバージョンが低い問題
こっちはNode.jsとは逆バージョン。Mastodon公式で推奨されているバージョンが古く、インストール途中で3.2.2を推奨されました。
RUBY_CONFIGURE_OPTS=--with-jemalloc rbenv install 3.0.6
rbenv global 3.0.6
ここの数字を3.2.2に変えてインストールすればOK。
Gitで「detached HEAD」が出る問題
私はあまりGitを使わないんだよ!(悲痛な叫び)
と言うことで、超初歩的なところでつまずきました。「mainブランチにswitch→ブランチを作成→作ったブランチにSwitch」で無理やり解決。……今思ったけど、これもしかしてmainブランチに行くだけでよかったのでは?
SSL+Ngnixエラー
さくらのVPS、Ubuntu 20.04環境へのMastodon「再構築」の話 — Telmina’s notes
このブログ記事の「Ngnix+Let’s Encrypt」と同じ症状が発生。原因は上記のブログ通り「SSL設定してないのにSSL設定しろ」と言った矛盾したエラーを吐いてました。
対策は下記の流れで行いました。
- Ngnixをいったん止める
/etc/nginx/sites-enabled/mastodon
にある「ssl_certificate
」関連のコメントを消す- SSLを
certbot certonly --standalone -d 自分のドメイン
で取得する - 取得後Ngnixを起動する
最後に
Xserver VPSで構築したから簡単やろ~と思ったら、全然そうでもなかったです。丸1日費やしたので、過去の自分への労りとともに備忘録を流します。