Discourse開発環境設定ガイド - Windows 11

皆さん、こんにちは。

Windows 11 / WSL2 で動作する開発環境の構築に時間を費やした後、私が従った手順を共有したいと思います。

こちらでの最初の投稿なので、誰かの役に立つことを願っています :slight_smile: 私はシステム管理者で、Windows での作業に慣れているため、Linux / Ruby / Discourse などを学ぶのは興味深い旅でした。

Windows 10 のガイドが書かれてからいくつか変更があったようで、途中でいくつかの問題に遭遇しました(コメントを読んだところ、私だけではなかったようです!)

以下の手順が、私の Windows 11 Pro 22H2 インストールと、今後の Windows 11 23H2 リリースプレビューの Windows Insider ビルドで機能することを確認しました。

手順はできるだけ短く、わかりやすくするように努めます :slight_smile:

初期準備

  1. WSL のアップデートを確認し、該当する場合はインストールします。Windows PowerShell ウィンドウから次のコマンドを使用します:-

wsl.exe --update

  1. 次のコマンドを使用して WSL2 に Ubuntu をインストールします:-

wsl.exe --install -d Ubuntu

  1. 画面の指示に従って、ユーザー名とパスワードを作成します。

  2. Ubuntu ターミナルに入ったら、該当するすべてのアップデートを確認してインストールします。

sudo apt update && sudo apt upgrade -y

  1. すべてが更新されたので、続行できます :slight_smile:

WSL の変更

  1. Discourse をクローンする前に、次のコマンドを実行して /etc/wsl.conf ファイルを開きます:-

sudo nano /etc/wsl.conf

  1. 既存のファイルの末尾に以下を追加し、Ctrl + X を押して変更を保存し、プロンプトが表示されたら「Y」を押します。
[automount]
enabled  = true
root     = /mnt/
options  = "metadata,umask=22,fmask=11"
  1. これらの変更を正しく適用するために、WSL ターミナルを完全に閉じて再起動します。

  2. 次の 1 行のインストール スクリプトをコピーして貼り付け、開発環境をセットアップします。お使いのコンピューターの速度やインターネット接続の速度によっては、完了までに時間がかかる場合がありますので、コーヒーでも飲んでお待ちください!

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)
  1. PostgreSQL サービスを開始します:-
sudo service postgresql start
  1. WSL2 で実行しているため、VM のメモリ不足に関する警告メッセージが表示されました。これは、以下を実行することで解決できます。
sudo sysctl vm.overcommit_memory=1
  1. redis-server が自動的に再起動するように、以下を実行します:-
redis-server --daemonize yes
  1. Discourse をホームフォルダーにクローンします:-
git clone https://github.com/discourse/discourse.git ~/discourse
  1. 新しく作成された Discourse フォルダーに移動します:-
cd ~/discourse
  1. 次のコマンドを実行します(1 行ずつ実行しました)(これが必須かどうか、または 1 回でコピーして貼り付けられるかどうかは不明です)。
source ~/.bashrc

bundle install

yarn install
  1. 環境をセットアップします:-
RAILS_ENV=development bundle exec rake db:create db:migrate
  1. Discourse を開始します。
DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u
  1. 別個のターミナルを開き、cd ~/discourse を使用して Discourse ディレクトリに移動し、rails admin:create を実行します。指示に従って管理者ユーザーアカウントを設定してください。

  2. Web ブラウザーで http://localhost:4200 にアクセスすると、Discourse がすべて稼働しているはずです :slight_smile:

「いいね!」 10

この部分は失敗する可能性があります。失敗した場合は、スタートをクリックし、「Windows の機能の有効化または無効化」と入力します。
仮想マシン プラットフォームを有効にする
再起動する

コマンドを再開します。

「いいね!」 4

アンドリュー、追加してくれてありがとう!

私がしばらくの間、理解するのに苦労した非常に重要なことの1つは、リポジトリが絶対にWSLファイルシステム上にある必要があり(つまり、/mnt/*上にない)、そうでなければ、あらゆる種類の奇妙なエラーが発生するか、非常に、非常に、非常に遅いインスタンスになるということです。

これは常識であるはずですが、他の開発者とのやり取りからすると、そうではないようです。

「いいね!」 2

AliBenBongoさん、こんにちは :wave:

このガイドをありがとうございます。

興味本位なのですが、Install Discourse on Windows for development を試したものの、Windows 11 で問題が発生しましたか?

私は2ヶ月前、この公式ガイドに従って Win11 で開発環境をセットアップしましたが、問題なく動作しました。

「いいね!」 2

それは興味深いですね。はい、最初にそのガイドを試しましたが、多くのエラーメッセージが表示されました。具体的には覚えていませんが、エラーメッセージの一部はそのスレッドのコメントセクションで言及されていました…

最終的には良いことだと思います。なぜなら、自分で問題を解決し、このガイドを作成することで、間違いなく多くの知識を得られたからです! :slight_smile:

「いいね!」 1

おそらく愚かな質問かもしれませんが、聞かなければなりません。ガイドに従ってこれを稼働させることができたと仮定すると、これをドメインにリバースプロキシすることは可能だと思いますか?

愚かな質問などありません。私たちは常に新しいことを学ぶことができます! :slight_smile: 私はリバースプロキシの経験があまりありません。DockerコンテナでNginx Proxy Managerを使用する以外は、それを見てみるのも良いかもしれません。Nginx Proxy Managerは多くの大変な作業をこなし、Let’s Encryptを通じて無料のSSL証明書さえ生成してくれます。

「いいね!」 1

おそらく多くの問題に直面することになるでしょう。開発者向けインストールは本番環境での実行はサポートされていません。

クラウドで標準インストールを実行すると、月額数ドルかかるかもしれませんが、あなたの時間の価値はいくらでしょうか?!それがあれば、30分で稼働を開始し、完了できます。

「いいね!」 2

それが実際に私がやったことです。Communicateqから始め、DigitalOceanも試しましたが、最終的にはContaboに落ち着きました。

私は狂人かもしれませんが、HyperVでUbuntuを実行しようとしていたこと(できるかどうかを確認するためだけに)、VMを同じサブネットに接続することさえできました(笑)、しかし初期ドメインチェックを機能させることができませんでした。問題の一部は、すでにWindowsホストで多数のサービスをホストしており、それに伴って80/443をそのマシンのIPにポートフォワーディングしていることだと思います。これはこのスレッドの範囲を超えており、サポートされていないことは承知していますが、同様のことを試した経験はありますか?

まだサブシステムがインストールされていない場合、このコマンドは機能しないことに注意してください。

「いいね!」 1

Rubyのインストールで詰まっていましたが、これが役立ちました: ChatGPT - Ruby 3.2 Not Released

こんにちは、ようこそ :wave:

このガイドの手順に従えば、Rubyを手動でインストールする必要はありません。「install-rails」スクリプトが自動的にインストールします。

念のため、Ubuntuの最新バージョンである24.04は動作しないようで、多くの問題が発生しました。

そのため、WSLでインストールする際は、以下を使用するようにしてください。

wsl.exe --install -d Ubuntu-22.04

こんにちは :waving_hand:、Windows 11 の WSL2 を使用しており、この投稿の手順に従ってローカルの Discourse 開発インスタンスをインストールしました。いくつか問題が発生しましたが、最終的に解決することができました。以下に私が発見したことを示します。

(最初に ubuntu-20.04 で試しましたが、ImageMagick のインストール中に必要な libwebp7 依存関係が見つからないという問題が発生しました。libwebp7 は ubuntu-20.04 では利用できないようです):right_arrow: そのため、代わりに ubuntu-22.04 を使用することにしました。これが私にはうまくいきました。

最初の投稿の @AliBenBongo のガイドに従い、ステップ 9 まではすべて期待どおりに動作しました。:+1:

ステップ 9 では、いくつかの変更が必要でした。

https://raw.githubusercontent.com/discourse/install-rails/master/linux の一部のリソースは最新ではないようです。

  • ruby_version=“3.2.1”ruby_version=“3.3.9” に変更して、3.2.1 の代わりに Ruby 3.3.x をインストールする必要がありました。
  • curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - に変更して、18 の代わりに Node 20 をインストールする必要がありました。

ステップ 15 では、yarn install の代わりに pnpm install を実行する必要があります。

次に、ステップ 16 でマイグレーションを実行すると、pgvector Postgres 拡張機能に依存する一部のマイグレーションでエラーが発生しました。そこで、こちらの Linux インストール ガイドに従いました: https://github.com/pgvector/pgvector/blob/master/README.md

:warning:念のため、README ファイルから直接コマンドをコピーすることをお勧めします。しかし、もし興味があれば、私にうまくいったのは次のとおりです。

git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
sudo make install

その後、ステップ 16 のマイグレーションを実行できるようになり、ガイドの残りの部分に従ってインストールを完了しました。:tada:

「いいね!」 1