案外あっけなくできた。ということで、備忘録を兼ねてメモを残しておきます。 ## 前提・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](https://docs.joinmastodon.org/admin/install/) 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 mastodon.local + ::1 mastodon.local ``` 下記項目の記入が終わったら保存します。 ### 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 で オレオレ証明書をする Qiita](https://qiita.com/snowmoon/items/9c96ee0fa6ed096e8940) ### 派生フォークはどうやってインストールするの? MastodonのGitを指定する時に派生フォークのGitを指定しましょう。あとは派生フォークのインストールガイドを見ながらインストールすればOK。 ### 爆破したいときどうすればいい? 設定→アプリでUbuntuを削除。そのあとPowerShellなどで下記のコマンドを実行してからUbuntuを再インストールします。 ``` $ wsl --unregister Ubuntu-22.04 ``` 上記コマンドを実行してからじゃないとうまくUbuntuが動かないので注意しましょう。 ## 関連記事 鯖をメンテナンスするときの参考にしていただければ。 - [[【Mastodon・Misskey】Node.jsのアップデート方法をおさらいする]] - [[【Mastodon】Rubyのメンテナンス方法をおさらいする]] ## 参考サイト - [Ubuntu 22.04を使ってMastodon(非Docker)を動かす!正式リリースされたストア版WSL2で起動 PC Watch](https://pc.watch.impress.co.jp/docs/column/nishikawa/1468283.html) - [Windows 10/11でLinux環境「WSL」を始める第一歩 @IT](https://atmarkit.itmedia.co.jp/ait/articles/2201/28/news029.html) - [Installing from source Mastodon documentation](https://docs.joinmastodon.org/admin/install/) - [nginx で オレオレ証明書をする - Qiita](https://qiita.com/snowmoon/items/9c96ee0fa6ed096e8940)