WSL2を使ってローカルMastodon鯖を立てる

案外あっけなくできた。ということで、備忘録を兼ねてメモを残しておきます。

目次

前提・PC回りなど

  • Windows 11 Home
  • Mastodon(自分は派生フォークのkmyフォークでやったけど、ほぼ流れは同じ)
  • 外部から・常時接続は考慮してない

大まかな流れ

  1. 「Microsoft Store」から必要ソフトウェアをインストール
  2. 「Linuxサブシステム」と「仮想マシンプラットフォーム」にチェック
  3. Ubuntuの設定
  4. Mastodon依存モジュールのインストール
  5. Mastodonのインストール
  6. Nginx・hostファイルの設定
  7. サービス起動

詳細の流れ

1.Microsoft Storeで必要ソフトウェアをインストール

「Microsoft Store」から下記の2つをインストールします。

  • Windows Subsystem for Linux
  • Ubuntu 22.04

2.「Linux サブシステム」と「仮想マシンプラットフォーム」にチェック

Win11のバージョンかHomeだからか、「設定→アプリ→オプション機能→Windowsのその他の機能」で設定項目を見つけられず。私の場合「コントロールパネル→プログラムと機能→Windowsの機能の有効化または無効化」でいけました。

設定窓を開いたら「Linuxサブシステム」と「仮想マシンプラットフォーム」にチェックして再起動。

3.Ubuntuの設定

ログインユーザー名とパスワードを求められるので、適当に入力しましょう。設定が終わったらでrootユーザーに切り替えます。

4.Mastodon依存モジュールのインストール

Installing from source Mastodon documentation

Mastodon公式ドキュメントを参考にしつつ、「Setting up Mastodon」見出しまで進めます。

5.Mastodonのインストール

$ RAILS_ENV=production bundle exec rake mastodon:setup

上記のコマンドを入力してMastodonの設定を行います。設定項目は「Domain name」以外いじる・設定する必要はありません。(メールもどうせ利用しないので空白でOK)

「Domain name」は適当なドメインで登録します。後でhostファイルをいじって設定するので、必ず覚えておいてください。

この時点で管理者アカウントを作っておくと楽になります。

6.Nginx・hostファイル・systemdの設定

Nginxの設定

下記の作業をrootユーザーで実行します。Mastodonのマニュアル通りにnginxファイルをコピー・リンク。コピーが終わったら、viで設定ファイルをいじっていきます。

$ cp /home/mastodon/live/dist/nginx.conf /etc/nginx/sites-available/mastodon
$ ln -s /etc/nginx/sites-available/mastodon /etc/nginx/sites-enabled/mastodon
$ rm /etc/nginx/sites-enabled/default
$ vi /etc/nginx/sites-available/mastodon

server 80・443のserver_nameを5で設定したドメイン名、443のssl_certificateの項目の下部分に+で始まっている2行を追加します。

# ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

+ ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
+ ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;

mastdonを編集後、ngnixの設定ファイルを編集します。

$ vi /etc/nginx/nginx.conf

user www-dataの項目をuser mastodonに書き換え、編集が終わったらNginxをリロードします。

hostファイルの設定

メモ帳を「管理者権限で実行」しながら開く
C:\Windows\System32\drivers\etc\hostsファイルを開いて、+で始まっている2行を追加

127.0.0.1 localhost
::1 localhost
+ 127.0.0.1 <設定したドメイン>
+ ::1 <設定したドメイン>

下記項目の記入が終わったら保存します。

system.dの設定

下記のコマンドをrootユーザーで実行します。

$ cp /home/mastodon/live/dist/mastodon*.service /etc/systemd/system/
$ $EDITOR /etc/systemd/system/mastodon-*.service

7.サービス起動

下記のコマンドをrootユーザーで実行して、Mastodonサービスを起動します。

$ systemctl daemon-reload
$ systemctl enable --now mastodon-web mastodon-sidekiq mastodon-streaming

実行後、指定したドメインをブラウザに入力します。潜在的なリスク云々出るが、警告を無視して(詳細設定→進む)で移動。移動先で無事にMastodonが表示されたら設定完了です、お疲れさまでした。

その他覚え書き

オレオレ証明書いる?

不要でした。設定しても結果は変わらなかったのですが、一応参考リンクだけ置いておきます。

nginx で オレオレ証明書をする #EC2 Qiita

派生フォークはどうやってインストールするの?

MastodonのGitを指定する時に派生フォークのGitを指定しましょう。あとは派生フォークのインストールガイドを見ながらインストールすればOK。

爆破したいときどうすればいい?

設定→アプリでUbuntuを削除。そのあとPowerShellなどで下記のコマンドを実行してからUbuntuを再インストールします。

$ wsl --unregister Ubuntu-22.04

上記コマンドを実行してからじゃないとうまくUbuntuが動かないので注意しましょう。

参考サイト

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次