Anleitung zum Einrichten der Discourse-Entwicklungsumgebung - Windows 11

Hallo zusammen,

nachdem ich einige Zeit damit verbracht habe, eine funktionierende Entwicklungsumgebung unter Windows 11 / WSL2 einzurichten, dachte ich, ich teile die Schritte, die ich befolgt habe.

Dies ist mein erster Beitrag hier, also hoffe ich, dass er jemandem nützlich ist :slight_smile: Ich bin Systemadministrator und arbeite hauptsächlich mit Windows, daher war es eine interessante Reise, Linux / Ruby / Discourse usw. zu lernen.

Einige Dinge scheinen sich seit der Veröffentlichung der Anleitung für Windows 10 geändert zu haben, und ich bin auf ein paar Probleme gestoßen (und aus den Kommentaren zu schließen, war ich nicht der Einzige!)

Ich kann bestätigen, dass die folgenden Anweisungen auf meiner Windows 11 Pro 22H2-Installation und auch auf meinem Windows Insider Build der kommenden Windows 11 23H2 Release Preview funktioniert haben.

Ich werde versuchen, die Anweisungen so kurz und einfach wie möglich zu halten :slight_smile:

Erste Vorbereitung

  1. Prüfen Sie auf WSL-Updates und installieren Sie diese gegebenenfalls. Verwenden Sie dazu in einem Windows Powershell-Fenster diesen Befehl:

wsl.exe --update

  1. Installieren Sie Ubuntu unter WSL2 mit diesem Befehl:

wsl.exe --install -d Ubuntu

  1. Folgen Sie den Anweisungen auf dem Bildschirm, um den Benutzernamen und das Passwort zu erstellen.

  2. Überprüfen und installieren Sie im Ubuntu-Terminal alle anwendbaren Updates:

sudo apt update && sudo apt upgrade -y

  1. Jetzt, da alles aktualisiert ist, können wir fortfahren :slight_smile:

WSL-Modifikationen

  1. Bevor Sie Discourse klonen, führen Sie den folgenden Befehl aus, um die Datei /etc/wsl.conf zu öffnen:

sudo nano /etc/wsl.conf

  1. Fügen Sie am Ende der vorhandenen Datei Folgendes hinzu, drücken Sie Strg + X, um die Änderungen zu speichern, und drücken Sie “Y”, wenn Sie dazu aufgefordert werden.
[automount]
enabled  = true
root     = /mnt/
options  = "metadata,umask=22,fmask=11"
  1. Schließen Sie das WSL-Terminal vollständig und starten Sie es neu, damit diese Änderungen ordnungsgemäß angewendet werden.

  2. Kopieren und fügen Sie nun das folgende Einzeilen-Installationsskript ein, um die Entwicklungsumgebung einzurichten. Je nach Geschwindigkeit Ihres Computers und/oder Ihrer Internetverbindung kann dies einige Zeit dauern, also holen Sie sich einen Kaffee oder etwas anderes!

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)
  1. Starten Sie den PostgreSQL-Dienst:
sudo service postgresql start
  1. Da wir unter WSL2 laufen, erhielt ich eine Warnmeldung, dass dem VM der Arbeitsspeicher ausgeht, was durch Ausführen des Folgenden behoben werden kann:
sudo sysctl vm.overcommit_memory=1
  1. Führen Sie Folgendes aus, damit der redis-server automatisch neu startet:
redis-server --daemonize yes
  1. Klonen Sie Discourse in den Home-Ordner:
git clone https://github.com/discourse/discourse.git ~/discourse
  1. Wechseln Sie in den neu erstellten Discourse-Ordner:
cd ~/discourse
  1. Führen Sie die folgenden Befehle aus (ich habe sie einzeln ausgeführt) (Ich bin mir nicht sicher, ob dies notwendig ist oder ob sie auf einmal kopiert und eingefügt werden können):
source ~/.bashrc

bundle install

yarn install
  1. Richten Sie die Umgebung ein:
RAILS_ENV=development bundle exec rake db:create db:migrate
  1. Starten Sie Discourse:
DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/ember-cli -u
  1. Öffnen Sie ein separates Terminal, wechseln Sie mit cd ~/discourse in das Discourse-Verzeichnis und führen Sie rails admin:create aus - folgen Sie den Anweisungen, um Ihr Admin-Benutzerkonto einzurichten.

  2. Gehen Sie im Webbrowser zu http://localhost:4200 und Discourse sollte vollständig eingerichtet und einsatzbereit sein :slight_smile:

10 „Gefällt mir“

Dieser Teil könnte fehlschlagen. Wenn dies der Fall ist, klicken Sie auf Start und geben Sie “Windows-Features aktivieren oder deaktivieren” ein.
Aktivieren Sie die virtuelle Computerplattform.
Starten Sie neu.

Fahren Sie mit den Befehlen fort.

4 „Gefällt mir“

Danke für die Ergänzung, Andrew!

Eine sehr wichtige Sache, mit der ich eine Weile zu kämpfen hatte, um sie herauszufinden, ist, dass das Repository unbedingt im WSL-Dateisystem liegen muss (d. h. NICHT unter /mnt/*). Andernfalls erhalten Sie alle Arten von seltsamen Fehlern oder eine sehr, sehr, sehr langsame Instanz.

Dies soll Allgemeinwissen sein, aber aus meiner Interaktion mit anderen Entwicklern geht hervor, dass es das irgendwie nicht ist.

2 „Gefällt mir“

Hallo AliBenBongo :wave:

Vielen Dank für diese Anleitung.

Haben Sie aus Neugier Install Discourse on Windows for development ausprobiert, aber unter Windows 11 Probleme gehabt?

Ich habe diese offizielle Anleitung vor weniger als zwei Monaten befolgt, um meine Dev-Installation unter Win11 einzurichten, und sie hat einwandfrei funktioniert.

2 „Gefällt mir“

Das ist interessant, ja, ich habe zuerst diese Anleitung ausprobiert und bin auf viele Fehlermeldungen gestoßen. Ich kann mich nicht mehr genau erinnern, aber einige der Fehlermeldungen wurden in den Kommentaren desselben Threads erwähnt …

Ich denke, das ist am Ende eine gute Sache, da ich jetzt auf jeden Fall mehr Wissen habe, indem ich das Problem selbst gelöst und dann diese Anleitung geschrieben habe! :slight_smile:

1 „Gefällt mir“

Wahrscheinlich eine dumme Frage, aber ich muss sie stellen. Angenommen, ich könnte das zum Laufen bringen, indem ich Ihrer Anleitung folge. Glauben Sie, dass es möglich ist, dies per Reverse-Proxy auf eine Domain zu schalten?

Es gibt keine dummen Fragen, wir können alle immer etwas Neues lernen! :slight_smile: Ich habe nicht viel Erfahrung mit Reverse-Proxy-Sachen, außer der Verwendung von Nginx Proxy Manager in einem Docker-Container – vielleicht sollten Sie sich das einmal ansehen, da es die meiste Arbeit erledigt und sogar kostenlose SSL-Zertifikate über Let’s Encrypt generiert.

1 „Gefällt mir“

Ich vermute, Sie werden auf viele Probleme stoßen. Die Entwicklerinstallation wird nicht für die Produktion unterstützt.

Die Ausführung der Standardinstallation in der Cloud kostet vielleicht ein paar Dollar pro Monat, aber wie viel ist Ihre Zeit wert?! Damit können Sie in 30 Minuten einsatzbereit sein und fertig.

2 „Gefällt mir“

Das ist tatsächlich das, was ich getan habe. Ich habe mit Communiteq angefangen, ich habe auch DigitalOcean ausprobiert, bin aber letztendlich bei Contabo gelandet.

Ich glaube, ich bin ein Narr, denn was ich versucht habe (nur um zu sehen, ob ich es schaffe), Ubuntu in HyperV laufen zu lassen, ich habe es sogar geschafft, die VM im selben Subnetz zu haben, lol, aber ich konnte die anfängliche Domainprüfung nicht zum Laufen bringen. Ich glaube, ein Teil des Problems ist, dass ich bereits eine Handvoll Dienste auf meinem Windows-Host hoste und folglich Port 80/443 an die IP-Adresse dieser Maschine weiterleite. Ich weiß, dass es über den Rahmen dieses Threads hinausgeht und nicht unterstützt wird, aber hast du Erfahrungen damit, etwas Ähnliches zu versuchen?

Es ist zu beachten, dass dieser Befehl nicht funktioniert, wenn noch keine Subsysteme installiert sind.

1 „Gefällt mir“

Ich bin bei der Installation von Ruby stecken geblieben; das hat mir geholfen: ChatGPT - Ruby 3.2 Not Released

Hallo, willkommen :wave:

Wenn Sie die Schritte in dieser Anleitung befolgen, müssen Sie Ruby nicht manuell installieren. Das Skript „install-rails“ erledigt dies automatisch.

FYI, die neueste Version von Ubuntu, 24.04, scheint nicht zu funktionieren und ich hatte viele Probleme damit

Stellen Sie also bei der Installation mit WSL sicher, dass Sie Folgendes verwenden:

wsl.exe --install -d Ubuntu-22.04

Hallo :waving_hand:, ich benutze WSL2 unter Windows 11 und habe die Schritte in diesem Beitrag befolgt, um eine lokale Discourse-Entwicklungsinstanz zu installieren. Ich bin auf einige Probleme gestoßen, konnte sie aber schließlich lösen. Hier ist, was ich gefunden habe:

(Zuerst habe ich es mit ubuntu-20.04 versucht, aber ich stieß auf ein Problem mit der fehlenden libwebp7-Abhängigkeit, die bei der Installation von ImageMagick benötigt wird. Es scheint, dass libwebp7 nicht für Ubuntu-20.04 verfügbar ist) :right_arrow: Deshalb habe ich mich stattdessen für ubuntu-22.04 entschieden, was für mich funktionierte.

Wenn ich AliBenBongos Anleitung im Eröffnungspost befolge, hat alles vor Schritt 9 wie erwartet funktioniert. :+1:

In Schritt 9 waren einige Änderungen notwendig

Einige der Ressourcen unter https://raw.githubusercontent.com/discourse/install-rails/master/linux sind anscheinend nicht aktuell:

  • Ich musste Ruby 3.3.x anstelle von 3.2.1 installieren, indem ich ruby_version=“3.2.1” zu ruby_version=“3.3.9” geändert habe
  • Ich musste Node 20 anstelle von 18 installieren, indem ich curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - zu curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash - geändert habe

In Schritt 15 müssen Sie pnpm install anstelle von yarn install ausführen

Dann, beim Ausführen von Migrationen in Schritt 16, gab es einen Fehler für einige Migrationen, die von der pgvector Postgres-Erweiterung abhingen. Also folgte ich der Linux-Installationsanleitung hier: https://github.com/pgvector/pgvector/blob/master/README.md

:warning:Um auf der sicheren Seite zu sein, ist es besser, die Befehle direkt aus der Readme-Datei zu kopieren. Wenn Sie jedoch neugierig sind, hat Folgendes für mich funktioniert:

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

Danach konnte ich die Migrationen in Schritt 16 ausführen und die Installation abschließen, indem ich dem Rest der Anleitung folgte. :tada:

1 „Gefällt mir“