Installer Discourse sur macOS pour le développement

:warning: Ce guide couvre les instructions d’installation pour un environnement de développement macOS. Pour les guides de mise en production, consultez : Install Discourse in production with the official supported instructions

Vous souhaitez installer Discourse sur macOS pour le développer et y apporter des modifications ?

Nous supposerons que Ruby, Rails, Postgres et Redis ne sont pas installés sur votre Mac. Commençons :rocket: !

Installer les dépendances de Discourse

Vous aurez besoin des packages suivants sur votre système :

** facultatif

redémarrez votre terminal

Maintenant que nous avons installé les dépendances de Discourse, passons à l’installation de Discourse lui-même.

Redémarrez votre Terminal

Quitter votre shell et le redémarrer garantit que les chemins d’accès aux packages installés sont correctement pris en compte par le Terminal.

Cloner Discourse

Clonez le dépôt Discourse dans le dossier ~/discourse :

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

~ indique le dossier personnel, le code source de Discourse sera donc disponible dans votre dossier personnel.

Initialiser Discourse

Passez dans le dossier Discourse :

cd ~/discourse

Installez les gems nécessaires :

bundle install

Installez les dépendances JS :

pnpm install

Ensuite, exécutez ces commandes pour configurer votre instance locale de Discourse :

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

Démarrez les serveurs Rails et Ember. Vous avez deux options.

Option 1 : en utilisant deux onglets/fenêtres Terminal séparés, exécutez Rails et Ember CLI séparément via :

bundle exec rails server

et

bin/ember-cli

Option 2 : en utilisant un seul onglet/fenêtre Terminal :

bin/ember-cli -u # lancera le serveur Pitchfork en arrière-plan

:tada: Vous devriez maintenant pouvoir naviguer vers http://localhost:4200 pour voir votre installation locale de Discourse. (Notez que le premier chargement peut prendre jusqu’à une minute car le serveur doit se réchauffer.)

Vous pouvez également essayer d’exécuter les tests :

bundle exec rake autospec

Tous (ou presque tous) les tests devraient passer.

Créer un nouvel administrateur

Pour créer un nouvel administrateur, exécutez la commande suivante :

RAILS_ENV=development bundle exec rake admin:create

Suivez les invites pour créer un compte administrateur.

Configurer la messagerie

Exécutez MailHog :

mailhog

Félicitations ! Vous êtes maintenant l’administrateur de votre propre installation Discourse !

Bon développement ! Pour commencer, consultez le Guide du débutant pour créer des plugins Discourse.


Ce document est sous contrôle de version - proposez des modifications sur GitHub.

78 « J'aime »
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?
Please help, how do I install Discourse on macOS?
Local installation internal use only
Help me setup my Discourse development environment
Discourse standalone
Migrate a NodeBB forum with Redis to Discourse
Starting discourse fails with bootstrap error
Error after cleaning tmp folder
MacOS Installation Gem::FilePermissionError
UndefinedTable: ERROR: relation "web_hook_event_types" when trying to run rspec test
[Need help][MacOS M1 dev installation] ArgumentError unknown keywords
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
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
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"
Discourse as Your First Rails App
Migrate from GetSatisfaction to Discourse
Upgrading Mathjax to version 4
Windows server publish method
Migrate a MyBB forum to Discourse
Category option: max topics per user (2 use-case examples)
Can't deploy to heroku
[PAID] Import from Legacy Postgres DB
Vagrant based server failing on db:migrate
Change unicorn port from 3000 in development
I want to build a debug version of discourse
Moderation Tools
Rails server --daemon and plugins
Installing problem - bundle install
Nginx Performance Report plugin incompatible with development environment setup script
Rake aborted message is showing when installing vagrant development
Update PhantomJS to latest for Ubuntu dev guide?
Cannot Backup my Development Instance (Fails)
Install error : Protocol violation
Can't set up dev environment due to cppjieba_rb failing to install
How to edit the discourse files? A development box?
How to add a new language
How to relax Content Security Policy
Installing Discourse for macOS Development Using asdf and docker-compose
Override profile background via SSO
Can't set up dev environment due to cppjieba_rb failing to install
Stuck in infinite loop in Mac terminal after source ~/.bashrc
Install on macOS – Failure: Scheduler::Defer can pause and resume
Disabling SSO in development environment
Local development and deploying from same repo
Discourse Connect on Local instance is not working
Can't start localhost server -- file was built for x86_64 which is not the architecture being linked (i386)
Please help, how do I install Discourse on macOS?
How to connect to an external database running on localhost
How can I include discourse in my local dev stack?
Topic List Previews (TLP)
Global messages on 94632 timed out, restarting process, 95535 successfully terminated by `TERM` signal
Cannot get embedding to work
/admin/config/emoji non responsive/locks up
App.yml file does not exist when installing Discourse locally
Ember-cli error on local MacOS development
Importing / migrating from Zendesk Community to Discourse
Redis version error when I run bundle exec db:create
Dev environment setup failed on bundle install
Set up a local Discourse Development Environment?

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 « J'aime »

Is it possible to reset a discourse completely?

2 « J'aime »

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 « J'aime »

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

/launcher rebuild app

returns an error.

1 « J'aime »

./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 « J'aime »

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 « J'aime »

En suivant le guide du forum Ruby on Rails, je suis actuellement bloqué à l’étape 7.

C’est probablement une question très « débutant », mais comment « pointer » vers la branche expérimentale qui était liée dans ce sujet ? J’ai essayé plusieurs choses et j’ai fini par recevoir le message Unknown command mini_racer à chaque fois.

1 « J'aime »

Ils ont tout à fait le droit de poser la question ici.

Nous avons rédigé certaines instructions spécifiques pour M1 que nous mentionnons sur le forum Rails dans ce guide.

Je devrai vérifier plus tard sur mon MacBook Air M1, et peut-être que mes collègues qui ont récemment configuré de nouveaux Macs sauront mieux si cela est encore nécessaire. Cependant, il existe un exemple montrant comment pointer vers une branche à l’étape 7 :

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

Vous devrez donc modifier cette ligne dans votre version locale de discourse/Gemfile :

puis exécuter bundle install.

4 « J'aime »

C’est lié tout en haut du message original.

Le sujet du forum Ruby on Rails est mort depuis plusieurs mois. L’auteur du sujet (OP) n’est plus actif depuis février et n’a répondu à aucun commentaire demandant de l’aide.

Il y a plus de gens ici pour m’aider. Juste pour le dire. :wink:

J’ai essayé de copier cela dans le Terminal et j’ai reçu la même erreur Unknown command mini_racer qu’auparavant.

Il faut admettre que le guide du forum Ruby on Rails n’est pas aussi clair que je l’espérais à cet égard.

Désolé par avance… :pray:

2 « J'aime »

Ce n’est pas une commande à exécuter. Vous devrez modifier le fichier texte réel nommé « Gemfile » situé dans le répertoire discourse.

1 « J'aime »

Doh! :facepalm:

Merci ! Je vais essayer ça tout de suite.

À mon avis, quelqu’un devrait modifier le guide du forum Ruby on Rails et fournir des clarifications supplémentaires concernant l’étape 7. Ce n’est que mon avis.

Je reviens tout de suite. Attendez une seconde…

1 « J'aime »

Désolé, je dois filer, mais je pense que la correction de mini_racer pour les Mac M1 a été intégrée. Je viens de vérifier mon Gemfile sur mon Mac M1 et le mien n’a pas été modifié. Tu peux donc sauter l’étape 7.

3 « J'aime »

J’ai exécuté l’étape 8 et j’ai reçu l’erreur « Could not locate Gemfile ».

Je pense avoir réussi à résoudre l’étape 7, mais l’étape 8 me pose toujours problème et affiche l’erreur mentionnée ci-dessus.

Vous devez vous trouver à l’intérieur du répertoire discourse lorsque vous exécutez bundle install.

Bonjour @merefield : Pourriez-vous décrire un peu plus votre configuration à distance ?

Alors que le développement d’un thème me permet d’ajouter des modifications sur un site en direct, pour développer un plugin, je ne vois aucun moyen d’éviter de le faire sur ma machine locale, avec l’ensemble du codebase de Discourse (avec mon plugin ajouté par-dessus).

Le résultat est que pour tout changement (non-CSS) lors du codage d’un plugin, lorsque je le recharge : 1) cela fait démarrer les ventilateurs de mon ordinateur et 2) cela prend environ 30 secondes pour recharger. Et si je dois redémarrer le serveur, cela prend plusieurs minutes.

Ces délais s’accumulent vraiment — au point qu’il me faut une heure pour coder quelque chose qui, avec mon flux de travail habituel (où il y a un rechargement à chaud ou au maximum 2 à 3 secondes par changement), ne prendrait que 15 minutes.

Ainsi, j’apprécierais toute suggestion pour accélérer les choses.

1 « J'aime »

Cela serait probablement mieux placé dans le sujet Ubuntu, car j’exécute simplement cette installation sur un serveur cloud, précédé par nginx et un DNS complet (sans Docker), je m’adresse donc réellement au domaine. Tout est exécuté depuis le terminal. J’ai même réussi à faire fonctionner Ember CLI correctement dans cette configuration.

Ce n’est pas non plus très rapide, mais assez rapide. L’avantage est de pouvoir exécuter et tester des services de rappel HTTPS complets.

L’environnement de développement de plugins le plus rapide que je connaisse de loin est Docker Dev local sur WSL2, qui dévale. Il est également extrêmement simple à maintenir. Malheureusement, discourse_theme ne fonctionne pas encore dans cet environnement, à ma connaissance, je retourne donc à mon serveur cloud pour ce travail.

C’est un peu étrange qu’Apple soit en retard ici ? Les ingénieurs de Microsoft se sont montrés très astucieux.

3 « J'aime »

Au cas où quelqu’un rencontrerait des erreurs en essayant d’installer ruby 2.7.3, apparemment quelque chose a changé après Xcode 12, ce qui casse le processus d’installation avec rbenv :

J’ai continué à recevoir ceci, même si j’ai les dernières versions de psych et libyaml installées :

Il semble que votre installation de ruby manque de psych (pour la sortie YAML).
Pour éliminer cet avertissement, veuillez installer libyaml et réinstaller votre ruby.

J’ai essayé la solution de contournement qu’ils suggèrent dans le guide, mais j’ai continué à recevoir la même erreur et j’ai fini par devoir utiliser rvm :

rvm install 2.7.3
1 « J'aime »

Concernant la manière de programmer plus rapidement lors de la création d’un plugin, j’ai récemment changé d’approche. Et cela fonctionne très bien. En gros, déplacez tout ce qui concerne le front-end vers un composant de thème, et ne codez que les éléments du back-end dans le plugin lui-même. Je sais que d’autres l’ont déjà compris. Mais maintenant que je le fais, la programmation est tellement plus rapide et agréable. Détails ici.

3 « J'aime »