Guide pour configurer l'environnement de développement Discourse - Windows 11

Salut tout le monde,

Après avoir passé du temps à essayer de mettre en place un environnement de développement fonctionnel sous Windows 11 / WSL2, j’ai pensé partager les étapes que j’ai suivies.

C’est mon premier message ici, j’espère donc qu’il sera utile à quelqu’un :slight_smile: Je suis administrateur système et j’ai l’habitude de travailler avec Windows, donc ce fut un parcours intéressant pour apprendre Linux / Ruby / Discourse, etc.

Quelques éléments semblent avoir changé depuis la rédaction du guide pour Windows 10 et j’ai rencontré quelques problèmes en cours de route (et à en lire les commentaires, je n’étais pas le seul !)

Je peux confirmer que les instructions suivantes ont fonctionné sur mon installation de Windows 11 Pro 22H2 et également sur ma build Insider de la prochaine version de Windows 11 23H2 Release Preview.

J’essaierai de garder les instructions aussi courtes et simples que possible :slight_smile:

Préparation initiale

  1. Vérifiez les mises à jour de WSL et installez-les si nécessaire. Depuis une fenêtre Powershell Windows, utilisez cette commande : -

wsl.exe --update

  1. Installez Ubuntu sur WSL2 en utilisant cette commande : -

wsl.exe --install -d Ubuntu

  1. Suivez les instructions à l’écran pour créer le nom d’utilisateur et le mot de passe.

  2. Une fois dans le terminal Ubuntu, vérifiez et installez toutes les mises à jour applicables.

sudo apt update && sudo apt upgrade -y

  1. Maintenant que tout est à jour, nous pouvons continuer :slight_smile:

Modifications WSL

  1. Avant de cloner Discourse, exécutez la commande suivante pour ouvrir le fichier /etc/wsl.conf : -

sudo nano /etc/wsl.conf

  1. En bas du fichier existant, ajoutez ce qui suit, appuyez sur Ctrl + X pour enregistrer les modifications et appuyez sur “Y” lorsque vous y êtes invité.
[automount]
enabled  = true
root     = /mnt/
options  = "metadata,umask=22,fmask=11"
  1. Fermez complètement le terminal WSL et relancez-le pour que ces modifications s’appliquent correctement.

  2. Copiez et collez maintenant le script d’installation suivant en une seule ligne pour configurer l’environnement de développement. Selon la vitesse de votre ordinateur et/ou de votre connexion Internet, cela peut prendre un certain temps, alors allez prendre un café ou autre chose !

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)

  1. Démarrez le service PostgreSQL : -
sudo service postgresql start

  1. Comme nous exécutons sous WSL2, j’ai reçu un message d’avertissement concernant la mémoire insuffisante de la VM, ce qui peut être résolu en exécutant ce qui suit :
sudo sysctl vm.overcommit_memory=1

  1. Exécutez ce qui suit pour que le serveur redis redémarre automatiquement : -
redis-server --daemonize yes
  1. Clonez Discourse dans le dossier personnel : -
git clone https://github.com/discourse/discourse.git ~/discourse

  1. Accédez au dossier Discourse nouvellement créé : -
cd ~/discourse

  1. Exécutez les commandes suivantes (je les ai faites une ligne à la fois) (Je ne suis pas sûr que ce soit nécessaire ou si elles peuvent être copiées et collées en une seule fois)
source ~/.bashrc

bundle install

yarn install

  1. Configurez l’environnement : -
RAILS_ENV=development bundle exec rake db:create db:migrate

  1. Démarrez Discourse
DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u

  1. Ouvrez un terminal séparé, accédez au répertoire Discourse en utilisant cd ~/discourse et exécutez rails admin:create - suivez les instructions pour configurer votre compte utilisateur administrateur.

  2. Allez sur http://localhost:4200 dans un navigateur Web et Discourse devrait être opérationnel :slight_smile:

10 « J'aime »

Cette partie peut échouer. Si c’est le cas, cliquez sur Démarrer, tapez activer ou désactiver des fonctionnalités Windows
Activez la plateforme de machine virtuelle
Redémarrez

Reprenez les commandes.

4 « J'aime »

Merci d’avoir ajouté ceci Andrew !

Une chose très importante avec laquelle j’ai eu du mal pendant un certain temps à comprendre, c’est que le dépôt doit absolument se trouver sur le système de fichiers WSL (c’est-à-dire PAS sur /mnt/*). Sinon, vous obtiendrez toutes sortes d’erreurs étranges ou une instance très, très, très lente.

C’est censé être du bon sens, mais d’après mes interactions avec d’autres développeurs, ce n’est pas vraiment le cas.

2 « J'aime »

Salut AliBenBongo :wave:

Merci pour ce guide.

Par curiosité, avez-vous essayé Install Discourse on Windows for development mais rencontré des problèmes sur Windows 11 ?

J’ai suivi ce guide officiel il y a moins de deux mois pour configurer mon installation de développement sur Win11, et cela a fonctionné sans problème.

2 « J'aime »

C’est intéressant, oui, j’ai d’abord essayé ce guide et j’ai rencontré de nombreux messages d’erreur. Je ne m’en souviens pas spécifiquement, mais certains des messages d’erreur ont été mentionnés dans la section des commentaires du même fil de discussion…

Je pense que c’est une bonne chose au final car j’ai certainement acquis plus de connaissances en résolvant le problème moi-même, puis en rédigeant ce guide ! :slight_smile:

1 « J'aime »

C’est peut-être une question stupide, mais je dois la poser. En supposant que je puisse faire fonctionner ceci en suivant votre guide. Pensez-vous qu’il soit possible de faire du reverse proxy de ceci vers un domaine ?

Il n’y a pas de questions stupides, nous pouvons toujours apprendre quelque chose de nouveau ! :slight_smile: Je n’ai pas beaucoup d’expérience avec les reverse proxy, à part l’utilisation de Nginx Proxy Manager dans un conteneur Docker - peut-être jetez un coup d’œil à cela car il fait la majeure partie du travail difficile et génère même des certificats SSL gratuits via Let’s Encrypt.

1 « J'aime »

Vous allez rencontrer de nombreux points sensibles, je le suspecte. L’installation de développement n’est pas prise en charge pour fonctionner en production.

L’exécution de l’installation standard dans le cloud peut coûter quelques dollars par mois, mais combien vaut votre temps ?! Avec cela, vous pouvez être opérationnel en 30 minutes et avoir terminé.

2 « J'aime »

C’est en fait ce que j’ai fait. J’ai commencé avec communiteq, j’ai aussi essayé DigitalOcean mais j’ai finalement atterri sur Contabo.

Je pense que je suis un peu fou car ce que j’essayais de faire (juste pour voir si je pouvais), c’était d’exécuter Ubuntu dans HyperV, j’ai même réussi à mettre la VM sur le même sous-réseau lol mais je n’ai pas réussi à faire fonctionner la vérification initiale du domaine. Je pense qu’une partie du problème est que j’héberge déjà une poignée de services sur mon hôte Windows et par conséquent, je fais du transfert de port 80/443 vers l’IP de cette machine. Je sais que c’est hors de portée de ce fil et que ce n’est pas pris en charge, mais avez-vous une expérience d’une tentative similaire ?

Il convient de noter que si vous n’avez pas encore installé de sous-système, cette commande ne fonctionnera pas.

1 « J'aime »

Je suis bloqué lors de l’installation de Ruby ; ceci m’a aidé : ChatGPT - Ruby 3.2 Not Released

Salut, bienvenue :wave:

Si vous suivez les étapes de ce guide, vous n’aurez pas besoin d’installer Ruby manuellement. Le script « install-rails » le fera automatiquement.

Pour information, la dernière version d’Ubuntu, 24.04, ne semble pas fonctionner et j’ai eu beaucoup de problèmes avec.

Donc, lors de l’installation avec WSL, assurez-vous d’utiliser :

wsl.exe --install -d Ubuntu-22.04

Salut :waving_hand:, j’utilise WSL2 sous Windows 11 et j’ai suivi les étapes de ce post pour installer une instance de développement Discourse locale. J’ai rencontré quelques problèmes, mais j’ai finalement réussi à les résoudre. Voici ce que j’ai trouvé :

(Au début, j’ai essayé avec ubuntu-20.04, mais j’ai rencontré un problème avec la dépendance manquante libwebp7 qui est requise lors de l’installation d’ImageMagick. Il semble que libwebp7 ne soit pas disponible pour Ubuntu-20.04) :right_arrow: J’ai donc décidé d’utiliser ubuntu-22.04 à la place, ce qui a fonctionné pour moi.

En suivant le guide de @AliBenBongo dans le premier post, tout ce qui précède l’étape 9) a fonctionné comme prévu. :+1:

Dans l’étape 9), quelques modifications étaient nécessaires :

Certaines ressources sur https://raw.githubusercontent.com/discourse/install-rails/master/linux ne sont pas à jour, il semble :

  • J’ai dû installer Ruby 3.3.x au lieu de 3.2.1 en changeant ruby_version=“3.2.1” en ruby_version=“3.3.9”
  • J’ai dû installer Node 20 au lieu de 18 en changeant curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - en curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Dans l’étape 15), vous devez exécuter pnpm install au lieu de yarn install.

Ensuite, lors de l’exécution des migrations dans l’étape 16), une erreur s’est produite pour certaines migrations dépendant de l’extension Postgres pgvector. J’ai donc suivi le guide d’installation Linux ici : https://github.com/pgvector/pgvector/blob/master/README.md

:warning: Par mesure de sécurité, il est préférable de copier les commandes directement depuis le fichier readme. Cependant, si vous êtes curieux, voici ce qui a fonctionné pour moi :

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

Après cela, j’ai pu exécuter les migrations de l’étape 16 et terminer l’installation en suivant le reste du guide. :tada:

1 « J'aime »