Discourse auf macOS für die Entwicklung installieren

:warning: Diese Anleitung behandelt Installationsanweisungen für eine macOS-Entwicklungsumgebung. Für Produktionsanleitungen siehe: Install Discourse in production with the official supported instructions

Sie möchten also Discourse auf macOS einrichten, um daran zu arbeiten und zu entwickeln?

Wir gehen davon aus, dass Ruby/Rails/Postgres/Redis nicht auf Ihrem Mac installiert sind. Fangen wir an :rocket:!

Discourse-Abhängigkeiten installieren

Sie benötigen die folgenden Pakete auf Ihrem System:

** optional

Terminal neu starten

Nachdem wir die Discourse-Abhängigkeiten installiert haben, fahren wir mit der Installation von Discourse selbst fort.

Terminal neu starten

Beenden Sie Ihre Shell und starten Sie sie neu, um sicherzustellen, dass die Pfade zu den installierten Paketen vom Terminal korrekt erkannt werden.

Discourse klonen

Klonen Sie das Discourse-Repository im Ordner ~/discourse:

git clone https://github.com/discourse/discourse.git ~/discourse

~ steht für den Home-Ordner, sodass der Discourse-Quellcode in Ihrem Home-Ordner verfügbar sein wird.

Discourse bootstrappen

Wechseln Sie in Ihren Discourse-Ordner:

cd ~/discourse

Installieren Sie die benötigten Gems:

bundle install

Installieren Sie die JS-Abhängigkeiten:

pnpm install

Führen Sie anschließend diese Befehle aus, um Ihre lokale Discourse-Instanz einzurichten:

bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

Starten Sie Rails- und Ember-Server. Sie haben hier zwei Möglichkeiten.

Option 1: Verwenden Sie zwei separate Terminal-Tabs/Fenster und starten Sie Rails und den Frontend-Bundler separat über:

bundle exec rails server

und

bin/dev --only ember

Option 2: Verwenden Sie nur ein Terminal-Tab/Fenster:

bin/dev # führt Pitchfork und den Frontend-Bundler gemeinsam aus

:tada: Sie sollten nun in der Lage sein, zu http://localhost:3000 zu navigieren, um Ihre lokale Discourse-Installation zu sehen. (Beachten Sie, dass der erste Ladevorgang bis zu einer Minute dauern kann, da der Server hochgefahren wird.)

Sie können auch versuchen, die Tests auszuführen:

bundle exec rake autospec

Alle (oder fast alle) Tests sollten erfolgreich sein.

Neuer Administrator erstellen

Um einen neuen Administrator zu erstellen, führen Sie folgenden Befehl aus:

RAILS_ENV=development bundle exec rake admin:create

Folgen Sie den Aufforderungen, um ein Administratorkonto zu erstellen.

E-Mail konfigurieren

Starten Sie MailHog:

mailhog

Herzlichen Glückwunsch! Sie sind nun der Administrator Ihrer eigenen Discourse-Installation!

Viel Spaß beim Entwickeln! Um damit zu beginnen, lesen Sie den Anfängerleitfaden zum Erstellen von Discourse-Plugins.


Dieses Dokument ist versionskontrolliert – schlagen Sie Änderungen auf GitHub vor.

78 „Gefällt mir“
Setup discourse on Mac OS
Running Discourse on Docker for Mac
Localhost:3000/users gives no-results
How to install Discourse on windows
How to install Discourse locally?
Best dev installation method for running on macOS?
Migrate a NodeBB forum with Redis to Discourse
Starting discourse fails with bootstrap error
Please help, how do I install Discourse on macOS?
MacOS Installation Gem::FilePermissionError
Help me setup my Discourse development environment
Error after cleaning tmp folder
UndefinedTable: ERROR: relation "web_hook_event_types" when trying to run rspec test
Local installation internal use only
Discourse standalone
Ember-cli error on local MacOS development
Importing / migrating from Zendesk Community to Discourse
Change unicorn port from 3000 in development
Redis version error when I run bundle exec db:create
Category option: max topics per user (2 use-case examples)
Dev environment setup failed on bundle install
Set up a local Discourse Development Environment?
[Need help][MacOS M1 dev installation] ArgumentError unknown keywords
How to connect to an external database running on localhost
Migrate a PunBB forum to Discourse
Migrate a phpBB3 forum to Discourse
Migrate a FluxBB forum to Discourse
Migrate a vBulletin 3 forum to Discourse via XenForo
Migrate a MyBB forum to Discourse
Regarding the installation - docker
Migrate a NodeBB forum with MongoDB to Discourse
Migrate a Ning forum to Discourse
Migrate a Phorum forum to Discourse
Migrate from another forum to Discourse
Migrate a Kunena 3 forum to Discourse
Migrate a bbPress WordPress plugin forum to Discourse
Install Discourse for development using Docker
Use the Discourse API ruby gem
Vagrant based server failing on db:migrate
Please help, how do I install Discourse on macOS?
Can't start localhost server -- file was built for x86_64 which is not the architecture being linked (i386)
Discourse Connect on Local instance is not working
Local development and deploying from same repo
Enable CORS on localhost for DiscourseConnect
Set Environmental Variables
Need help integrating code wrote on Edittext to the Discourse
Keyboard navigation messes up the search menu
WP-Discourse not connected and admin email not recognized
Contributing to Discourse development
How to install discussions on localhost in my mac?
How to install Discourse for Wordpress locally running on MAMP
Error when building: "Runtime Error: discourse does not support compiling scss/sass files via sprockets"
Disabling SSO in development environment
Install on macOS – Failure: Scheduler::Defer can pause and resume
Stuck in infinite loop in Mac terminal after source ~/.bashrc
Can't set up dev environment due to cppjieba_rb failing to install
Override profile background via SSO
Installing Discourse for macOS Development Using asdf and docker-compose
How to relax Content Security Policy
How to add a new language
How to edit the discourse files? A development box?
Can't set up dev environment due to cppjieba_rb failing to install
Install error : Protocol violation
Cannot Backup my Development Instance (Fails)
Update PhantomJS to latest for Ubuntu dev guide?
Rake aborted message is showing when installing vagrant development
[PAID] Import from Legacy Postgres DB
Nginx Performance Report plugin incompatible with development environment setup script
Discourse as Your First Rails App
Installing problem - bundle install
Migrate from GetSatisfaction to Discourse
Case study of an amateur plugin author
Upgrading Mathjax to version 4
Windows server publish method
Rails server --daemon and plugins
Moderation Tools
Can't deploy to heroku
Topic List Previews (TLP)
Global messages on 94632 timed out, restarting process, 95535 successfully terminated by `TERM` signal
How can I include discourse in my local dev stack?
Cannot get embedding to work
/admin/config/emoji non responsive/locks up
App.yml file does not exist when installing Discourse locally
I want to build a debug version of discourse

If anyone is getting failing specs with most of them being .count errors, then try the following:

RAILS_ENV=test bundle exec rake db:reset

I had a problem where development data somehow got into my test database and was causing lots of failures.

7 „Gefällt mir“

Is it possible to reset a discourse completely?

2 „Gefällt mir“

Yes, do:

rake db:drop db:create db:migrate

Note that this will wipe everything and you will have to create your Admin user account again.

11 „Gefällt mir“

Can someone assist me in how I can update my discourse?

/launcher rebuild app

returns an error.

1 „Gefällt mir“

./launcher rebuild app is for discourse_docker based production setup. To update local/development Discourse instance you need:

cd ~/discourse
git pull origin master
8 „Gefällt mir“

I get this error @techAPJ,

error: Your local changes to the following files would be overwritten by merge:
	.gitignore
Please commit your changes or stash them before you merge.
Aborting

The error message is pretty clear:

Please commit your changes or stash them before you merge.

If you want to ignore your local changes, do:

git fetch origin
git reset --hard origin/master
7 „Gefällt mir“

Mit der Anleitung aus dem Ruby on Rails-Forum stecke ich aktuell bei Schritt 7 fest.

Das ist wahrscheinlich eine sehr „anfängerhafte" Frage, aber wie „verweise" ich auf den experimentellen Zweig, der in diesem Thema verlinkt war? Ich habe ein paar Dinge ausprobiert und habe jedes Mal die Meldung Unknown command mini_racer erhalten.

1 „Gefällt mir“

Das ist hier völlig in Ordnung.

In diesem Leitfaden verweisen wir auf einige spezifische Anweisungen für M1, die wir verfasst und im Rails-Forum erwähnt haben.

Ich müsste später auf meinem M1 Air nachschauen, und vielleicht wissen meine Kollegen, die kürzlich neue Macs eingerichtet haben, besser, ob das überhaupt noch nötig ist. Aber in Schritt 7 gibt es ein Beispiel, wie man auf einen Zweig verweist:

gem 'mini_racer', github: 'rubyjs/mini_racer', branch: 'refs/pull/186/head'

Du würdest also diese Zeile in deiner lokalen Version von discourse/Gemfile bearbeiten:

und dann bundle install ausführen.

4 „Gefällt mir“

Der Link befindet sich ganz oben im ursprünglichen Beitrag.

Das Thema im Ruby on Rails-Forum ist seit vielen Monaten inaktiv. Der Fragesteller ist seit Februar nicht mehr aktiv und hat auf keine Kommentare dort geantwortet, in denen um Hilfe gebeten wurde.

Hier gibt es mehr Menschen, die mir helfen können. Nur zur Info. :wink:

Ich habe versucht, dies in das Terminal zu kopieren, und erhielt denselben Fehler Unknown command mini_racer, wie zuvor.

Zugegebenermaßen ist die Anleitung im Ruby on Rails-Forum in dieser Hinsicht nicht so klar, wie ich es mir erhofft hätte.

Entschuldigung im Voraus… :pray:

2 „Gefällt mir“

Das ist kein auszuführender Befehl. Du musst die eigentliche Textdatei namens „Gemfile" bearbeiten, die sich im Discourse-Verzeichnis befindet.

1 „Gefällt mir“

Doh! :facepalm:

Danke! Ich probiere das sofort aus.

Meiner Meinung nach sollte jemand den Leitfaden im Ruby on Rails-Forum bearbeiten und weitere Klarstellungen zu Schritt 7 liefern. Das ist nur meine bescheidene Meinung.

Ich bin gleich zurück. Einen Moment bitte…

1 „Gefällt mir“

Entschuldige, ich muss leider los, aber ich glaube, die mini_racer-Fixierung für M1-Macs wurde bereits übernommen. Ich habe gerade meine Gemfile auf meinem M1-Mac geprüft, und bei mir wurde sie nicht bearbeitet. Du kannst also Schritt 7 überspringen.

3 „Gefällt mir“

Ich habe Schritt 8 ausgeführt und erhielt den Fehler „Could not locate Gemfile".

Ich (glaube) ich habe Schritt 7 hinbekommen, aber Schritt 8 bereitet mir immer noch Probleme und wirft den oben genannten Fehler aus.

Du musst dich beim Ausführen von bundle install im discourse-Verzeichnis befinden.

Hallo @merefield: Könntest du dein Remote-Setup etwas genauer beschreiben?

Während der Entwicklung eines Themes kann ich Änderungen direkt auf einer Live-Site vornehmen, aber für die Entwicklung eines Plugins sehe ich keine andere Möglichkeit, als dies auf meinem lokalen Rechner zu tun, wobei die gesamte Discourse-Codebasis (inklusive meines Plugins) vor Ort vorhanden ist.

Das Ergebnis ist, dass bei jeder (nicht-CSS-) Änderung beim Coden eines Plugins beim Neuladen 1) der Lüfter meines Computers auf Hochtouren läuft und 2) es solide 30 Sekunden dauert, bis alles neu geladen ist. Und wenn ich den Server neu starten muss, dauert es mehrere Minuten.

Diese Verzögerungen summieren sich wirklich auf – mit dem Ergebnis, dass es mich unter Umständen eine Stunde kostet, etwas zu coden, was mit meinem normalen Arbeitsablauf (bei dem es ein Hot-Reload gibt oder höchstens 2–3 Sekunden pro Änderung) nur 15 Minuten dauern würde.

Daher wäre ich für jegliche Vorschläge zur Beschleunigung sehr dankbar.

1 „Gefällt mir“

Dies würde wohl besser im Ubuntu-Thema aufgehoben sein, da ich die Installation einfach auf einem Cloud-Server ausführe, der von Nginx und einer vollständigen DNS-Konfiguration (ohne Docker) fronted wird, sodass ich tatsächlich die Domain adressiere. Ich arbeite alles über das Terminal. Ich habe Ember CLI in diesem Setup mittlerweile sogar gut zum Laufen gebracht.

Es ist auch nicht gerade schnell, aber schnell genug. Der Vorteil ist, dass man vollständige HTTPS-Callback-Dienste ausführen und testen kann.

Die mit Abstand schnellste Plugin-Entwicklungsumgebung, die ich kenne, ist das lokale Docker Dev auf WSL2, das rasend schnell ist. Zudem ist es äußerst einfach zu warten. Leider funktioniert discourse_theme in dieser Umgebung meines Wissens nach noch nicht, weshalb ich für diese Arbeit wieder auf meinen Cloud-Server zurückkehre.

Es ist etwas seltsam, warum Apple hier hinterherhinkt? Die Microsoft-Ingenieure haben sich als sehr klug erwiesen.

3 „Gefällt mir“

Falls jemand Fehler bei der Installation von Ruby 2.7.3 erhält, hat sich offenbar nach Xcode 12 etwas geändert, was den Installationsprozess mit rbenv unterbricht:

Ich erhielt immer wieder Folgendes, obwohl ich die neuesten Versionen von psych und libyaml installiert habe:

Es scheint, dass Ihrer Ruby-Installation psych (für YAML-Ausgabe) fehlt.
Um diese Warnung zu beseitigen, installieren Sie bitte libyaml und installieren Sie Ihr Ruby neu.

Ich habe den Workaround ausprobiert, den sie im Leitfaden vorschlagen, aber ich erhielt immer wieder dieselbe Fehlermeldung und musste schließlich rvm verwenden:

rvm install 2.7.3
1 „Gefällt mir“

Bezüglich der Frage, wie man beim Erstellen eines Plugins schneller programmieren kann, habe ich kürzlich meinen Ansatz geändert. Und es funktioniert großartig. Im Grunde verlagert man alle Frontend-Sachen in eine Theme-Komponente und programmiert nur die Backend-Sachen im Plugin selbst. Ich weiß, dass andere das schon früher herausgefunden haben. Aber jetzt, wo ich es tue, ist das Programmieren so viel schneller und angenehmer. Details hier.

3 „Gefällt mir“